v0.258.0: the last four Hungarian things an English household met
gates / gates (push) Successful in 24s
gates / gates (push) Successful in 24s
R-589 the update badge, R-590 the data-folder backup sentence, R-573 the two channel banners, R-572 two dead helpers. All four were built in Go, which is why neither the template parity fixtures nor TestI18nEnglishPages could see them; slice 5's LIVE proof is what found them. R-590 is the one that matters most: it is a promise about the customer's files. It said, in Hungarian and under an already-English folder label, that a drop-zone is temporary and unbacked. The test now asserts the CONSEQUENCE in both languages — and that the two languages do not produce the same string, which would mean the English fell back. R-572 is not what its row said. The row claimed a template renders "vasárnap" on an English page; measured, NO template and no Go file called pruneLabel or nextPruneLabel. They were dead func-map entries returning Hungarian, so they are deleted rather than translated — translating dead code would add machinery with no reader and a test pinning a fiction. Deletion is fail-loud and that was proven: a template naming the removed function panics loadTemplates at startup. Five red-proofs. One of them says something about the gate rather than the code: the Go-parity gate does not measure localeFuncs keys against the base capture, so the citation to TestLocaleFuncsHungarianBundleMatchesFuncMap is what carries them — the test was extended to make that citation true. MinAgent: 0.131.0 (unchanged). Hungarian byte-identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -357,6 +357,48 @@ func (s *Server) localeFuncs(lang string) template.FuncMap {
|
||||
}
|
||||
return &out
|
||||
},
|
||||
// updateBadge / lifecycleBadge (R-589, v0.258.0) — the two *MetaBadge builders. Their
|
||||
// Hungarian forms in templateFuncMap are UNTOUCHED, which is the parity guarantee; these
|
||||
// rebuild the same badge from the bundle, reusing compareInstalledToTemplate and
|
||||
// EffectiveLifecycle so the DECISION cannot drift between the two languages — only the
|
||||
// words do. TestLocaleFuncsHungarianBundleMatchesFuncMap pins that hu.json says what the
|
||||
// Hungarian funcs say.
|
||||
//
|
||||
// Found live on 2026-09-20: on an English app page the only Felhom-authored Hungarian left
|
||||
// was this badge, „Naprakész", with a Hungarian tooltip under it.
|
||||
"updateBadge": func(st stacks.Stack) *MetaBadge {
|
||||
switch compareInstalledToTemplate(st) {
|
||||
case updateCurrent:
|
||||
return &MetaBadge{
|
||||
Label: b.Msg(lang, "badge.update.current"),
|
||||
Class: "tag-ok",
|
||||
Title: b.Msg(lang, "badge.update.current.title"),
|
||||
}
|
||||
case updateBehind:
|
||||
label := b.Msg(lang, "badge.update.behind")
|
||||
if days, ok := st.Meta.CatalogSinceAge(time.Now().UTC()); ok {
|
||||
if days == 0 {
|
||||
label += b.Msg(lang, "badge.update.behind.today")
|
||||
} else {
|
||||
label += b.Plural(lang, "badge.update.behind.days", days)
|
||||
}
|
||||
}
|
||||
return &MetaBadge{Label: label, Class: "tag-warn", Title: b.Msg(lang, "badge.update.behind.title")}
|
||||
default:
|
||||
// UNKNOWN renders nothing, in every language — see updatebadge.go.
|
||||
return nil
|
||||
}
|
||||
},
|
||||
"lifecycleBadge": func(m stacks.Metadata) *MetaBadge {
|
||||
if m.EffectiveLifecycle() != stacks.LifecycleAbandoned {
|
||||
return nil
|
||||
}
|
||||
return &MetaBadge{
|
||||
Label: b.Msg(lang, "badge.lifecycle.abandoned"),
|
||||
Class: "tag-warn",
|
||||
Title: b.Msg(lang, "badge.lifecycle.abandoned.title"),
|
||||
}
|
||||
},
|
||||
"statusText": func(status string) string {
|
||||
switch status {
|
||||
case "pending", "restoring", "done", "failed", "skipped":
|
||||
|
||||
Reference in New Issue
Block a user