From 1ab07867b425cfa8da207b904a297df29b1b177a Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Fri, 24 Jul 2026 21:56:44 +0200 Subject: i18n: localize remaining web UI chrome (nav, bookmarks, settings) The web nav links (settings, bookmarks, home), the /reader bookmark-add form placeholders and button, the /bookmarks filter/empty/delete labels, and every /settings field label were hardcoded English and stayed English under ui_language=pl. Route them all through i18n (en/pl) so the Polish UI is fully localized. No server.go change: every page's data already carries L: i18n.Get(cfg.UILanguage). --- internal/config/config.go | 2 +- internal/i18n/i18n.go | 60 +++++++++++++++++++++++++++++++++++ internal/web/templates/bookmarks.html | 10 +++--- internal/web/templates/index.html | 4 +-- internal/web/templates/reader.html | 12 +++---- internal/web/templates/settings.html | 24 +++++++------- 6 files changed, 86 insertions(+), 26 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index f4c9fc8..e2ea0d3 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -25,7 +25,7 @@ var seedTOML []byte // Version is lectio's release version, shared by every binary's // -v/--version output (lectio, lectio-ui, lectio-web). -const Version = "0.24.0" +const Version = "0.24.1" // validVersions are the five scripture versions lectio understands. var validVersions = map[string]bool{ diff --git a/internal/i18n/i18n.go b/internal/i18n/i18n.go index 2e730ee..16d489a 100644 --- a/internal/i18n/i18n.go +++ b/internal/i18n/i18n.go @@ -57,6 +57,24 @@ type UI struct { // Web reader (lectio-web /reader) control labels. NavReader, WebBook, WebChapter string + // Web nav-link labels shared across the index/reader/bookmarks pages. + NavHome, NavSettings, NavBookmarks string + + // Web /reader bookmark-add form: the verse and tags placeholders and the + // submit button word (rendered after a ★). The note placeholder reuses + // ReaderMarkNote. + WebVerseOptional, WebTagsPlaceholder, WebAddBookmark string + + // Web /bookmarks page chrome: the "all tags" filter link, the empty-list + // note, and the per-item delete button. + WebAllTags, WebNoBookmarks, WebDelete string + + // Web /settings page labels (the ones without an existing shared field): + // the saved confirmation, the config-field labels, and the save button. + WebSaved, WebTradLang, WebUILang, WebSiglaStyle, WebDefaultVersion string + WebVersions, WebWebVersions, WebOffline, WebWidth, WebPort, WebPager string + WebSave string + // Export is the web daily-page download label (txt/md/pdf links). Export, Calendar string @@ -139,6 +157,27 @@ var enUI = UI{ NavReader: "reader", WebBook: "book", WebChapter: "chapter", + NavHome: "home", + NavSettings: "settings", + NavBookmarks: "bookmarks", + WebVerseOptional: "verse (optional)", + WebTagsPlaceholder: "tags, comma-separated", + WebAddBookmark: "bookmark", + WebAllTags: "all", + WebNoBookmarks: "No bookmarks yet.", + WebDelete: "delete", + WebSaved: "Saved.", + WebTradLang: "traditional language", + WebUILang: "UI language", + WebSiglaStyle: "sigla style", + WebDefaultVersion: "default version", + WebVersions: "versions", + WebWebVersions: "web versions", + WebOffline: "offline", + WebWidth: "width", + WebPort: "web port", + WebPager: "pager", + WebSave: "Save", Export: "download", Calendar: "month calendar", NoReadingsDay: "no readings for this day", @@ -204,6 +243,27 @@ var plUI = UI{ NavReader: "czytnik", WebBook: "księga", WebChapter: "rozdział", + NavHome: "strona główna", + NavSettings: "ustawienia", + NavBookmarks: "zakładki", + WebVerseOptional: "werset (opcjonalnie)", + WebTagsPlaceholder: "tagi, oddzielone przecinkami", + WebAddBookmark: "zakładka", + WebAllTags: "wszystkie", + WebNoBookmarks: "Brak zakładek.", + WebDelete: "usuń", + WebSaved: "Zapisano.", + WebTradLang: "język tradycyjny", + WebUILang: "język interfejsu", + WebSiglaStyle: "styl sigli", + WebDefaultVersion: "wersja domyślna", + WebVersions: "wersje", + WebWebVersions: "wersje web", + WebOffline: "offline", + WebWidth: "szerokość", + WebPort: "port web", + WebPager: "pager", + WebSave: "Zapisz", Export: "pobierz", Calendar: "kalendarz miesiąca", NoReadingsDay: "brak czytań na ten dzień", diff --git a/internal/web/templates/bookmarks.html b/internal/web/templates/bookmarks.html index 3597b74..efc988a 100644 --- a/internal/web/templates/bookmarks.html +++ b/internal/web/templates/bookmarks.html @@ -16,19 +16,19 @@

- ← reader - home + ← {{.L.NavReader}} + {{.L.NavHome}}

{{if not .Items}} -

No bookmarks yet.

+

{{.L.WebNoBookmarks}}

{{else}}
{{range .Items}} @@ -38,7 +38,7 @@ {{if .Tags}}{{range .Tags}}#{{.}} {{end}}{{end}}
- +
{{end}} diff --git a/internal/web/templates/index.html b/internal/web/templates/index.html index 1e43df4..c8a48ed 100644 --- a/internal/web/templates/index.html +++ b/internal/web/templates/index.html @@ -62,8 +62,8 @@ {{.L.NavReader}} → - settings - bookmarks + {{.L.NavSettings}} + {{.L.NavBookmarks}}