<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lectio.git/internal/i18n, branch v0.46.1</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.46.1</id>
<link rel='self' href='https://git.labunix.xyz/lectio.git/atom?h=v0.46.1'/>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/'/>
<updated>2026-08-05T20:24:53Z</updated>
<entry>
<title>calendar/readings: report Sunday as its own display rank, not solemnity</title>
<updated>2026-08-05T20:24:53Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-05T20:24:53Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=4855ef2a667b7ea71092e0582db5aff1838a0d63'/>
<id>urn:sha1:4855ef2a667b7ea71092e0582db5aff1838a0d63</id>
<content type='text'>
The Ordinary Form's Table of Liturgical Days treats Sunday as its own
category, never a solemnity. temporal.go's sundayDay() already marks these
days distinctly from named solemnities (Class stays unset, unlike solemn()'s
ClassLord); internal/readings/offline.go now reads that existing signal to
relabel the REPORTED rank to "sunday" for ordinary and privileged-season
Sundays alike, leaving Celebration.Rank, ofRankOrder and all precedence
untouched. Named solemnities landing on a Sunday (Easter, Pentecost, ...)
and feasts of the Lord (Holy Family) keep reporting their own rank. The 1962
form is untouched.

Added calendar.RankSunday (display-only, deliberately excluded from
ofRankOrder), the i18n Sunday/niedziela words, and a test pinning the exact
dates from the original bug report.
</content>
</entry>
<entry>
<title>i18n: pin the Polish part labels; cross-reference the part-ID orders</title>
<updated>2026-08-03T22:05:55Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-03T22:05:55Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=70c504148ca9ddf7fdb31162f5f8da7e118fca45'/>
<id>urn:sha1:70c504148ca9ddf7fdb31162f5f8da7e118fca45</id>
<content type='text'>
</content>
</entry>
<entry>
<title>readings: 1962 part labels become i18n data; export PartIDs</title>
<updated>2026-08-03T21:51:54Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-03T21:51:54Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=e3d551ebb8f6ac2bf1a7027991a4222e83309a39'/>
<id>urn:sha1:e3d551ebb8f6ac2bf1a7027991a4222e83309a39</id>
<content type='text'>
</content>
</entry>
<entry>
<title>i18n: correct rank doc comments and pin the Polish wording</title>
<updated>2026-08-03T21:50:26Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-03T21:50:26Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=f94ceaae997bce2168a5ab9e64a0c3afeafe0cf6'/>
<id>urn:sha1:f94ceaae997bce2168a5ab9e64a0c3afeafe0cf6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>i18n: drop the colour word table, it has no consumer</title>
<updated>2026-08-03T21:39:49Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-03T21:39:49Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=14c4540d3f06299bf65d74ea864ae7c6c4c33f72'/>
<id>urn:sha1:14c4540d3f06299bf65d74ea864ae7c6c4c33f72</id>
<content type='text'>
</content>
</entry>
<entry>
<title>i18n: rank and colour vocabulary tables</title>
<updated>2026-08-03T21:34:22Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-08-03T21:34:22Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=da1818a73de736dffd1580137352c32bea81be8c'/>
<id>urn:sha1:da1818a73de736dffd1580137352c32bea81be8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>calendar: name the liturgical form fully in the printed title; v0.45.1</title>
<updated>2026-07-29T19:15:10Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T19:15:10Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=a688f064da4dd466eaa961645a140585a2c9fdd4'/>
<id>urn:sha1:a688f064da4dd466eaa961645a140585a2c9fdd4</id>
<content type='text'>
The exported month calendar's title showed the terse dropdown word
("August 2026 — traditional"). Spell the form out: "traditional roman
calendar" / "novus ordo calendar". Add dedicated i18n labels
CalModern/CalTraditional (translatable like the rest of the chrome; pl =
"kalendarz Novus Ordo" / "tradycyjny kalendarz rzymski") rather than
overloading the short OptModern/OptTraditional the settings dropdown uses.

