v0.248.0: i18n slice 1 release A — apps and settings in English, Hungarian byte-identical (R-556)
gates / gates (push) Successful in 20s

Ten pages converted against fixtures captured from unconverted templates (6be55a0); marker
coverage test; English page mask narrowed; English retrieval-promise stems; common keys;
title keys and infraMeta from the bundle; old wording tests read the Hungarian expansion.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-17 17:36:08 +02:00
parent 6be55a0eb3
commit ff68b0b433
30 changed files with 1690 additions and 651 deletions
+11 -1
View File
@@ -41,7 +41,9 @@ ASCII_HU = re.compile(r"\b(Fut|Nincs|Igen|Nem|Hiba|Mentve|Rendben|Adatok|Napi|He
r"Perc|Letiltva|Bekapcsolva|Kikapcsolva|Folyamatban|Sikertelen|Sikeres|Tartalom|"
r"Kapcsolat|Vissza|Megosztva|Kezdeti|Rendszer|Csatlakozva|Kulcs|Megnyit|Elrejt|"
r"Ismeretlen|Szabad|Foglalt|Kijelentkezes|Napok|nap|perc|ora|"
r"Megszakadt|Elavult|Csak|kompatibilis|Rendszermonitor|Most nem)\b", re.I)
r"Megszakadt|Elavult|Csak|kompatibilis|Rendszermonitor|Most nem|"
# slice 1 release A review: left behind on dashboard..settings_notifications
r"Folyamat|Titkos|Processzor|Hamarosan|aldomain|adatai|Figyelem|pelda)\b", re.I)
INLINE = {"strong", "em", "b", "i", "br", "code", "small", "a", "kbd", "u"} # NOT span: it is layout here
VOID = {"br"}
@@ -328,6 +330,14 @@ def js_edits(body, base, ctx):
gt, lt = content.find(">"), content.find("<")
if gt >= 0 and (lt < 0 or gt < lt):
skip = gt + 1
# ...or it starts inside an attribute value: '%;opacity:.5" title="Rendszer: ' — only the
# text after the last attribute opening is copy (slice 1 release A, monitoring.html).
elif lt < 0:
last = None
for am in re.finditer(r'=\s*"', content):
last = am
if last is not None:
skip = last.end()
sub = edits_for_fragment(content[skip:], base + i + 1 + skip, ctx, allow_attrs=False)
ctx.stats["js"] += len(sub)
edits.extend(sub)
+1 -1
View File
@@ -38,7 +38,7 @@ TEMPLATE_ROOTS = [os.path.join(CTRL, "internal", "web", "templates")]
MARKER = re.compile(r'\{\{\s*T\s+"([A-Za-z0-9_.\-]+)"\s*\}\}')
EN_MISSING_CEILING = 0
HU_FORMAL_CEILING = 6
HU_FORMAL_CEILING = 10 # raised 6 -> 10 in slice 1 release A: the converted pages carry 4 more (R-516), not changed (parity)
EN_FORBIDDEN = re.compile(r"\b(please|kindly)\b", re.I)