i18n: intl-pipeline translations (all languages)#18041
Conversation
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Gemini <gemini@google.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
9c9752e to
4e735b3
Compare
myelinated-wackerow
left a comment
There was a problem hiding this comment.
Translation Quality Review (Changes Requested)
PR: #18041
Branch HEAD: 4e735b32
Languages: 24 (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)
Files reviewed: 120 (24 x 5: 2 markdown + 3 JSON each)
Date: 2026-04-27
Fixes: No fixes applied yet (review-only). Pipeline-level followups documented separately.
31 critical issues across 13 of 24 languages, plus a wider set of warnings. The criticals cluster around two pipeline-level patterns plus a few per-language semantic regressions. Detailed per-language findings below; a separate brief documenting the pipeline-side follow-up work has been written to docs/solutions/integration-issues/intl-pipeline-bugs-from-pr-18041-review.md.
Scoring summary
| Language | Files | Quality | Issues |
|---|---|---|---|
| id | 5 | 9.5/10 | 0 critical, 4 warnings |
| ko | 5 | 9.4/10 | 0 critical, 5 warnings |
| pt-br | 5 | 9.4/10 | 1 critical, 4 warnings |
| it | 5 | 9.2/10 | 0 critical, 5 warnings |
| vi | 5 | 9.2/10 | 0 critical, 4 warnings |
| cs | 5 | 9.0/10 | 1 critical, 4 warnings |
| fr | 5 | 9.0/10 | 1 critical, 4 warnings |
| hi | 5 | 9.0/10 | 0 critical, 4 warnings |
| pl | 5 | 9.0/10 | 1 critical, 7 warnings |
| ru | 5 | 9.0/10 | 1 critical, 3 warnings |
| ar | 5 | 8.8/10 | 1 critical, 3 warnings |
| ja | 5 | 8.8/10 | 0 critical, 6 warnings |
| bn | 5 | 8.7/10 | 11 critical, 8 warnings |
| es | 5 | 8.6/10 | 0 critical, 6 warnings |
| zh | 5 | 8.6/10 | 1 critical, 2 warnings |
| sw | 5 | 8.5/10 | 1 critical, 4 warnings |
| ur | 5 | 8.5/10 | 0 critical, 9 warnings |
| de | 5 | 8.4/10 | 0 critical, 5 warnings |
| tr | 5 | 8.4/10 | 0 critical, 4 warnings |
| te | 5 | 8.3/10 | 0 critical, 6 warnings |
| uk | 5 | 8.0/10 | 1 critical, 6 warnings |
| zh-tw | 5 | 7.8/10 | 3 critical, 3 warnings |
| mr | 5 | 7.6/10 | 2 critical, 8 warnings |
| ta | 5 | 7.2/10 | 6 critical, 11 warnings |
Mean overall: 8.7/10 (range 7.2-9.5)
Critical issues by category
1. JSX attribute strings broken at line 168 of roadmap/future-proofing/quantum-resistance/index.md (8 languages)
The English source uses single quotes inside the title attribute (title="What is 'harvest now, decrypt later'?"). Eight languages produced output that breaks MDX parsing.
Inner double-quote pattern (parser terminates the attribute at first inner "):
ar:168--title="ما هو "احصد الآن، وفك التشفير لاحقًا"؟"cs:168--title="Co je "posbírej teď, dešifruj později"?"pl:168--title="Czym jest "zbieraj teraz, odszyfruj później"?"pt-br:168--title="O que é "coletar agora, descriptografar depois"?"zh:168--title="什么是"现在收集,以后解密"?"
Closing-guillemet corruption (» U+00BB replaced by ASCII > U+003E plus the closing " pushed to the next line):
fr:168-169--title="Qu'est-ce que « récolter maintenant, déchiffrer plus tard >newline?"ru:168-169--title="Что такое «собирай сейчас, расшифровывай потом>newline?"uk:168-169--title="Що таке «збирай зараз, розшифровуй потім>newline?"
Both patterns will fail pnpm build for the affected pages. The recent commit 1fda55d6c2 (escape inner quotes in JSX attribute translations) addresses the first pattern at the prompt-engineering layer; the second pattern is a separate corruption mode that needs its own fix. Pipeline followup brief covers both in detail.
2. Non-Western numerals in markdown headings (Bengali, 11 occurrences)
Bengali shipped 11 numbered headings using Bengali digits (০১২৩৪৫৬৭৮৯) where the English source used Western Arabic 0-9. Heading IDs already use ASCII via the project-wide {#lower-kebab-id} convention, so the user-visible heading text should match.
bn/roadmap/future-proofing/quantum-resistance/index.md:
- L39
### ১. কনসেনসাস ...(expected1.) - L55
### ২. ডেটা প্রাপ্যতা ...(expected2.) - L69
### ৩. অ্যাকাউন্ট ...(expected3.) - L81
### ৪. অ্যাপ্লিকেশন-লেয়ার ...(expected4.)
bn/contributing/adding-videos/index.md:
- L39
### বিকল্প ১: ...(expected1:) - L47
### বিকল্প ২: ...(expected2:) - L51
#### ধাপ ১: ...(expected1:) - L61
#### ধাপ ২: ...(expected2:) - L99
#### ধাপ ৩: ...(expected3:) - L124
#### ধাপ ৪: ...(expected4:) - L140
#### ধাপ ৫: ...(expected5:)
Other languages (hi, mr, ta, te, ur, ja, ko, zh, zh-tw) had clean headers. Body-text non-Western digit issues exist in mr (स्तर २ -- glossary-blessed) and ur (لیئر ۲ (l2) x7 -- pipeline-injected) and are documented in the followup brief, not flagged as PR criticals.
3. Marathi single-character regressions (2 occurrences)
mr/roadmap/future-proofing/quantum-resistance/index.md:29-- typoमारर्च(should beमार्च, "March")src/intl/mr/page-app-descriptions.json:52(app-fileverse-dsheets-description) -- the Bengali wordঅনলাইনেis embedded mid-sentence inside otherwise Devanagari Marathi text. Translation-memory leak from a sibling locale. Should be Devanagariऑनलाइन.
4. Tamil semantic regressions (6 critical rows, ~14 entries)
These suggest the JSON-translation prompt has weaker glossary enforcement than the markdown-translation prompt. Markdown files use the correct Tamil terms; JSON files diverge.
src/intl/ta/page-app-descriptions.jsonlines 40, 108, 121, 127, 143, 145, 150 -- "smart contracts" rendered asதிறன் ஒப்பந்தங்கள்("skill contracts") in 7 entries. Same file uses the correctஸ்மார்ட் ஒப்பந்தங்கள்elsewhere; markdown files use the correct form throughout.- "Non-fungible" mistranslated four different ways across multiple files:
page-use-cases.json:31--பூஞ்சையற்ற("without fungus")page-app-descriptions.json:80, 81, 89--பரிமாற்றத்தகாத("non-transferable")page-app-descriptions.json:109, 133--பூஞ்சையற்ற("without fungus")page-learn.json:73--மாற்ற முடியாத டோக்கன்கள்("immutable tokens")
The "skill contracts" pattern is a clean global rename; the four non-fungible variants need a Tamil-fluent reviewer to pick one canonical form before fixing.
5. zh-tw semantic and brand criticals (3 occurrences)
zh-tw/roadmap/future-proofing/quantum-resistance/index.md:146-- "end of this decade" mistranslated as本世紀末("end of this century") -- a ~70-year semantic drift in the quantum-threat timeline. Should be本十年末.src/intl/zh-tw/page-app-descriptions.json:8and:145-- "Uniswap" rendered phonetically as尤尼斯瓦普. Brand names should stay Latin per the global checklist; this is consistent with how other Cyrillic and Indic locales transliterated Uniswap (Юнисвоп, यूनिस्वॅप, 유니스왑) per their per-locale glossaries, so it is a policy-vs-practice tension rather than a clear regression. Flagged for resolution.
6. Swahili FAQ inner consistency (1 occurrence)
sw/roadmap/future-proofing/quantum-resistance/index.md lines 168 and 170 -- the title and body of the same ExpandableCard use two different Swahili renderings of "harvest now, decrypt later" (vuna sasa, fumbua fiche baadaye in title vs Vuna sasa, simbusa baadaye in body). Translator judgment which form to keep.
Per-language detail (collapsibles)
ar (8.8/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9/10 |
| Technical Accuracy | 8/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 9/10 |
Critical: JSX attribute unescaped inner double quotes at quantum-resistance:168. Substantial improvement over PR #17105 baseline (5.2/10). All hrefs, heading IDs, brand names, and key glossary terms align with English sources and ETHGlossary. No semantic inversions, no cross-script contamination, zero non-Western numerals. Warnings: dated MEV "miner-extractable" framing, "Lattice-based" disambiguation, untranslated book title.
bn (8.7/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8.5/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 9/10 |
Critical: 11 numbered headings use Bengali digits (০১২৩৪৫৬৭৮৯) where English uses 0-9. JSX attributes are clean (uses single quotes correctly mirroring English). Warnings: body-text Bengali digits (years, counts), "consensus" inconsistency ঐক্যমত/কনসেনসাস, pipeline-injected (l2) glosses.
cs (9.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 10/10 |
Critical: JSX inner double quotes at quantum-resistance:168 (suggest swapping inner pair to Czech curly quotes „..."). Inconsistent translation of "harvest now, decrypt later" between title (line 168) and body (line 170); "zero-knowledge" split between nulovou znalostí and nulovým vědomím. Otherwise consistent formal vy, brand names preserved, hrefs intact.
de (8.4/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 7/10 |
| Tone/Register | 7/10 |
Zero criticals. Main issue is internal du/Sie register mixing in page-app-descriptions.json (about 8 entries diverge from the file's dominant formal Sie). Minor onchain/Onchain- and Communities/Communitys inconsistencies. Strong glossary alignment, faithful semantic accuracy on the dense quantum-resistance content.
es (8.6/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 7/10 |
Zero criticals. Register split: adding-videos/index.md uses usted while every other es file uses tú. Spelling typo construuyen at page-app-descriptions.json:93. Two adjacent renderings of "harvest now, decrypt later" in quantum-resistance (lines 168/170). Strong glossary compliance.
fr (9.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 9/10 |
Critical: closing guillemet » corrupted to > plus attribute split across lines 168-169 -- breaks MDX. Strong terminology alignment with ETHGlossary, all brand names preserved, JSON key parity perfect, internal hrefs intact, consistent vous-form throughout. Warnings: NBSP missing before : ; ? !, "rollup" left singular in plural contexts.
hi (9.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8.5/10 |
| Technical Accuracy | 9.5/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8.5/10 |
| Tone/Register | 9.5/10 |
Zero criticals. Devanagari digits absent from headers (the bn issue did not propagate). JSX attributes clean. Main warning is एथेरियम/इथेरियम transliteration split for "Ethereum" within quantum-resistance.
id (9.5/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9.5/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 10/10 |
Zero criticals. Highest-quality batch in this PR. Excellent glossary alignment, strong brand handling, faithful semantic accuracy, formal "Anda" maintained throughout. Minor stylistic warnings only.
it (9.2/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9/10 |
| Technical Accuracy | 10/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 10/10 |
Zero criticals. Structurally clean, glossary-aligned, no MDX breakage, no cross-script contamination, consistent informal tu register. Warning: smart contract (JSON) vs contratti intelligenti (markdown FAQ rows) inconsistency.
ja (8.8/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8.5/10 |
| Technical Accuracy | 9.5/10 |
| Semantic Fidelity | 8.5/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 9.5/10 |
Zero criticals. Both priority items completely clean. Warnings: Uniswap -> ユニスワップ outlier (other Latin brands kept); バリデータ (glossary) vs バリデーター (JIS-2008) terminology choice; devnet calque 開発ネット.
ko (9.4/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9/10 |
| Technical Accuracy | 10/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 10/10 |
Zero criticals. Pure 합니다체 register, accurate terminology aligned with ETHGlossary ko, all hrefs preserved, all critical brand/protocol identifiers intact, MDX structure unbroken. Minor Uniswap -> 유니스왑 brand-style inconsistency.
mr (7.6/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8/10 |
| Technical Accuracy | 8/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 6/10 |
| Tone/Register | 8/10 |
Critical: typo मारर्च -> मार्च at quantum-resistance:29; cross-script Bengali word অনলাইনে mid-sentence in page-app-descriptions.json:52. Warnings: विटालिक/व्हिटालिक Vitalik split; एकमत/सहमती consensus split; स्तर २ (l2) glossary-vs-policy tension on Devanagari digit २ for layer 2.
pl (9.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 10/10 |
Critical: JSX inner double quotes at quantum-resistance:168 (suggest Polish low/high quotes „..."). Cross-file niewymienne tokeny vs niewymienialne tokeny for NFT split, both valid Polish. Otherwise strong glossary alignment, consistent informal "Ty", brand names preserved.
pt-br (9.4/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 10/10 |
Critical: JSX inner double quotes at quantum-resistance:168. Strong glossary alignment, consistent você register, brand names preserved, no semantic inversions. Minor warning on bifurcação rígida vs idiomatic loanword hard fork.
ru (9.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 10/10 |
Critical: closing guillemet » corrupted to > plus multi-line attribute at quantum-resistance:168-169. Brand inconsistency: Uniswap -> Юнисвоп while every other brand stays Latin. Otherwise uniformly formal вы register, no Cyrillic-Latin homoglyph contamination, no non-Western digits.
sw (8.5/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8.5/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8.5/10 |
| Terminology Consistency | 7.5/10 |
| Tone/Register | 9/10 |
Critical (translator judgment): "harvest now, decrypt later" rendered two ways within the same FAQ card (title vs body). Warnings: Zero Knowledge podcast translated; stablecoin sarafu dhabiti vs glossary sarafu thabiti; NFT term varies four ways across files.
ta (7.2/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8/10 |
| Technical Accuracy | 7/10 |
| Semantic Fidelity | 6/10 |
| Terminology Consistency | 6.5/10 |
| Tone/Register | 8.5/10 |
6 critical rows covering ~14 entries. "Smart contracts" rendered as "skill contracts" (திறன் ஒப்பந்தங்கள்) in 7 page-app-descriptions entries; "non-fungible" rendered four different ways across files (பூஞ்சையற்ற "without fungus"; பரிமாற்றத்தகாத "non-transferable"; மாற்ற முடியாத "immutable"). Markdown got terms right; JSON did not. Suggests JSON-translation prompt has weaker glossary enforcement than markdown-translation prompt.
te (8.3/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8.5/10 |
| Technical Accuracy | 8.5/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 7.5/10 |
| Tone/Register | 9/10 |
Zero criticals. Telugu digits absent from headings. Main issues are glossary-annotation leaks: (did), (dapp), (amm) parentheticals injected where the English source had none -- a pipeline integration bug. Style inconsistencies on DeSci/ReFi abbreviation handling.
tr (8.4/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 9.5/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 7/10 |
| Tone/Register | 8.5/10 |
Zero criticals. Stablecoin appears as three forms across three JSON files (sabitcoin/sabit coin/Stablecoin); glossary canonical is sabitcoin. Mid-sentence capitalization of common nouns (Blokzincir, Cüzdan, Token) appears systematic.
uk (8.0/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 7/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 7/10 |
| Tone/Register | 9/10 |
Critical: closing guillemet » corrupted to > plus multi-line attribute at quantum-resistance:168-169. Warnings: смарт-контракт orthography drift (Смартконтракти vs hyphenated form); Lighthouse transliterated to Лайтхаус while sibling clients stay Latin; Uniswap/Юнісвоп mixed. No Russian-spelling contamination (Бутерін uses correct Ukrainian і).
ur (8.5/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 8.5/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 8.5/10 |
| Terminology Consistency | 8/10 |
| Tone/Register | 8.5/10 |
Zero criticals. All H1-H4 headings use Western Arabic digits. Body-text pattern لیئر ۲ (l2) x7 across all 5 files uses Eastern Arabic-Indic ۲ and lowercase (l2) -- glossary-driven injection that should be reconsidered at the pipeline layer. Minor لامركزی letter-script issue (Arabic ك instead of Urdu ک) systemic.
vi (9.2/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 10/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 8.5/10 |
| Tone/Register | 9.5/10 |
Zero criticals. No MDX issues, no JSX inner-quote escaping issues, no non-Western digits. Brand-name preservation perfect. Minor terminology drift around rollup phrasing (bản cuộn used; glossary prefers Rollup) and không kiến thức vs không tri thức for zero-knowledge.
zh (8.6/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 7/10 |
| Technical Accuracy | 9/10 |
| Semantic Fidelity | 9/10 |
| Terminology Consistency | 9/10 |
| Tone/Register | 9/10 |
Critical: JSX inner double quotes at quantum-resistance:168 -- ASCII " brackets the phrase 现在收集,以后解密. Suggest Chinese corner brackets 「」. Simplified Chinese throughout (no Traditional contamination), matching heading anchors, sound technical accuracy. Warnings: Uniswap -> 尤尼斯瓦普 phonetic; Lighthouse -> 莱特豪斯 (Lighthouse).
zh-tw (7.8/10)
| Category | Score |
|---|---|
| Brand Name Preservation | 7/10 |
| Technical Accuracy | 8/10 |
| Semantic Fidelity | 8/10 |
| Terminology Consistency | 7/10 |
| Tone/Register | 9/10 |
3 criticals: (1) 本世紀末 ("end of this century") instead of 本十年末 ("end of this decade") at line 146 -- ~70-year semantic drift. (2-3) Uniswap -> 尤尼斯瓦普 at page-app-descriptions.json:8 and :145 -- brand transliteration. Warnings: 智慧合約/智能合約 split across files. JSX clean (uses Chinese 「」 brackets correctly). Traditional script throughout, no Simplified contamination.
Pipeline-level followup
A separate brief at docs/solutions/integration-issues/intl-pipeline-bugs-from-pr-18041-review.md documents seven pipeline-level bugs surfaced by this review and three open policy questions, prioritized for the pipeline owner. Most urgent: the closing-guillemet corruption pattern (fr/ru/uk) is not covered by the existing 1fda55d6c2 patch and remains as a separate failure mode worth its own check.
What this review is asking for
- Address the 31 critical issues across 13 languages (build-impacting items first: 8 JSX line 168 cases plus 11 Bengali heading-digit cases).
- Decide on the open policy questions in the followup brief (body-text digit normalization,
(l2)casing, brand-transliteration policy, book/podcast title handling). - Tamil non-fungible entries need a Tamil-fluent reviewer to choose one canonical form before fixing.
Reviewed by Claude Code (22 Opus + 2 Sonnet agents)
Pipeline-level findings from the 24-language review of PR #18041: seven bugs (JSX guillemet corruption, inner-quote escaping, header digit normalization, cross-script contamination, glossary parenthetical injection, Layer-2 gloss, Tamil JSON term regressions) plus three open policy questions for the pipeline owner. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
JSX line 168 (8 langs): inner-quote and guillemet-corruption fixes Bengali headers: 11 numerals normalized to Western Arabic 0-9 Marathi: typo fix and Bengali cross-script word Tamil: 7x "skill contracts" -> "smart contracts" zh-tw: "end of this decade" -> 本十年末 (was 本世紀末) 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.
Translation Quality Review (Approved)
PR: #18041
Branch HEAD: ea979195bf
Languages: 24
Files reviewed: 120
Date: 2026-04-27
Fixes: Critical fixes applied: 29 across 14 files. Pipeline followups: see docs/solutions/integration-issues/intl-pipeline-bugs-from-pr-18041-review.md.
| Language | Quality | Issues |
|---|---|---|
| id | 9.5/10 | 0 critical, 4 warnings |
| ko | 9.4/10 | 0 critical, 5 warnings |
| pt-br | 9.4/10 | 0 critical (was 1, fixed), 4 warnings |
| it | 9.2/10 | 0 critical, 5 warnings |
| vi | 9.2/10 | 0 critical, 4 warnings |
| cs | 9.0/10 | 0 critical (was 1, fixed), 4 warnings |
| fr | 9.0/10 | 0 critical (was 1, fixed), 4 warnings |
| hi | 9.0/10 | 0 critical, 4 warnings |
| pl | 9.0/10 | 0 critical (was 1, fixed), 7 warnings |
| ru | 9.0/10 | 0 critical (was 1, fixed), 3 warnings |
| ar | 8.8/10 | 0 critical (was 1, fixed), 3 warnings |
| ja | 8.8/10 | 0 critical, 6 warnings |
| bn | 8.7/10 | 0 critical (was 11, fixed), 8 warnings |
| es | 8.6/10 | 0 critical, 6 warnings |
| zh | 8.6/10 | 0 critical (was 1, fixed), 2 warnings |
| sw | 8.5/10 | 1 deferred (translator judgment), 4 warnings |
| ur | 8.5/10 | 0 critical, 9 warnings |
| de | 8.4/10 | 0 critical, 5 warnings |
| tr | 8.4/10 | 0 critical, 4 warnings |
| te | 8.3/10 | 0 critical, 6 warnings |
| uk | 8.0/10 | 0 critical (was 1, fixed), 6 warnings |
| zh-tw | 7.8/10 | 2 deferred (Uniswap brand transliteration policy), 1 fixed (decade/century), 3 warnings |
| mr | 7.6/10 | 0 critical (was 2, fixed), 8 warnings |
| ta | 7.2/10 | 4 deferred (non-fungible variants need Tamil-fluent reviewer), 1 fixed (skill -> smart contracts), 11 warnings |
Mean overall: 8.7/10 (range 7.2-9.5)
Items intentionally deferred (need human/native review, not build-blocking)
swharvest-now title/body inconsistency at quantum-resistance:168/170 (translator judgment)ta"non-fungible" rendered four different ways across multiple JSON files (பூஞ்சையற்ற/பரிமாற்றத்தகாத/மாற்ற முடியாத) -- needs canonical form chosenzh-twUniswap->尤尼斯瓦普x2 in page-app-descriptions.json -- consistent with Cyrillic and Indic locales' transliteration patterns; flagged as policy question in followup brief
All build-impacting criticals (8 JSX line 168 cases, 11 Bengali heading digits, 1 zh-tw decade/century semantic error, 1 mr typo, 1 mr cross-script contamination, 7 ta skill-contracts) have been fixed and pushed.
Reviewed by Claude Code (22 Opus + 2 Sonnet agents)

Automated Translations
This PR contains translations managed by the intl pipeline.
Each run appends a summary below.
Run: 2026-04-24 21:58:36 UTC
Run: 2026-04-27 01:19:51 UTC
Run: 2026-04-27 16:21:21 UTC
Run: 2026-04-27 20:55:15 UTC
Run: 2026-04-27 21:02:15 UTC