Bump version to 0.45.1.
</content>
</entry>
<entry>
<title>tui(reader): filter bookmarks by tag, and show tags in the list</title>
<updated>2026-07-29T11:45:19Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-29T11:45:19Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=6964ee56de01f9769a39ba480dc787339b642f7a'/>
<id>urn:sha1:6964ee56de01f9769a39ba480dc787339b642f7a</id>
<content type='text'>
Bookmarks stored tags but the list neither showed them nor let you use them.
Now each row shows "Ref — note  #tag1 #tag2", and `/` opens a live tag filter
(case-insensitive substring over a bookmark's tags): type to narrow, Enter keeps
the filter while j/k navigate the filtered list, Esc clears it. Navigation,
open and delete all act on the visible (filtered) list. Reuses the store's
existing tag data; help keybar (en/pl) updated; test covers filter/keys.
</content>
</entry>
<entry>
<title>i18n: make all UI chrome user-translatable via ui/&lt;code&gt;.ini</title>
<updated>2026-07-28T17:03:15Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T17:03:15Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=9100973576f87adcadaf6c8b331df7e729aeb117'/>
<id>urn:sha1:9100973576f87adcadaf6c8b331df7e729aeb117</id>
<content type='text'>
The interface chrome (version labels, TUI keybar/messages, CLI banner words,
web control labels, section-heading words) was English/Polish hardcoded in Go.
It is now data: the English and Polish tables ship as embedded lang/en.ini and
lang/pl.ini, and any language is user-overridable at &lt;config&gt;/ui/&lt;code&gt;.ini,
resolved per key with an English fallback. With ui_language = &lt;code&gt; plus a
names/&lt;code&gt;.ini, the WHOLE interface -- chrome, day names, saint names -- is
translatable without a rebuild.

- i18n.Get loads the embedded English baseline, overlays the embedded/user
  language file, caches per lang; field &lt;-&gt; INI-key mapping is by reflection
  (lang.go) so the tables and files stay in sync automatically. Edge-space
  values (e.g. "error: ") are double-quoted so the INI trim keeps them. The
  Go tables move to golden_test.go; TestGoldenMatchesEmbedded asserts the
  embedded files still parse back to them, and TestGenerateLangFiles
  regenerates them (LECTIO_GEN=1).
- config.UIDir(); wire i18n.SetUserDir in the CLI, TUI and web entry points.
- README/config: document ui/&lt;code&gt;.ini alongside names/&lt;code&gt;.ini.
</content>
</entry>
<entry>
<title>refactor: remove the niedziela/missalemeum scrapers, bt, traditional_lang</title>
<updated>2026-07-28T10:50:31Z</updated>
<author>
<name>Lukasz Kasprzak</name>
<email>lukas@labunix.xyz</email>
</author>
<published>2026-07-28T10:50:31Z</published>
<link rel='alternate' type='text/html' href='https://git.labunix.xyz/lectio.git/commit/?id=7b220084cf3951c8cde0582efdfcf628afc64336'/>
<id>urn:sha1:7b220084cf3951c8cde0582efdfcf628afc64336</id>
<content type='text'>
The daily view now computes entirely offline (previous commit), so retire the
network path and everything that served it:

- Delete internal/tradlit (missalemeum) and the niedziela scraper from
  internal/liturgy (fetch/store/parse + fixtures); keep Section, DayInfo and
  ExtractCitation.
- Remove the "bt" version everywhere (render gatherBT + branches, config,
  i18n, web form, TUI) and bible.ToEnglishRef (Polish citation converter).
  A legacy config carrying "bt" migrates to "wuj" on load (config.migrateBT).
- Remove the traditional_lang config field and the -g/--lang flag from all
  three binaries.
- Drop the now-dead flags -R/--refresh, -o/--offline, -u/--update,
  -C/--clean and the harvest/clean commands.
- New defaults: versions = wuj,vul,grb,drb; default_version = vul.

Update the README (offline-by-design, no harvest/update), help text, and
stale niedziela/bt doc comments. Tests updated for the offline reality;
go test ./... and go vet ./... are clean, all three binaries build and run
offline (OF + EF, compare, web).
</content>
</entry>
</feed>
