Documentation
¶
Overview ¶
Package i18n provides internationalization for Lore CLI. All user-facing strings are centralized here. AI prompt directives and content signals remain in English (not part of this package).
Architecture note: catalogs are Go code (catalog_en.go, catalog_fr.go). This is appropriate for 2-4 languages. If the project reaches 5+ languages, consider migrating to resource files (JSON/TOML) with code generation, to avoid requiring Go expertise from translators.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Init ¶
func Init(lang string)
Init sets the active language catalog. If lang is not supported, falls back silently to EN. The warning for unsupported languages (a warning for unsupported languages requires streams access).
func IsSupported ¶
IsSupported checks if a language has a catalog available.
func Snapshot ¶ added in v1.1.0
func Snapshot() func()
Snapshot captures the current catalog and returns a function that restores it when called. Intended for test helpers that temporarily switch the language and want to restore whatever was active before — including non-default values set by a sibling test.
Paranoid-review fix (2026-04-11 LOW test hygiene): the previous suggestions_i18n test helper unconditionally restored to EN, silently clobbering any test that legitimately ran under FR.
Types ¶
type AngelaMessages ¶
type AngelaMessages struct {
// persona.go — DraftCheck messages (user-facing suggestions)
PersonaWhyTooListy string
PersonaLongParagraphs string
PersonaMissingVerify string
PersonaNoTradeoffs string
PersonaUxNoImpact string
PersonaBusinessNoValue string
PersonaAPINoExample string // api-designer: endpoints listed without a request example
PersonaAPIMissingErrors string // api-designer: endpoints without HTTP error responses
PersonaAPIMissingRequired string // api-designer: DTO fields without a required/optional column
// draft.go — completeness checks
DraftMissingWhat string
DraftMissingWhy string
DraftMissingAltWarn string
DraftMissingAltInfo string
DraftMissingImpact string
DraftBodyTooShort string
DraftBodyExceedsMax string
DraftAddScope string
DraftAddTags string
DraftAddRelated string
DraftWhyTooBrief string
// coherence.go
CoherencePossibleDup string // args: filename, tags
CoherenceRelatedFound string // args: filename, tags
CoherenceSameScopeOverlap string // args: scope, filename
CoherenceSameScopeRelated string // args: scope, filename, type
CoherenceMentionedBody string // arg: filename
// diff.go
DiffChangeHeader string // args: current, total
DiffApplyPrompt string
DiffApplyBothPrompt string
DiffInputEnded string // arg: remaining
DiffHunkLocation string // args: startLine, lineCount
DiffAutoAccept string // args: desc, label
DiffAutoReject string // args: desc
DiffAutoNeedsReview string // args: current, total
DiffAutoSummary string // args: accepted, rejected, asked
DiffWarnNetLoss string // args: deleted, net
DiffWarnSection string // arg: names
DiffWarnSections string // args: count, names
DiffWarnCodeBlocks string // arg: count
DiffWarnTableRows string // arg: count
// --for mode
UIForPrompt string // arg: audience
UIForNewFile string
UIForOverwrite string
// review.go
ReviewParseError string
ReviewMinDocs string // arg: count
// style.go
StyleUnknownRule string // arg: key
// polish — hallucination check
PolishHallucinationWarn string // no args
PolishHallucinationReject string // no args
PolishHallucinationHint string // no args
// review — differential summary
ReviewDiffSummary string // args: new, persisting, regressed, resolved
ReviewDiffResolved string // no args
// Runtime UI — polish/review progress messages
UIMode string // arg: audience
UITokenEstimate string // args: inputTokens, maxOutput, timeout
UIPersonas string // arg: personaList
UIQuality string // arg: score
UIMultiPass string // arg: sectionCount
UITokenStats string // args: input, output, model
UISpeedFast string // arg: speed
UISpeedSlow string // arg: speed
UISpeedNormal string // arg: speed
UICost string // arg: cost
UICostCheap string
UICostExpensive string
UITruncated string // args: used, limit
UITruncatedHint string
UITimeoutErr string // args: timeout, elapsed
UITimeoutHint1 string
UITimeoutHint2 string
UIRewrittenFor string // args: audience, filename
UIOriginalUnchanged string
UIChangesQuality string // args: count, scoreBefore, scoreAfter, delta
UIInputExceedsMax string // args: inputTokens, maxOutput
UIInputExceedsHint string // arg: suggested max_tokens
UIEstimatedCost string // arg: cost
UIContextWarning string // args: model, needed, limit
UIContextClose string // args: pct, model, needed, limit
UITimeoutWarning string // args: timeout, model, speed, seconds, tokens
UILowOutput string
UILocalModelTip string
UIReviewPreflight string // args: docCount, inputTokens, maxOutput, timeout
// Preview report (lore angela review --preview)
UIReviewPreviewHeader string // "Review preview" + separator rule
UIReviewPreviewCorpus string // args: count (int), size (string like "245 KB")
UIReviewPreviewModel string // arg: model name
UIReviewPreviewPersonasBaseline string // "baseline (no personas)"
UIReviewPreviewPersonasList string // args: count (int), pluralSuffix (string "s" or ""), comma-separated names
UIReviewPreviewAudienceNone string // "(none)"
UIReviewPreviewAudience string // arg: audience
UIReviewPreviewTokens string // args: input tokens (string formatted), max output tokens (string formatted)
UIReviewPreviewContextWindow string // arg: pct (float)
UIReviewPreviewCost string // arg: USD amount (string formatted)
UIReviewPreviewCostUnknown string // "unknown (model pricing not registered)"
UIReviewPreviewExpectedTime string // arg: seconds (int)
UIReviewPreviewWarningsHeader string // just "Warnings:" heading, no args
UIReviewPreviewAbort string // arg: abort reason
// Persona opt-in prompt & UX
UIPersonaConfiguredHeader string // args: count (int), pluralSuffix (string), comma-separated names
UIPersonaCostDeltaBaselineLabel string // arg: rendered line (string)
UIPersonaCostDeltaAugmentedLabel string // args: count (int), pluralSuffix, rendered line
UIPersonaAddContext string // explanation line, no args
UIPersonaPromptQuestion string // " Use them for this review? [y/N] "
UIPersonaNonTTYInfo string // args: icon (string), comma-separated names
UIPersonaCostBaselineZero string // "~$0 (zero-token baseline)"
UIPersonaCostDeltaUndefined string // arg: USD amount — used when baseline cost is 0
UIPersonaCostDeltaPct string // arg: percent (int) — like "(+18%)"
UIPersonaCostSameRoughly string // "(~same cost)"
UIPersonaCostUnknown string // "(cost unknown — model pricing not registered)"
UIPersonaInputTokens string // arg: formatted token count — "~%s input tokens"
UIPersonaCostInline string // arg: USD — " · ~$%s"
// Review report header + per-finding + TUI
UIReviewAngleHeader string // args: count (int), pluralSuffix
UIReviewAnglePersonaRow string // args: icon, displayName, expertise
UIReviewFlaggedBy string // arg: comma-separated "icon name" pairs
UIReviewAgreementConcur string // args: concurrentCount (int), poolSize (int)
UIReviewAgreementLineFormat string // arg: agreement tag — "(%d/%d)"
// Story 8-21 — duplicate-section arbitration prompts (TTY).
// Used by internal/angela/polish_arbitrate.go.
ArbitrateGroupHeader string // args: groupIdx (int), total (int), heading (%q), occCount (int)
ArbitrateInvalidChoice string // no args
ArbitratePrompt string // no args — " → "
ArbitratePreviewLine string // args: idx (int), line (int), words (int)
ArbitratePreviewTruncated string // args: shown (int), total (int)
ArbitrateOptKeepBoth string // no args
ArbitrateOptKeepAll string // arg: count (int)
ArbitrateOptsLine string // arg: bothOrAll label (already localized)
ArbitrateOccurrenceBanner string // args: i (int), total (int), line (int)
ArbitrateEmptyPreview string // no args — "(empty section)"
}
AngelaMessages holds user-facing strings for the Angela AI reviewer. NOTE: PromptDirective, Principles, and ContentSignals remain in English.
type CmdMessages ¶
type CmdMessages struct {
// root.go
RootShort string
RootConfigErrHint string // arg: error
// init.go
InitShort string
InitNotGitRepo string
InitNotGitRepoHint string
InitAlreadyInitialized string
InitCreatedLore string
InitCreatedLorerc string
InitCreatedLorercLocal string
InitModifiedGitignore string
InitWarningPrefix string
InitHooksPathWarn string // arg: path
InitInstalledHook string
InitNotInPathWarn string
InitInstallHint string
InitAddToPathHint string
InitBashPathHint string
InitZshPathHint string
InitFishPathHint string
InitPowerShellHint string
InitTagline string
InitDemoPrompt string
InitDemoWarning string
// new.go
NewUse string
NewShort string
NewCommitNotFound string // arg: hash
NewCommitFlagDesc string
// list.go
ListShort string
ListLong string
ListParseWarning string // arg: error
ListNoDocsOfType string // arg: type
ListNoDocsYet string
ListTagSingular string
ListTagPlural string
// show.go
ShowUse string
ShowShort string
ShowLong string
ShowTypeExclusive string
ShowUsageHint string
ShowTryHint string
ShowNoMatchKeyword string // arg: keyword
ShowTryAll string
ShowNoDocsFound string
ShowSelectPrompt string
// delete.go
DeleteUse string
DeleteShort string
DeleteInvalidName string // arg: filename
DeleteNotFound string // arg: filename
DeleteRefWarning string
DeleteRefNotUpdated string
DeleteForceRequired string
DeleteConfirmPrompt string // arg: filename
DeleteCancelled string
// note.go
NoteShort string
// pending.go
PendingShort string
PendingLong string
PendingListShort string
PendingResolveShort string
PendingSkipShort string
PendingFlagQuiet string
PendingFlagCommit string
PendingFlagType string
PendingFlagWhat string
PendingFlagWhy string
PendingFlagAlt string
PendingFlagImpact string
PendingNoPending string
PendingResolveHint string
PendingSkipHint string
PendingNoPendingRes string
PendingInvalidSel string // args: input, max
PendingSelectPrompt string // arg: max
PendingInvalidSelIn string // args: input, max
PendingSkipError string // arg: error
PendingListHeader string
// status.go
StatusShort string
StatusLong string
StatusHeader string // arg: branch/path
StatusHookNotInstalled string
StatusHookNotInstHint string
StatusHookInstalled string
StatusHookLabel string
StatusDocsDocumented string // arg: count
StatusDocsPending string // arg: count
StatusDocsLabel string
StatusExpressLine string // args: pct, express, total, altPct
StatusExpressUnreadable string // arg: count
StatusExpressLabel string
StatusAngelaMode string // arg: mode
StatusAngelaNoApiKey string
StatusAngelaProvider string // arg: provider
StatusAngelaDocsReview string // arg: count
StatusAngelaAllClean string
StatusAngelaLabel string
StatusReviewNoIssues string
StatusReviewFindings string // args: count, age
StatusReviewLabel string
StatusHealthAllGood string
StatusHealthIssues string // arg: count
StatusHealthLabel string
StatusTagline string
StatusReviewAgeJustNow string
StatusReviewAgeHours string // arg: hours
StatusReviewAgeDays string // arg: days
StatusFlagQuiet string
StatusFlagBadge string
StatusCollecting string // spinner label
// hook.go
HookShort string
HookInstallShort string
HookInstallHooksPathW string // arg: path
HookInstallCannotAuto string
HookInstallManualHint string
HookInstallVerb string
HookUninstallShort string
HookUninstallVerb string
HookPostCommitShort string
// demo.go
DemoShort string
DemoConsentPrompt string
DemoSimCommit string // arg: message
DemoTypePrompt string // arg: value
DemoTypeConfirm string // arg: value
DemoWhatPrompt string // arg: value
DemoWhatConfirm string // arg: value
DemoWhyPrompt string // arg: value
DemoIndexWarning string // arg: error
DemoSimShow string
DemoShowType string // arg: type
DemoShowWhat string // arg: what
DemoShowWhy string // arg: why
DemoShowDate string // arg: date
DemoShowCommit string // arg: hash
DemoShowStatus string
DemoTagline string
// release.go
ReleaseShort string
ReleaseNotInitMsg string
ReleaseNotInitHint string
ReleaseNoTagsError string
ReleaseNoTagsHint string
ReleaseParseWarning string // arg: error
ReleaseNoChanges string
ReleaseNoChangesHint string
ReleaseChangelogHdrWarn string
ReleaseIndexRegenWarn string // arg: error
ReleaseCollecting string // spinner label
ReleaseGenerating string // spinner label
// doctor.go
DoctorShort string
DoctorConfigCheck string
DoctorConfigOK string
DoctorActiveValues string
DoctorValueNotSet string
DoctorDocsCheck string
DoctorNoneFound string
DoctorConfigOKInline string
DoctorHealthAllGood string
DoctorIssuesFound string // arg: count
DoctorManualFix string // args: issue, hint
DoctorFixSummary string // args: fixed, remaining
DoctorStoreRebuilt string // arg: docCount
DoctorStoreSkipped string // arg: count
DoctorStoreCommits string // arg: count
DoctorScanning string // spinner label
DoctorScanned string // args: docCount, checks
DoctorFixing string // spinner label
DoctorRebuilding string // spinner label
// Story 8-22 — malformed-frontmatter suggestion block.
DoctorSuggestedActions string // no args
DoctorMalformedRestore string // no args — "Restore from a polish backup:"
DoctorMalformedEditManual string // no args — "Edit the file manually to repair the YAML block."
// Story 8-23 — prune output.
DoctorPruneHeader string // no args — "Pruning generated artifacts:"
DoctorPruneRowOK string // args: feature (str), removed (int), kept (int), human-bytes (str)
DoctorPruneRowErr string // args: feature (str), err (str)
DoctorPruneTotal string // arg: human-bytes (str)
DoctorPruneDryRunFoot string // no args — "(dry-run: no files changed)"
// config_cmd.go
ConfigShort string
SetKeyShort string
SetKeyUnknownProv string // args: provider, supported
SetKeyPrompt string // arg: provider
SetKeyStored string // arg: provider
DeleteKeyShort string
DeleteKeyUnknownProv string // args: provider, supported
DeleteKeyDeleted string // arg: provider
ListKeysShort string
ListKeysStored string // arg: provider
ListKeysNotSet string // arg: provider
// lore_check.go
LoreCheckNotInit string
LoreCheckNotInitHint string
// angela.go
AngelaShort string
AngelaDraftShort string
AngelaDraftNoFile string
AngelaDraftNotFound string // arg: filename
AngelaDraftCorpusWarn string // arg: error
AngelaDraftNoSuggestions string
AngelaDraftHeader string // arg: filename
AngelaDraftScoreLine string // args: score, label
AngelaDraftSuggCount string // arg: count
AngelaDraftAllNoDocs string
AngelaDraftAllHeader string // arg: count
AngelaDraftAllSugg string // args: count, score
AngelaDraftAllSuggWarn string // args: count, warnings, score
AngelaDraftAllSummary string // args: needAttention, total, suggestions
AngelaDraftAllVerboseHint string // hint about --verbose flag when warnings exist
AngelaDraftAllWarningsHeader string // shown before inline warning list
AngelaDraftDiffSummary string // args: new, persisting, resolved — differential mode summary line
AngelaDraftResolvedHeader string // header shown before the resolved-since-last-run list
// angela_polish.go
AngelaPolishShort string
AngelaPolishNotFound string // arg: filename
AngelaPolishNoProvider string
AngelaPolishNoChanges string
AngelaPolishNoneApplied string
AngelaPolishIndexWarn string // arg: error
AngelaPolishVerb string // arg: filename
AngelaPolishProgress string // arg: filename — shown before API call
AngelaPolishDone string // shown after API call completes
AngelaPolishStep1 string // arg: filename — step 1/3 preparing
AngelaPolishStep2 string // arg: filename — step 2/3 calling AI (spinner)
AngelaPolishStep2Done string // step 2/3 done
AngelaPolishStep3 string // step 3/3 computing diff
// Polish safety nets (backup + dry-run)
AngelaPolishBackupCreated string // arg: path
AngelaPolishBackupPruneWarn string // arg: error
AngelaPolishBackupDisabled string
AngelaPolishRestoreShort string
AngelaPolishRestoreNoBackup string // arg: filename
AngelaPolishRestoreOK string // args: filename, stamp
AngelaPolishRestoreListHdr string // arg: filename
AngelaPolishRestoreListRow string // args: stamp, pretty time
AngelaPolishRestoreUnknown string // arg: stamp
// Story 8-21 — structural integrity messages (cmd-level, user-facing).
AngelaPolishCorruptSource string // no args — title of refusal
AngelaPolishCorruptSourceHint string // arg: filename — pointer to doctor/restore
AngelaPolishLeakedFMStripped string // args: bytes (int), line (int)
AngelaPolishDryRunDuplicates string // arg: group count
AngelaPolishDuplicateHeadingRow string // args: heading (%q), count (int)
AngelaPolishArbitrateAbortMsg string // arg: group count
AngelaPolishArbitrateRefusedMsg string // arg: group count
AngelaPolishArbitrateRefusedHint string // no args — "Re-run in a TTY, or use --arbitrate-rule=…"
// angela_review.go
AngelaReviewShort string
AngelaReviewNoProvider string
AngelaReviewCorpusNote string // arg: count
AngelaReviewCacheWarn string // arg: error
AngelaReviewHdrPartial string // args: analyzed, total
AngelaReviewHdrFull string // arg: count
AngelaReviewCoherent string
AngelaReviewFindingSum string // args: count, severity
AngelaReviewMinDocs string // args: minRequired, currentCount
AngelaReviewParseErr string
AngelaReviewProgress string // arg: count — shown before API call
AngelaReviewDone string // shown after API call completes
AngelaReviewStep1 string // arg: count — step 1/2 preparing summaries
AngelaReviewStep2 string // arg: count — step 2/2 calling AI (spinner)
AngelaReviewStep2Done string // step 2/2 done
// Evidence-required findings rejection output
AngelaReviewRejectedCount string // arg: count
AngelaReviewRejectedLine string // args: title, reason
AngelaPolishModified string
// Error messages for angela review command
AngelaReviewErrFormatRequiresPreview string // static error, no args
AngelaReviewErrMutuallyExclusive string // arg: comma-separated flag names
AngelaReviewErrUnknownPersonas string // arg: comma-separated names
AngelaReviewErrUnknownConfiguredPersona string // arg: comma-separated names
AngelaReviewErrUseConfiguredNoManual string // static error, no args
AngelaReviewErrUnknownFormat string // arg: format value
// Badge hints (status, init, draft)
BadgeHintStatus string // shown at end of lore status dashboard
BadgeHintInit string // shown after lore init
BadgeHintDraftClean string // shown when draft --all finds zero suggestions
// Synthesizer cmd strings
SynthApplyDone string // args: count, filename
SynthApplyStatusChange string // args: old, new
SynthApplyNone string // args: filename
SynthDryRunHeader string // args: filename, count
SynthDryRunProposal string // args: i, total, name, key
ConsultHeader string // args: file, icon, name, expertise
ConsultNoSuggestion string // arg: name
ConsultListTitle string
ConsultListUsage string
StatusCoverage string // arg: percent
// decision.go
DecisionShort string
DecisionDiffWarn string // arg: error
DecisionCommitLabel string // arg: hash
DecisionSubjectLabel string // arg: subject
DecisionScoreLabel string // arg: score
DecisionActionLabel string // arg: action
DecisionConfidenceLabel string // arg: confidence
DecisionSignalsHeader string
DecisionPrefillHeader string
DecisionPrefillWhat string // arg: what
DecisionPrefillWhy string // args: why, confidence
// completion.go
CompletionShort string
CompletionLong string
// root.go — language warnings
UnsupportedLangWarn string // arg: lang
// show.go — deprecation
ShowAllDeprecated string
// upgrade.go
UpgradeShort string
UpgradeChecking string
UpgradeAlreadyLatest string // arg: version
UpgradeNewVersion string // args: current, latest
UpgradeDownloading string // arg: version
UpgradeVerifying string
UpgradeChecksumFail string
UpgradeInstalling string
UpgradeSuccess string // arg: version
UpgradeHomebrew string // arg: command
UpgradeGoInstall string // arg: command
UpgradePermissionErr string // arg: path
UpgradeNetworkErr string
UpgradeAPIErr string // arg: error
UpgradeNoRelease string
UpgradeSkipDevBuild string
UpgradeVersionFlag string
UpgradeVersionNotFnd string // arg: version
// check_update.go
CheckUpdateShort string
CheckUpdateUpToDate string // arg: version
CheckUpdateAvail string // args: current, latest
CheckUpdateHint string
CheckUpdatePreRelease string
CheckUpdateChecking string // spinner label
// angela draft root (cmd/angela.go)
AngelaDraftFlagAll string
AngelaDraftFlagVerbose string
AngelaDraftFlagFormat string
AngelaDraftFlagFailOn string
AngelaDraftFlagStrict string
AngelaDraftFlagSeverity string
AngelaDraftFlagDiffOnly string
AngelaDraftFlagResetState string
AngelaDraftFlagPersonasMode string
AngelaDraftFlagManualPersonas string
AngelaDraftFlagPersona string
AngelaDraftFlagInteractive string
AngelaDraftFlagAutofix string
AngelaDraftFlagDryRun string
AngelaDraftFlagSynthesizers string
AngelaDraftFlagNoSynthesizers string
// angela polish (cmd/angela_polish.go)
AngelaPolishFlagDryRun string
AngelaPolishFlagYes string
AngelaPolishFlagFor string
AngelaPolishFlagAuto string
AngelaPolishFlagIncremental string
AngelaPolishFlagFull string
AngelaPolishFlagHalluStrict string
AngelaPolishFlagForce string
AngelaPolishFlagInteractive string
AngelaPolishFlagSynthesizers string
AngelaPolishFlagNoSynthesizers string
AngelaPolishFlagSynthDryRun string
AngelaPolishFlagSynthesize string
AngelaPolishFlagSetStatus string
AngelaPolishFlagPersona string
AngelaPolishFlagArbitrateRule string
AngelaPolishFlagVerbose string
// angela polish restore (cmd/angela_polish_restore.go)
AngelaPolishRestoreFlagTimestamp string
AngelaPolishRestoreFlagList string
// angela review (cmd/angela_review.go)
AngelaReviewFlagQuiet string
AngelaReviewFlagVerbose string
AngelaReviewFlagFor string
AngelaReviewFlagFilter string
AngelaReviewFlagAll string
AngelaReviewFlagDiffOnly string
AngelaReviewFlagInteractive string
AngelaReviewFlagSynthesizers string
AngelaReviewFlagNoSynthesizers string
AngelaReviewFlagPersona string
AngelaReviewFlagNoPersonas string
AngelaReviewFlagUseConfiguredPersonas string
AngelaReviewFlagPreview string
AngelaReviewFlagFormat string
// angela review ignore / log (cmd/angela_review_ignore.go + log.go)
AngelaReviewIgnoreFlagReason string
AngelaReviewLogFlagFormat string
// decision (cmd/decision.go)
DecisionFlagExplain string
DecisionFlagCalibration string
// delete (cmd/delete.go)
DeleteFlagForce string
// doctor (cmd/doctor.go)
DoctorFlagFix string
DoctorFlagQuiet string
DoctorFlagConfig string
DoctorFlagRebuildStore string
DoctorFlagPrune string
DoctorFlagDryRun string
// init (cmd/init.go)
InitFlagNoDemo string
// list (cmd/list.go)
ListFlagType string
ListFlagQuiet string
// release (cmd/release.go)
ReleaseFlagFrom string
ReleaseFlagTo string
ReleaseFlagVersion string
ReleaseFlagQuiet string
// show (cmd/show.go)
ShowFlagType string
ShowFlagAfter string
ShowFlagAll string
ShowFlagQuiet string
ShowFlagFeature string
ShowFlagDecision string
ShowFlagBugfix string
ShowFlagRefactor string
ShowFlagNote string
}
CmdMessages holds strings for CLI commands (cmd/ package). Each field documents its format args in a comment when applicable.
type DecisionMessages ¶
type DecisionMessages struct {
// calibration.go — report labels
CalibrationTitle string
CalibrationTotalCommits string
CalibrationAutoSkipped string // args: count, pct
CalibrationSuggestSkip string
CalibrationAskReduced string
CalibrationAskFull string
CalibrationQualityHdr string
CalibrationFalseNegRate string // arg: rate
CalibrationFalsePosRate string // arg: rate
CalibrationAskFullDoc string // arg: rate
CalibrationAutoSkipRate string // arg: rate
}
DecisionMessages holds strings for calibration report and signal reasons.
type EngagementMessages ¶
type EngagementMessages struct {
Milestone3 string
Milestone8 string
Milestone21 string
Milestone55 string
// Star prompt
StarPrompt string // "Enjoying Lore? Star us → ..."
}
EngagementMessages holds milestone reinforcement messages. These are the Fibonacci milestone messages (3, 8, 21, 55).
type Lang ¶
type Lang string
Lang represents a supported language.
func SupportedLanguages ¶
func SupportedLanguages() []Lang
SupportedLanguages returns the list of languages with available catalogs. Phase A: EN only. Phase B adds FR.
type Messages ¶
type Messages struct {
Cmd CmdMessages
Workflow WorkflowMessages
UI UIMessages
Angela AngelaMessages
Engagement EngagementMessages
Decision DecisionMessages
Notify NotifyMessages
}
Messages is the root catalog containing all user-facing strings organized by functional domain. Each sub-struct is defined in its own file (messages_cmd.go, etc.) for maintainability.
type NotifyMessages ¶
type NotifyMessages struct {
// Dialog titles and labels
DialogTitle string // "Lore"
DialogTitleWhat string // "Lore — What"
DialogTitleWhy string // "Lore — Why"
// Dialog prompts
PromptType string // "Type:"
PromptWhat string // "What did you change?"
PromptWhy string // "Why did you make this change?"
// Dialog buttons
ButtonCancel string // "Cancel"
ButtonNext string // "Next"
ButtonSave string // "Save"
ButtonSkip string // "Skip"
// Simple notification
SimplePending string // "lore pending — %s"
// Dialog error handling
ErrorPrefix string // "Lore error: "
ErrorResolve string // "Failed to resolve pending"
ButtonOK string // "OK"
// Pending resolve
NoMatchingPending string // "No pending commit matching %q"
}
NotifyMessages holds strings for OS notification dialogs (internal/notify/).
type SharedMessages ¶
type SharedMessages struct {
// config/config.go
// config/validate.go
// ai/provider.go
// storage/index.go
// storage/release.go
}
SharedMessages holds strings used across multiple packages.
type UIMessages ¶
type UIMessages struct {
// logo.go
Tagline string // "your code knows what. lore knows why."
// error.go
ErrorPrefix string // "Error:"
RunPrefix string // "Run:"
// verb.go
VerbDeleted string // "Deleted"
// list.go
ListTruncated string // "... and %d more. Refine your search." (arg: remaining count)
ListPromptRange string // "Please enter a number between 1 and %d." (arg: max)
ListNoInput string // "no input"
// prompt.go
PromptWithDefault string // "? %s [%s]: " (args: question, default)
PromptNoDefault string // "? %s\n> " (arg: question)
// readme_bridge.go
ReadmeBridgeTitle string // "About .lore/"
ReadmeBridgeIntro string // "This repository is documented with [Lore](...)."
ReadmeBridgeDesc string // "Lore captures the *why* behind code changes..."
ReadmeBridgeLink string // "Learn more: ..."
ReadmeBridgeGenNote string // "This file was generated by `lore init`..."
// interactive fallback
InteractiveFallback string // "interactive mode not available in non-TTY, falling back to standard output"
// badge.go
BadgeCoverageDetail string // "Coverage: %d%% (%d eligible: %d documented, %d skipped, %d gaps)"
BadgeNoEligible string // "no eligible commits"
BadgeSkipRateWarning string // "⚠ Skip rate: %d%% (%d/%d eligible commits skipped)"
BadgeSkipRateHint string // "A high skip rate may indicate documentation avoidance."
BadgeLabelDocumented string // "documented" / "documente"
}
UIMessages holds strings for terminal UI components (internal/ui/ package).
type WorkflowMessages ¶
type WorkflowMessages struct {
// reactive.go
SuggestSkipPrompt string // "Document this commit? [y/N] "
SuggestSkipSkipped string // "Skipped."
AmendUpdatingExisting string // arg: filename
AmendNoDocCreatingNew string // arg: ref
// detection.go
MergeCommitSkipMsg string
AutoSkipMsg string // args: score, subject
// proactive.go
AlreadyDocumented string
CreateAnother string // "Create another document? [y/N] "
AmendChoicePrompt string // "[U]pdate existing / [C]reate new / [S]kip? "
AmendQuestion0 string // "Amend detected. Document this change? [Y/n] "
// common.go
IndexWarning string // arg: error
// questions.go
QuestionWhyLabel string
QuestionAlternativesLabel string
QuestionImpactLabel string
// resolve.go
ResolveHeader string
ResolveCommitLabel string // arg: hash
ResolveMessageLabel string // arg: message
ResolveDateLabel string // arg: date
ResolveCheckCommitW string // args: hash, error
ResolveCommitGoneW string // arg: hash
ResolveDeletePendingW string // arg: error
// pending.go
PendingReadWarn string // args: path, error
PendingParseWarn string // args: path, error
// pending.go relative time
RelativeAgeJustNow string
RelativeAgeMinutes string // arg: count
RelativeAge1Hour string
RelativeAgeHours string // arg: count
RelativeAge1Day string
RelativeAgeDays string // arg: count
RelativeAge1Week string
RelativeAgeWeeks string // arg: count
RelativeAge1Month string
RelativeAgeMonths string // arg: count
// preflight.go
PreflightFailed string // arg: error
PreflightPendingSaved string
// line_renderer.go
LineRendererConfirm string // args: label, value
LineRendererExpressSkip string // arg: count
}
WorkflowMessages holds strings for workflow orchestration (internal/workflow/).