i18n: translation pipeline, deprecate: /api/glossary route#18092
Conversation
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
Co-Authored-By: Gemini <gemini@google.com>
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
🌐 Translation review started. View progress |
There was a problem hiding this comment.
Translation Quality Review
PR: #18092
Branch HEAD: 04cdf5c98c
Languages: ar, bn, cs, de, es, fr, hi, id, it, ja, ko, mr, pl, pt-br, ru, sw, ta, te, tr, uk, ur, vi, zh, zh-tw (24 total)
Files reviewed: 72 (3 JSON files × 24 languages: common.json, component-listing-methodology.json, page-wallets-find-wallet.json)
Date: 2026-04-30
Fixes: No fixes applied (review-only)
This is a UI-string review only — no MDX content is in this PR. Each language was reviewed by a dedicated agent against the English source plus the ETHGlossary for that locale.
Summary by Language
| Language | Critical | Warnings | Quality Score |
|---|---|---|---|
| ar | 0 | 10 | 8.6/10 |
| bn | 7 | 8 | 7.4/10 |
| cs | 0 | 11 | 8.8/10 |
| de | 0 | 10 | 9.0/10 |
| es | 0 | 8 | 9.2/10 |
| fr | 0 | 14 | 8.9/10 |
| hi | 0 | 17 | 8.6/10 |
| id | 7 | 13 | 7.4/10 |
| it | 5 | 11 | 8.2/10 |
| ja | 1 | 13 | 8.2/10 |
| ko | 3 | 9 | 7.8/10 |
| mr | 0 | 19 | 8.4/10 |
| pl | 0 | 11 | 9.0/10 |
| pt-br | 0 | 11 | 8.8/10 |
| ru | 0 | 17 | 8.4/10 |
| sw | 2 | 23 | 8.0/10 |
| ta | 3 | 19 | 6.6/10 |
| te | 1 | 10 | 8.2/10 |
| tr | 2 | 9 | 8.0/10 |
| uk | 0 | 16 | 8.5/10 |
| ur | 8 | 14 | 7.2/10 |
| vi | 5 | 13 | 7.8/10 |
| zh | 0 | 10 | 9.0/10 |
| zh-tw | 0 | 9 | 8.8/10 |
| Total | 44 | ~315 | avg 8.3/10 |
Cross-cutting themes observed
- "Ethereum Foundation" being translated — flagged as critical in
id(5 keys),it(5 keys),vi(5 keys). The brand should remain in English. - Lowercase
(l2)/ inconsistent L2 casing — 14 languages mix(L2)and(l2)within the same file. Glossary writes lowercase but visual convention is uppercase. - Native-script numerals where Western Arabic required —
bn(Bengali numeral ২ in 4 keys, critical),mr(Devanagari २ in some L2 keys). - Cross-script contamination —
ur: 4 instances of Arabic kaf (U+0643) instead of Urdu kaf (U+06A9) insideلامرکزی. - Semantic mistranslations —
treips/nav-eip-label("Improvement"→"Development"),tanft-page("non-fungible"→"fungus-less"),taacknowledgements("approvals"),kosocial-recovery-desctypo (스마트 컨트랙 missing 트),jause-menu(label→imperative),swstatelessness(coined word) and "third-party"→"wa tatu" (numeric "third"). - Glossary deviations on
Ethereum/mainnet/hardware-wallet—ta(3 spellings of Ethereum),mr(mainnet/मेननेट vs मुख्यनेट),ko(하드웨어 월렛 vs 하드웨어 지갑, 출금 vs 인출). - SaaS / staking-saas inconsistency — same English term rendered two ways within the same file in 10 languages.
- Tone/register migrations are clean — particularly
de(Sie→du) andes(usted→tú), with consistent application across all three files.
Critical Issues — full list
| Lang | File | Key | Issue |
|---|---|---|---|
| bn | common.json | how-to-use-a-bridge | Bengali numeral ২ — Indic policy requires Western Arabic 2 |
| bn | page-wallets-find-wallet.json | page-find-wallet-layer-2 | Bengali numeral ২ |
| bn | page-wallets-find-wallet.json | page-find-wallet-layer-2-desc | Bengali numeral ২ |
| bn | page-wallets-find-wallet.json | page-find-wallet-methodology-criterion-ethereum-focused | Bengali numeral ২ |
| bn | common.json | pbs | Lowercase (pbs) instead of uppercase (PBS) |
| bn | common.json | real-world-assets | Lowercase (rwa) redundant with leading RWAs |
| bn | common.json | adding-layer-2s | Lowercase (l2) instead of (L2) (or omit) |
| id | common.json | ethereum-foundation | "Yayasan Ethereum" — brand violation |
| id | common.json | ef-blog | "Yayasan Ethereum" — brand violation |
| id | common.json | ethereum-foundation-logo | "Yayasan Ethereum" — brand violation |
| id | common.json | nav-ethereum-foundation-label | "Yayasan Ethereum" — brand violation |
| id | common.json | product-disclaimer | "...Yayasan Ethereum." should be "...Ethereum Foundation." |
| id | common.json | nav-bridges-description | Lowercased l1/l2 technical identifiers |
| id | common.json | nav-find-l2-label | Lowercased L2 |
| it | common.json | ef-blog | "Fondazione Ethereum" — brand violation |
| it | common.json | ethereum-foundation | "Fondazione Ethereum" — brand violation |
| it | common.json | ethereum-foundation-logo | Brand violation |
| it | common.json | nav-ethereum-foundation-label | Brand violation |
| it | common.json | product-disclaimer | Brand violation |
| ja | common.json | use-menu | Semantic mistranslation: label rendered as imperative メニューを使用 (= "Use the menu") instead of 「使用」メニュー |
| ko | page-wallets-find-wallet.json | page-find-wallet-social-recovery-desc | Typo: 스마트 컨트랙 (missing 트) |
| ko | common.json | withdrawals | Glossary deviation: 출금 should be 인출 |
| ko | page-wallets-find-wallet.json | page-find-wallet-hardware-wallet-support / -desc | Glossary: 하드웨어 월렛 should be 하드웨어 지갑 |
| sw | common.json | statelessness | Ubilahali is a non-standard/coined Swahili word |
| sw | common.json | nav-staking-saas-description | "third-party" mistranslated as wa tatu (numeric "third") |
| ta | common.json | acknowledgements | ஒப்புதல்கள் means "approvals/consents", not "acknowledgements" |
| ta | common.json | nft-page | பூஞ்சையற்ற literally means "fungus-less" — wrong for "non-fungible" |
| ta | common.json | (multiple keys) | Three competing spellings of "Ethereum" (எத்திரியம் ×70, எத்தீரியம் ×5, எத்தேரியம் ×2) |
| te | common.json | saas | Telugu typo: స్టాకింగ్ should be స్టేకింగ్ |
| tr | common.json | nav-eip-label | "Improvement Proposals" mistranslated as Geliştirme Teklifleri (Development Proposals) |
| tr | common.json | eips | Same EIP semantic shift |
| ur | common.json | nav-did-description | Cross-script: Arabic kaf (U+0643) inside لامركزی (should be U+06A9 ک) |
| ur | common.json | nav-gaming-description | Cross-script kaf contamination |
| ur | common.json | nav-roadmap-future-description | Cross-script kaf contamination |
| ur | common.json | site-description | Cross-script kaf contamination |
| ur | common.json | adding-layer-2s | Lowercase (l2) instead of (L2) |
| ur | common.json | how-to-use-a-bridge | Lowercase (l2) |
| ur | common.json | nav-l2-networks-label | Lowercase (l2) |
| ur | common.json | nav-networks-learn-label | Lowercase (l2) |
| vi | common.json | ethereum-foundation | "Tổ chức Ethereum" — brand violation |
| vi | common.json | ef-blog | Brand violation |
| vi | common.json | ethereum-foundation-logo | Brand violation |
| vi | common.json | nav-ethereum-foundation-label | Brand violation |
| vi | common.json | nav-ethereum-foundation-description | Brand violation |
Suggestions for the importer / Crowdin
- Brand-name protection list — Add "Ethereum Foundation" (and translated forms
Yayasan Ethereum/Fondazione Ethereum/Tổ chức Ethereum) to the sanitizer's brand-protection table. - L2 casing normalizer — Many languages mix
(L2)/(l2)within the same file. A post-import normalizer that picks one casing per locale (matching glossary) would resolve ~14 of these warnings at once. - Numeral guard for Indic locales —
bn/mrneed a sanitizer pass that converts native numerals to Western Arabic in technical strings (already documented forhi). - Cross-script kaf detector —
ur: 4 instances ofك(U+0643) whereک(U+06A9) is required. A simple Unicode-range check would catch this. - Semantic-inversion pairs —
trmistranslated EIP "Improvement" → "Geliştirme" (Development). Consider adding the EIP gloss to the glossary so this is caught at review time.
Per-language detailed scoring summaries will follow in supplemental comments below.
To apply fixes, run locally:
/review-translations --pr=18092 --fix
Note: this CI workflow does not auto-fix on the PR branch.
Reviewed by Claude Code — 24 parallel language-specialist agents over UI strings only.
Per-language scoring detail (1/2): languages with critical issuesbn — 7.4/10 (7 critical, 8 warnings)
Recommendation: convert Bengali numerals to Western Arabic; uppercase parenthetical acronyms. Major retranslation otherwise improves glossary alignment (ইথেরিয়াম, ওয়ালেট, বিটকয়েন, সেতু). id — 7.4/10 (7 critical, 13 warnings)
Recommendation: revert "Yayasan Ethereum" → "Ethereum Foundation"; uppercase L1/L2. it — 8.2/10 (5 critical, 11 warnings)
Recommendation: revert "Fondazione Ethereum"; fix ja — 8.2/10 (1 critical, 13 warnings)
Recommendation: revert ko — 7.8/10 (3 critical, 9 warnings)
Recommendation: fix sw — 8.0/10 (2 critical, 23 warnings)
Recommendation: replace ta — 6.6/10 (3 critical, 19 warnings) — lowest scoring language
Recommendation: standardize Ethereum spelling to glossary te — 8.2/10 (1 critical, 10 warnings)
Recommendation: typo fix tr — 8.0/10 (2 critical, 9 warnings)
Recommendation: revert EIP "Geliştirme Teklifleri" → "İyileştirme Önerileri". ur — 7.2/10 (8 critical, 14 warnings)
Recommendation: replace Arabic kaf U+0643 with Urdu kaf U+06A9 in 4 keys; uppercase vi — 7.8/10 (5 critical, 13 warnings)
Recommendation: revert EF; fix |
Per-language scoring detail (2/2): languages with no critical issuesThese 13 languages are safe to merge from a critical-issues standpoint; warnings are consistency/polish suggestions. ar — 8.6/10 (0 critical, 10 warnings)
Strong baseline; consistency drift in terminology only. cs — 8.8/10 (0 critical, 11 warnings)
Converge on de — 9.0/10 (0 critical, 10 warnings)
Clean register migration; one semantic regression in es — 9.2/10 (0 critical, 8 warnings) — top scorer
High-quality retranslation; recommend merging as-is. fr — 8.9/10 (0 critical, 14 warnings)
Reconcile glossary deviations on Verkle/SSF/PBS; standardize apostrophe style. hi — 8.6/10 (0 critical, 17 warnings)
Glossary alignment is the headline; tidy up mixed mr — 8.4/10 (0 critical, 19 warnings)
Direction is positive; consistency polish needed. pl — 9.0/10 (0 critical, 11 warnings)
Safe to merge; consistency polish optional. pt-br — 8.8/10 (0 critical, 11 warnings)
No critical; reconcile Mainnet/scaling terminology. ru — 8.4/10 (0 critical, 17 warnings)
No critical; consistency polish recommended. uk — 8.5/10 (0 critical, 16 warnings)
No critical; consistency polish recommended. Notable improvement: zh — 9.0/10 (0 critical, 10 warnings)
No critical; minor warnings only. zh-tw — 8.8/10 (0 critical, 9 warnings)
Likely typo in All 24 languages reviewed. See the parent review for the full critical-issues table and importer recommendations. |
Apply targeted fixes from the automated review on PR #18092, prioritizing ETHGlossary canonical forms and the .claude/translation-review/transliterations/ tables over the review bot where the two diverged. Changes span 11 JSON files across bn, id, it, ja, ko, sw, ta, te, ur, vi: revert "Ethereum Foundation" semantic translations to brand form per project policy (Latin for Latin scripts, transliterated form for ta from the authoritative table), normalize ta standalone "Ethereum" outliers to glossary canonical, fix ko withdrawals and te staking glossary deviations and the ko smart-contract typo, switch ja "use-menu" to label form, fix ur cross-script kaf (U+0643 to U+06A9) and remove a misplaced LRI/PDI bidi pair, and align bn/id/sw/vi "adding-layer-2s" parenthetical casing and numeral form to glossary. Bot recommendations that conflicted with ETHGlossary (ko hardware-wallet, tr EIP, sw statelessness) were not applied. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
myelinated-wackerow
left a comment
There was a problem hiding this comment.
Applied 37 fixes across 11 files on intl/pending-dev (commit 4330dc29d2):
- bn: align
adding-layer-2snumeral to glossary (২) - id / it / vi: revert "Ethereum Foundation" to brand (Latin)
- id / sw / vi: lowercase
(l2)inadding-layer-2sper glossary - ja:
use-menuimperative -> label form (「使用」メニュー) - ko:
withdrawals출금->인출 (glossary);스마트 컨트랙typo - ta: EF -> transliteration table (
எத்தேரியம் ஃபவுண்டேஷன்); standalone "Ethereum" outliers -> glossary canonical (எத்திரியம்);acknowledgements,nft-pagecorrected - te:
saasస్టాకింగ్->స్టేకింగ్ (glossary) - ur: 4x Arabic kaf U+0643 -> Urdu kaf U+06A9; removed misplaced LRI/PDI in
how-to-use-a-bridge - vi: also fixed
product-disclaimer(bot missed)
Skipped (bot conflicts with ETHGlossary): ko hardware-wallet, tr EIP keys, sw statelessness.
- fixes claude reviewer using the wrong endpoint, deprecated in favor of ETHGlossary Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>

Automated Translations
This PR contains translations managed by the intl pipeline.
Each run appends a summary below.
Run: 2026-04-30 21:00:58 UTC
Note:
@claude /review-translationstill finding/using outdated/api/glossary/route despite not being in instructions. PR includes commit to formally deprecate that glossary route in favor of canonical ethglossary path currently here