i18n: Gemini translations (ur)#17854
Conversation
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
🌐 Translation review started. View progress |
Translation Quality ReviewPR: #17854 Summary by Language
Quality Scores: ur (Urdu) — 7.8/10Scores by Batch
Aggregate Quality Scores
Overall: 7.8/10 (weighted average across batches) Critical Issues (17 total)1.
|
| File | Current | Expected |
|---|---|---|
about/index.md |
lang: en |
lang: ur |
ai-agents/index.md |
lang: en |
lang: ur |
contributing/translation-program/translators-guide/index.md |
lang: en |
lang: ur |
contributing/translation-program/how-to-translate/index.md |
lang: en |
lang: ur |
contributing/translation-program/playbook/index.md |
lang: en |
lang: ur |
contributing/content-resources/index.md |
lang: en |
lang: ur |
glossary/index.md |
lang: en |
lang: ur |
energy-consumption/index.md |
lang: en |
lang: ur |
roadmap/statelessness/index.md |
lang: en |
lang: ur |
roadmap/verkle-trees/index.md |
lang: en |
lang: ur |
whitepaper/index.md |
lang: en |
lang: ur |
roadmap/pectra/7702/index.md |
lang: en |
lang: ur |
roadmap/secret-leader-election/index.md |
lang: en |
lang: ur |
roadmap/single-slot-finality/index.md |
lang: en |
lang: ur |
roadmap/fusaka/index.md |
lang: en |
lang: ur |
privacy/index.md |
lang: en |
lang: ur |
payments/index.md |
lang: en |
lang: ur |
gasless/index.md (tutorial) |
lang: en |
lang: ur |
hello-world-smart-contract/index.md (tutorial) |
lang: en |
lang: ur |
interact-with-other-contracts-from-solidity/index.md (tutorial) |
lang: en |
lang: ur |
secure-development-workflow/index.md (tutorial) |
lang: en |
lang: ur |
stealth-addr/index.md (tutorial) |
lang: en |
lang: ur |
2. Cross-Script Contamination
| File | Line | Issue | Current | Expected |
|---|---|---|---|---|
developers/docs/standards/tokens/erc-1363/index.md |
191 | CJK ideographic full stop (U+3002) | CJK period | Urdu full stop |
glossary-tooltip.json |
165 | CJK period in zk-proof-definition | CJK period | Urdu full stop |
3. Brand Name / Source Field Issues
| File | Issue | Current | Expected |
|---|---|---|---|
page-bug-bounty.json |
"GitHub" transliterated to Urdu script | Urdu transliteration | GitHub (Latin) |
developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md |
source field translated |
Urdu transliteration | source: Snakecharmers |
developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md |
source field translated |
Urdu translation | source: Building secure contracts |
4. Terminology Issues
| File | Issue | Current | Expected |
|---|---|---|---|
developers/docs/storage/index.md |
"validator" inconsistent | Semantic translation form | Phonetic transliteration (matches rest of codebase) |
staking/withdrawals/index.md |
Non-standard "decentralized" | Non-standard form | Standard transliteration used elsewhere |
developers/tutorials/ai-trading-agent/index.md |
Tags translated that should stay English | Urdu tags | "AI", "trading", "agent" |
5. Untranslated Content
| File | Issue |
|---|---|
page-trillion-dollar-security.json |
Lorem ipsum placeholder text retained |
Warnings (Should Review)
Terminology Inconsistency (click to expand)
"Ethereum" transliteration split:
- Longer form with extra ya character (majority, ~1356 occurrences across ~60% of files)
- Shorter form (minority, ~547 occurrences across ~40% of files)
- Both phonetically valid; should standardize.
"Smart contract" three-way split:
- Three different transliteration variants (~100, ~116, ~47 occurrences)
- Should standardize to one form.
"wallet" inconsistency:
- Transliteration form (dominant, ~213 occurrences)
- Native Urdu word (4 occurrences in page-staking.json)
"consensus" inconsistency:
- Transliteration (dominant, ~84 occurrences)
- Native Urdu phrase (1 occurrence)
Tag Translation Inconsistency (click to expand)
Tag translation policy applied unevenly across tutorial files:
- Some files translate concept tags to Urdu, others keep English
- Per project guidelines, concept tags MAY be translated, but consistency within the batch would improve quality
Other Warnings (click to expand)
| File | Issue | Details |
|---|---|---|
how-to-mock-solidity-contracts-for-testing/index.md |
English pun taken literally | "mock" translated as "making fun of" instead of mock testing |
staking/solo/index.md |
Mixed Latin/Nastaliq "Ethereum" | summaryPoints vs body text inconsistent |
erc-1363/index.md |
Code comment formatting | Comment end marker on same line as translated text |
Key Findings
Strengths:
- Strong semantic accuracy — no PoS/PoW inversions, no "state" polysemy errors
- Technical terms (MEV, validator, client, gas, block) correctly translated
- No broken MDX syntax, no translated internal hrefs
- Minimal cross-script contamination (2 CJK periods only)
- Appropriate formal register throughout
- Code blocks properly preserved in English
Areas for Improvement:
- Systematic
lang: enfrontmatter issue (~26 files) — most impactful - Terminology standardization needed (Ethereum, smart contract, wallet)
- Tag translation policy needs consistency
- A few
sourcefields incorrectly translated
Reviewed by Claude Code — Translation Review Pipeline
To apply fixes, reply with:
@claude /review-translations --fix
Add fixFrontmatterLang() as a deterministic backup that forces the frontmatter `lang` field to match the locale derived from the file path (public/content/translations/LANG_CODE/**/*.md). - 10 unit tests covering edge cases - Exported via _testOnly for testing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Run post-import sanitizer on 249 Urdu markdown files: - 26 lang fields fixed from en to ur - Frontmatter values quoted for YAML safety - Block component line breaks normalized - Guillemets and blank lines restored Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
# Conflicts: # tests/unit/sanitizer/standalone-fixes.spec.ts
The sanitizer detected cross-script contamination but only warned. CJK full stop U+3002 was also outside the detection range. Add fixCrossScriptPunctuation() with locale-aware replacement, wired for both MD and JSON pipelines. - ar/ur: U+06D4, hi/mr/bn: U+0964, Latin/Cyrillic: period - CJK locales: no-op - 11 tests, bug documentation added Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
- Fix CJK full stops (U+3002) in erc-1363 and glossary-tooltip - Fix broken link in dao/index.md - Restore canonical English code blocks with translated comments for web3-secret-storage, hello-world-smart-contract-fullstack, how-to-use-echidna, how-to-use-manticore, learn-foundational- ethereum-topics-with-sql, secret-state Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
i18n: re-translations for select Urdu files (ur)
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Use `list-style-type: urdu;` with `persian` fallback for Urdu pages marked with `html[lang=ur]` per Gemini language best-practice guidelines
myelinated-wackerow
left a comment
There was a problem hiding this comment.
Translation Quality Review
PR: #17854
Language: ur (Urdu)
Files reviewed: 300 (250 markdown + 50 JSON)
Date: 2026-03-25
| Language | Files | Quality Score | Critical Fixed | Warnings |
|---|---|---|---|---|
| ur | 300 | 8.4/10 | 8 categories | 4 |
Detailed Scores: ur (8.4/10)
| Category | Score | Notes |
|---|---|---|
| Brand Name Preservation | 9/10 | Brand tags Latin, concept tags correctly in Urdu per RTL policy. Ticker symbols, Wei/Gwei, source fields all preserved. |
| Technical Accuracy | 9/10 | No PoS/PoW inversions. Gas, client, validator all correct. No semantic inversions. |
| Semantic Fidelity | 9/10 | Faithful translations across all content areas. No hallucinated or missing content. |
| Terminology Consistency | 5/10 | "smart contract" has 4 variants, "Ethereum" has 2 transliterations. No Urdu glossary exists to standardize against -- this is a known gap, not a translation failure. |
| Tone/Register | 9/10 | Consistently formal Urdu. Natural Nastaliq prose throughout. |
| Code Block Integrity | 8/10 | All code blocks verified against canonical English source. Code comments translated to Urdu. |
| Structural Fidelity | 9/10 | Internal hrefs match English. JSON structurally perfect. 3 minor block count mismatches (cosmetic). |
| Cross-Script Contamination | 10/10 | 2 CJK full stops found and fixed. No other contamination. |
Overall: 8.4/10
Issues Found & Fixed
| Issue | Scope | Resolution |
|---|---|---|
lang: en instead of lang: ur in frontmatter |
26 files | Auto-fixed by sanitizer |
| CJK full stops (U+3002) in Urdu text | 2 files | Fixed; sanitizer updated to catch automatically |
| Broken internal link in dao/index.md | 1 file | Fixed |
| Code blocks with wrong language tags or modified content | 55 files, 473 blocks | Restored from canonical English, comments re-translated |
| Frontmatter quoting, brand tags, guillemets | 13 files | Auto-fixed by sanitizer |
Remaining Warnings (non-blocking)
- Terminology inconsistency: No community Urdu glossary exists yet. Multiple transliteration variants for key terms (smart contract, Ethereum, consensus). Will resolve when glossary is established.
- Lorem ipsum in page-trillion-dollar-security.json: Present in English source -- not a translation issue.
- 3 minor block count mismatches: Extra blank lines in component blocks (cosmetic).
- ~20 "possibly untranslated" paragraphs: All are reference/bibliography lists containing English titles and URLs within Urdu prose. Not actually untranslated.
Recommendation: Approve
The translation quality is strong across all dimensions. The terminology consistency gap is systemic (absent Urdu glossary) and not addressable within this PR. Code block integrity has been fully verified and restored.
Reviewed by Claude Opus 4.6 -- Translation Review Pipeline
Two new sanitizer rules: - fixSpanWrappedBackticks: removes redundant <span dir="ltr"> around backtick inline code (breaks MDX rendering) - fixBoldWrappedOrderedListNumerals: Urdu-only, moves bold markers off ordered list numerals so CSS can render them in Nastaliq numeral script Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
- 80 redundant <span dir="ltr"> wrappers removed from backtick inline code across 17 files - 14 bold markers moved off ordered list numerals in 3 files for correct Urdu numeral rendering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Additional fixes pushed
Reviewed by Claude Opus 4.6 |
The regex for pattern 2 (`backtick wrapping span`) used [^`<] which missed content containing < characters (e.g. math expressions like 2 <= k <= 7). Broadened to [\s\S]+? and added 3 tests for the pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
3 files had backticks wrapping <span dir="ltr">, making the HTML tags render as visible code text. Removed the redundant spans, keeping backtick inline code intact. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
# Conflicts: # src/scripts/i18n/post_import_sanitize.ts # tests/unit/sanitizer/standalone-fixes.spec.ts
|
🔥 much better |
|
Noting for follow up: |

Description
This PR contains automated Gemini translations via Gemini.
🔗 View workflow run
Languages translated
ur
JSON changes (
src/intl/{locale}/)Markdown changes (
public/content/translations/{locale}/)