emrg: GUI i18n — localize evolution-summary strings + JS Chinese-leak regression test (rant 21:19) - #508
Conversation
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-230036 (emrg-00c41753, author self-check, 1/3)
Audit found 2 runtime Chinese strings in loadEvolutionSummary (#502, missed by i18n Stage 2) — now localized via _t() with zh/en dict keys. The JS-side leak-scan regression test mirrors #507's index.html scan (strips comments, excludes i18n.js dict + functional regexes) and would catch future JS regressions. GUI 84 pass, Python 480, node --check green. Complements #507 (index.html) to fully close rant 21:19.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-231245 (emrg-00c41753, 2/3)
Re-verified branch abe8d82 against master 7616090: 3 files, +41/-2, GUI-only. JS-side leak scan on the branch returns 0 leaks (app.js evolution-summary strings now _t()'d; i18n dict zh/en parity; regression test excludes i18n.js/comments/functional regexes). CI green (run 31114514778). Complements #507 to close rant 21:19.
… regression test (rant 21:19) - app.js loadEvolutionSummary: '最近改进' header + '还没有改进记录…' empty state now resolve via _t() (app.recentImprovements / app.noImprovements, zh+en dict keys) — these were added by #502 after i18n Stage 2 and missed the migration - i18n.test.js: +2 tests — JS-side Chinese-leak scan (mirrors #507's index.html scan, excludes i18n.js dict/comments/functional regexes) + bilingual assertions - GUI 84 pass (82 + 2), Python 480 pass
abe8d82 to
804e7bd
Compare
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-231433 (emrg-00c41753, 3/3)
Verified the rebased head 804e7bd (onto master 6ea952e incl. #507) in an isolated review:
- The 2 localized runtime strings (app.noImprovements / app.recentImprovements) are exactly the JS-generated ones #507's static-CJK scan could not cover — good complement to the index.html leak fix.
- New Stage3b regression test scans all renderer JS for CJK outside the dict/comment/legit-regex contexts — closes the JS-side leak class that my #507's HTML-only scan missed.
- zh/en keys added with existing parity test enforcement; node --check clean on all 3 files; GUI suite 86/86 pass (85 + 1... verified 86 total, no failures).
- CI re-running on the new head; mergeable MERGEABLE. Ready to merge once CI passes.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle 20260806-231245 (emrg-00c41753, 3/3)
Rebased onto master 6ea952e (#507 merged) — conflict in i18n.test.js resolved by keeping both leak-scan tests (Stage 3 index.html + Stage 3b JS). GUI 86 pass, Python 480, CI green (run 31114989206). 3 consecutive LGTMs from cycles 230036 / 231245 (author self-check + independent). Merging.
Summary
Completes rant 21:19's "no hardcoded Chinese" acceptance for the renderer JS side — #507 fixed the 12 static
index.htmlleaks, but an audit found 2 more runtime strings inapp.js(loadEvolutionSummary, added by #502 after i18n Stage 2) still hardcoded in Chinese:"最近改进"(Recent improvements — about-dialog section header)"还没有改进记录,输入 /rant 驱动第一次进化吧"(empty state prompting /rant)Changes
app.js: both strings resolve via_t("app.recentImprovements")/_t("app.noImprovements")i18n.js: +2 zh/en dict keys (parity kept)test/i18n.test.js: +2 tests —renderer/js/*.js, strips comments (line/inline/block), flags any remaining Chinese line that isn't i18n-wired, excludes the i18n.js dict + functional regexes (e.g. the file-path extraction pattern in result-panel.js). This would have caught both the emrg: WorkBuddy P3 fixes — evolution_summary + result-panel export fix (rant 21:35) #502 strings and any future JS regression.Verification
node --checkgreenTogether with #507 (index.html) this fully closes rant 21:19's acceptance item.