<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/internal/naming/naming_test.go, branch v0.45.0</title>
<subtitle>offline Catholic daily readings and liturgical calendar in Go, with CLI, TUI and web clients</subtitle>
<id>https://git.labunix.xyz/lectio.git/atom?h=v0.45.0</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=v0.45.0'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-07-28T16:15:29Z</updated>
<entry>
<title>naming: localise liturgical day names in any language</title>
<updated>2026-07-28T16:15:29Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T16:15:29Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=539a7c71b60115144959f712ef5966f48c63f9f0'/>
<id>urn:sha1:539a7c71b60115144959f712ef5966f48c63f9f0</id>
<content type='text'>
Add internal/naming, which renders temporal day names and celebration
display names from the calendar engine's slugs in any language. English is
the built-in baseline; a language is data -- an embedded lang/&lt;code&gt;.ini
(pl shipped) and/or a user file at &lt;config dir&gt;/names/&lt;code&gt;.ini that
overrides it key by key. Names compose from a small vocabulary plus
per-language format templates, so word order and grammatical case can
differ (e.g. Polish genitive "3. Niedziela Okresu Zwykłego"); any string a
language omits falls back to English.

- Move day-name generation out of calendar (calendar.HumanizeSlug removed,
  calendar stays a pure engine) into naming.DayName; the English golden
  cases carry over verbatim.
- naming.CelebrationName unifies the three duplicated resolvers
  (cli/readings/calfeed): name.&lt;lang&gt; -&gt; English -&gt; Latin -&gt; humanized slug.
  Saint names stay in the calendar data (name.&lt;lang&gt;), overridable via
  calendar layers.
- config: ui_language now accepts any code (lower-cased, not clamped to
  en/pl) so names/&lt;code&gt;.ini applies; UI chrome still resolves en/pl and
  falls back to English. Add NamesDir(); wire naming.SetUserDir (and the
  previously unwired bible.SetUserCorporaDir) in the TUI and web mains too,
  so external corpora and name files work across all three binaries.
</content>
</entry>
</feed>
