// Package i18n holds lectio's UI-chrome strings -- the version-column labels, // the TUI keybar/messages, the CLI banner words, the web control labels, and the // modern-lectionary section-heading label words. It localises the chrome only, // never the scripture verse text or citation, which stay source-language. // // English is the built-in baseline and Polish ships embedded (lang/en.ini, // lang/pl.ini). Any language is user-overridable at /ui/.ini, // resolved per key with an English fallback (see lang.go / Get), so a user can // translate the whole interface for their language without a rebuild. package i18n // UI is one language's complete set of chrome strings. type UI struct { // Version names each bible version for column headers / prose, keyed by // version code (wuj, vul, grb, drb). Version map[string]string // PartLabel names each lectionary section's heading label word, keyed by // liturgy.Section.PartID -- the modern IDs (pierwsze_czytanie, psalm, // drugie_czytanie, aklamacja, ewangelia). The pl entries are the exact // prefixes niedziela.pl's scraped headings carry, used by // render.LocalizeHeading to recognise and swap the label word while // keeping the citation untouched. PartLabel map[string]string // Rank names each liturgical rank, keyed by the string form of // calendar.Rank. Two vocabularies share the map: the Ordinary Form's // ferial/optional/memorial/feast/solemnity and the 1962 form's // class-1..class-4/commemoration. Rendered by the CLI's day header and // by the dlectio app's day banner and calendar rows. Rank map[string]string // Colour names each normalized liturgical colour, keyed by the string form // of calendar.Colour (white, red, green, violet, rose, black). Rendered by // the CLI's day header only -- the dlectio app draws a coloured swatch // instead and deliberately shows no colour word. Colour map[string]string // TUI keybar and status messages. NoReadingsFor and ErrorPrefix each // carry their own single trailing space (the TUI concatenates a date or // error string directly onto them, no separator added at the call site). FooterKeys, Loading, NoReadingsFor, ErrorPrefix, ErrorHint string // JumpPrompt is the TUI's "d" date-jump prompt label. JumpPrompt string // Reader-mode (lectio-ui --reader) chrome. ReaderTitle, ReaderPickKeys, ReaderReadKeys, ReaderNoText, ReaderNoMatch string // Reader bookmarks: the mark-note prompt, the bookmarks-list title/keybar, // and the empty-list note. ReaderMarkPrompt, ReaderBookmarksTitle, ReaderBookmarksKeys, ReaderNoBookmarks string ReaderMarkVerseKeys, ReaderConfirmDelete, ReaderConfirmKeys string ReaderMarkNote, ReaderMarkTags, ReaderMarkHelp string // Reader go-to-chapter prompt: the dialog label (rendered after the book // name) and its enter/esc help line. ReaderJumpChapter, ReaderJumpChapterKeys string // CLI banner label words and connective: the banner is // " " (e.g. "Gospel for 2026-07-22" / // "Ewangelia na 2026-07-22"). BannerGospel, BannerReadings, BannerConnective string // Months are the localized month names (index 0 = January), for the // exported calendar's title. Months [12]string // CalModern/CalTraditional name the liturgical form in the exported month // calendar's title -- the full "novus ordo calendar" / "traditional roman // calendar", fuller than the short OptModern/OptTraditional dropdown labels. CalModern, CalTraditional string // Web control labels. Lectionary, OptModern, OptTraditional string Parts, OptGospel, OptAll string Layout, OptHorizontal, OptColumns string OptInterlinear, Theme, Mono string // NoInterlinearVerses is the web interlinear pane's note when no // requested version could be interleaved for a section. NoInterlinearVerses string // 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, 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 // NoReadingsDay is the web error fragment shown when readings.Load // returns no sections at all for the requested date. NoReadingsDay string // NoVersion/NoVersionPartial/NoReference/NoReferenceErr are // render.GatherVersion/GatherVerses' lookup/citation-failure blocks, // rendered verbatim by cli/tui/web. NoVersion takes the version code; // NoVersionPartial takes the version code and the comma-joined missing // references; NoReferenceErr takes the underlying error (pl keeps %w so // it still wraps, en uses %v -- the verb only controls // errors.Unwrap-ability, both format identically via Error()). NoVersion, NoVersionPartial, NoReference, NoReferenceErr string }