R-516: the formal forms the gate did not count are in the te-form; the gate's stems widened
49 Hungarian values on the debug (RESET prompt), storage, network-storage, security, system, deploy, restore and remote-backup copy moved from the formal („ön") to the product's te-form („írd be", „add meg", „hozz létre", „biztosan eltávolítod", „engedélyezd", „próbáld", ...). i18n_missing_gate.py's stem list widened by 33 stems (+ one listed third-person exception, „sora adja meg"); it counted 61 on the previous bundle and counts 0 now, ceiling stays 0. Decoys: a widened-stem form convicts, its te-form twin and the third-person phrase pass. 38 parity fixtures changed by exactly those bytes. Seven Go-side keys listed as REWORDED in the go-parity map. Pinned by TestR516_WidenedFormalFormsAreGone; two tests that quoted the old words follow them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -153,3 +153,45 @@ func TestR516_FormalFormsAreGone(t *testing.T) {
|
||||
t.Fatal("the ASCII fold does not work — the negative control proves nothing")
|
||||
}
|
||||
}
|
||||
|
||||
// R-516 (2026-10-06) — the formal („ön") forms the gate's first stem list did not see: the debug RESET
|
||||
// prompt, the storage and network-storage confirms and guides, the security and system pages, the
|
||||
// deploy and restore copy. They are in the te-form now; the i18n gate's widened stems keep new ones out.
|
||||
func TestR516_WidenedFormalFormsAreGone(t *testing.T) {
|
||||
b, err := i18n.Shared()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := map[string]string{
|
||||
"debug.irja_be_reset": "Írd be: RESET",
|
||||
"debug.api.reset_confirm_invalid": "Érvénytelen megerősítés — írd be: RESET",
|
||||
"settings_security.adja_meg_a_jelenlegi_jelszavat": "Add meg a jelenlegi jelszavad",
|
||||
"storage.biztosan_eltavolitja_adattarolot": "Biztosan eltávolítod a(z) {{.Path}} adattárolót?",
|
||||
"storage_network.engedelyezze_a_felhom_gep_ip": "Engedélyezd a Felhom gép IP-címét a megosztáson. Proxmox-fürt esetén minden csomópont IP-címét.",
|
||||
"backups_remote.a_letetben_levo_helyreallitasi_csomag": "A letétben lévő helyreállítási csomag nem fedi a jelenlegi távoli mentési jelszót. Hozz létre új helyreállítási kódot.",
|
||||
"err.selfupdate.mentes_fut_probalja_kesobb": "Mentés fut, próbáld később",
|
||||
"flash.backup.window_invalid_time": "Érvénytelen időpont. Használd az ÓÓ:PP formátumot (például 02:30).",
|
||||
}
|
||||
for key, w := range want {
|
||||
got, fellBack, ok := b.Text("hu", key)
|
||||
if !ok || fellBack || got != w {
|
||||
t.Errorf("%s: %q, want %q", key, got, w)
|
||||
}
|
||||
}
|
||||
fold := strings.NewReplacer("á", "a", "é", "e", "í", "i", "ó", "o", "ö", "o", "ő", "o", "ú", "u", "ü", "u", "ű", "u")
|
||||
stems := []string{"irja be", "hozzon letre", "biztosan eltavolitja", "engedelyezze", "probalja", "valasszon",
|
||||
"jelezze", "biztosan ujrainditja", "folytatja?", "szabaditson", "mentse el", "tavolitsa el"}
|
||||
for _, key := range b.Keys("hu") {
|
||||
v, _, _ := b.Text("hu", key)
|
||||
lv := fold.Replace(strings.ToLower(v))
|
||||
for _, st := range stems {
|
||||
if strings.Contains(lv, st) {
|
||||
t.Errorf("%s still carries the formal %q: %q", key, st, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Positive control: the fold must turn a formal sentence into a matching stem, or the loop judged nothing.
|
||||
if lv := fold.Replace(strings.ToLower("Írja be a nevet")); !strings.Contains(lv, "irja be") {
|
||||
t.Fatal("the ASCII fold does not work — the negative control proves nothing")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user