Skip to content

i18n: automated Crowdin translation import (vi)#17176

Merged
wackerow merged 23 commits into
devfrom
i18n/import/2026-01-27T15-06-08-vi
Feb 28, 2026
Merged

i18n: automated Crowdin translation import (vi)#17176
wackerow merged 23 commits into
devfrom
i18n/import/2026-01-27T15-06-08-vi

Conversation

@wackerow
Copy link
Copy Markdown
Member

Description

This PR contains automated gemini-2.5-pro translations from Crowdin.

🔗 View workflow run

Languages translated

vi

JSON changes (src/intl/{locale}/)

  • common.json
  • glossary-tooltip.json
  • glossary.json
  • learn-quizzes.json
  • page-10-year-anniversary.json
  • page-about.json
  • page-apps.json
  • page-assets.json
  • page-bug-bounty.json
  • page-collectibles.json
  • page-community-events.json
  • page-community.json
  • page-contributing-translation-program-acknowledgements.json
  • page-contributing-translation-program-contributors.json
  • page-developers-docs.json
  • page-developers-index.json
  • page-developers-learning-tools.json
  • page-developers-local-environment.json
  • page-developers-tutorials.json
  • page-energy-consumption.json
  • page-ethereum-history-founder-and-ownership.json
  • page-ethereum-vs-bitcoin.json
  • page-founders.json
  • page-gas.json
  • page-get-eth.json
  • page-history.json
  • page-index.json
  • page-layer-2-learn.json
  • page-layer-2-networks.json
  • page-layer-2.json
  • page-learn.json
  • page-resources.json
  • page-roadmap-vision.json
  • page-roadmap.json
  • page-run-a-node.json
  • page-stablecoins.json
  • page-staking-deposit-contract.json
  • page-staking.json
  • page-start.json
  • page-trillion-dollar-security.json
  • page-upgrades-get-involved.json
  • page-upgrades-index.json
  • page-upgrades.json
  • page-wallets-find-wallet.json
  • page-wallets.json
  • page-what-is-ether.json
  • page-what-is-ethereum.json
  • page-what-is-the-ethereum-network.json
  • table.json
  • template-usecase.json

Markdown changes (public/content/translations/{locale}/)

  • about/index.md
  • ai-agents/index.md
  • bridges/index.md
  • community/code-of-conduct/index.md
  • community/events/organizing/index.md
  • community/get-involved/index.md
  • community/grants/index.md
  • community/language-resources/index.md
  • community/online/index.md
  • community/research/index.md
  • community/support/index.md
  • contributing/adding-desci-projects/index.md
  • contributing/adding-developer-tools/index.md
  • contributing/adding-exchanges/index.md
  • contributing/adding-glossary-terms/index.md
  • contributing/adding-layer-2s/index.md
  • contributing/adding-products/index.md
  • contributing/adding-resources/index.md
  • contributing/adding-staking-products/index.md
  • contributing/adding-wallets/index.md
  • contributing/content-resources/index.md
  • contributing/design-principles/index.md
  • contributing/design/adding-design-resources/index.md
  • contributing/design/index.md
  • contributing/index.md
  • contributing/quizzes/index.md
  • contributing/translation-program/faq/index.md
  • contributing/translation-program/how-to-translate/index.md
  • contributing/translation-program/index.md
  • contributing/translation-program/mission-and-vision/index.md
  • contributing/translation-program/playbook/index.md
  • contributing/translation-program/resources/index.md
  • contributing/translation-program/translatathon/details/index.md
  • contributing/translation-program/translatathon/index.md
  • contributing/translation-program/translators-guide/index.md
  • dao/index.md
  • decentralized-identity/index.md
  • defi/index.md
  • desci/index.md
  • developers/docs/accounts/index.md
  • developers/docs/apis/backend/index.md
  • developers/docs/apis/javascript/index.md
  • developers/docs/apis/json-rpc/index.md
  • developers/docs/blocks/index.md
  • developers/docs/bridges/index.md
  • developers/docs/consensus-mechanisms/index.md
  • developers/docs/consensus-mechanisms/poa/index.md
  • developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md
  • developers/docs/consensus-mechanisms/pos/attestations/index.md
  • developers/docs/consensus-mechanisms/pos/block-proposal/index.md
  • developers/docs/consensus-mechanisms/pos/faqs/index.md
  • developers/docs/consensus-mechanisms/pos/gasper/index.md
  • developers/docs/consensus-mechanisms/pos/index.md
  • developers/docs/consensus-mechanisms/pos/keys/index.md
  • developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md
  • developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md
  • developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md
  • developers/docs/consensus-mechanisms/pos/withdrawal-credentials/index.md
  • developers/docs/consensus-mechanisms/pow/index.md
  • developers/docs/consensus-mechanisms/pow/mining/index.md
  • developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md
  • developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md
  • developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md
  • developers/docs/dapps/index.md
  • developers/docs/data-and-analytics/block-explorers/index.md
  • developers/docs/data-and-analytics/index.md
  • developers/docs/data-availability/blockchain-data-storage-strategies/index.md
  • developers/docs/data-availability/index.md
  • developers/docs/data-structures-and-encoding/index.md
  • developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md
  • developers/docs/data-structures-and-encoding/rlp/index.md
  • developers/docs/data-structures-and-encoding/ssz/index.md
  • developers/docs/data-structures-and-encoding/web3-secret-storage/index.md
  • developers/docs/design-and-ux/dex-design-best-practice/index.md
  • developers/docs/design-and-ux/heuristics-for-web3/index.md
  • developers/docs/design-and-ux/index.md
  • developers/docs/development-networks/index.md
  • developers/docs/ethereum-stack/index.md
  • developers/docs/evm/index.md
  • developers/docs/evm/opcodes/index.md
  • developers/docs/frameworks/index.md
  • developers/docs/gas/index.md
  • developers/docs/ides/index.md
  • developers/docs/index.md
  • developers/docs/intro-to-ether/index.md
  • developers/docs/intro-to-ethereum/index.md
  • developers/docs/mev/index.md
  • developers/docs/networking-layer/index.md
  • developers/docs/networking-layer/network-addresses/index.md
  • developers/docs/networking-layer/portal-network/index.md
  • developers/docs/networks/index.md
  • developers/docs/nodes-and-clients/archive-nodes/index.md
  • developers/docs/nodes-and-clients/bootnodes/index.md
  • developers/docs/nodes-and-clients/client-diversity/index.md
  • developers/docs/nodes-and-clients/index.md
  • developers/docs/nodes-and-clients/light-clients/index.md
  • developers/docs/nodes-and-clients/node-architecture/index.md
  • developers/docs/nodes-and-clients/nodes-as-a-service/index.md
  • developers/docs/nodes-and-clients/run-a-node/index.md
  • developers/docs/oracles/index.md
  • developers/docs/programming-languages/dart/index.md
  • developers/docs/programming-languages/delphi/index.md
  • developers/docs/programming-languages/dot-net/index.md
  • developers/docs/programming-languages/elixir/index.md
  • developers/docs/programming-languages/golang/index.md
  • developers/docs/programming-languages/index.md
  • developers/docs/programming-languages/java/index.md
  • developers/docs/programming-languages/javascript/index.md
  • developers/docs/programming-languages/python/index.md
  • developers/docs/programming-languages/ruby/index.md
  • developers/docs/programming-languages/rust/index.md
  • developers/docs/scaling/index.md
  • developers/docs/scaling/optimistic-rollups/index.md
  • developers/docs/scaling/plasma/index.md
  • developers/docs/scaling/sidechains/index.md
  • developers/docs/scaling/state-channels/index.md
  • developers/docs/scaling/validium/index.md
  • developers/docs/scaling/zk-rollups/index.md
  • developers/docs/smart-contracts/anatomy/index.md
  • developers/docs/smart-contracts/compiling/index.md
  • developers/docs/smart-contracts/composability/index.md
  • developers/docs/smart-contracts/deploying/index.md
  • developers/docs/smart-contracts/formal-verification/index.md
  • developers/docs/smart-contracts/index.md
  • developers/docs/smart-contracts/languages/index.md
  • developers/docs/smart-contracts/libraries/index.md
  • developers/docs/smart-contracts/naming/index.md
  • developers/docs/smart-contracts/security/index.md
  • developers/docs/smart-contracts/testing/index.md
  • developers/docs/smart-contracts/upgrading/index.md
  • developers/docs/smart-contracts/verifying/index.md
  • developers/docs/standards/index.md
  • developers/docs/standards/tokens/erc-1155/index.md
  • developers/docs/standards/tokens/erc-1363/index.md
  • developers/docs/standards/tokens/erc-20/index.md
  • developers/docs/standards/tokens/erc-223/index.md
  • developers/docs/standards/tokens/erc-4626/index.md
  • developers/docs/standards/tokens/erc-721/index.md
  • developers/docs/standards/tokens/erc-777/index.md
  • developers/docs/standards/tokens/index.md
  • developers/docs/storage/index.md
  • developers/docs/transactions/index.md
  • developers/docs/web2-vs-web3/index.md
  • developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md
  • developers/tutorials/all-you-can-cache/index.md
  • developers/tutorials/app-plasma/index.md
  • developers/tutorials/calling-a-smart-contract-from-javascript/index.md
  • developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md
  • developers/tutorials/deploying-your-first-smart-contract/index.md
  • developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md
  • developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md
  • developers/tutorials/eip-1271-smart-contract-signatures/index.md
  • developers/tutorials/erc-721-vyper-annotated-code/index.md
  • developers/tutorials/erc20-annotated-code/index.md
  • developers/tutorials/erc20-with-safety-rails/index.md
  • developers/tutorials/ethereum-for-web2-auth/index.md
  • developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md
  • developers/tutorials/guide-to-smart-contract-security-tools/index.md
  • developers/tutorials/hello-world-smart-contract-fullstack/index.md
  • developers/tutorials/hello-world-smart-contract/index.md
  • developers/tutorials/how-to-implement-an-erc721-market/index.md
  • developers/tutorials/how-to-mint-an-nft/index.md
  • developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md
  • developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md
  • developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md
  • developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md
  • developers/tutorials/how-to-use-tellor-as-your-oracle/index.md
  • developers/tutorials/how-to-view-nft-in-metamask/index.md
  • developers/tutorials/how-to-write-and-deploy-an-nft/index.md
  • developers/tutorials/interact-with-other-contracts-from-solidity/index.md
  • developers/tutorials/ipfs-decentralized-ui/index.md
  • developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md
  • developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md
  • developers/tutorials/logging-events-smart-contracts/index.md
  • developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md
  • developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md
  • developers/tutorials/nft-minter/index.md
  • developers/tutorials/optimism-std-bridge-annotated-code/index.md
  • developers/tutorials/reverse-engineering-a-contract/index.md
  • developers/tutorials/run-node-raspberry-pi/index.md
  • developers/tutorials/scam-token-tricks/index.md
  • developers/tutorials/secret-state/index.md
  • developers/tutorials/secure-development-workflow/index.md
  • developers/tutorials/send-token-ethersjs/index.md
  • developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md
  • developers/tutorials/server-components/index.md
  • developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md
  • developers/tutorials/short-abi/index.md
  • developers/tutorials/smart-contract-security-guidelines/index.md
  • developers/tutorials/stealth-addr/index.md
  • developers/tutorials/the-graph-fixing-web3-data-querying/index.md
  • developers/tutorials/token-integration-checklist/index.md
  • developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md
  • developers/tutorials/understand-the-erc-20-token-smart-contract/index.md
  • developers/tutorials/uniswap-v2-annotated-code/index.md
  • developers/tutorials/using-websockets/index.md
  • developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md
  • developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md
  • developers/tutorials/waffle-test-simple-smart-contract/index.md
  • developers/tutorials/yellow-paper-evm/index.md
  • eips/index.md
  • energy-consumption/index.md
  • eth/supply/index.md
  • ethereum-forks/index.md
  • foundation/index.md
  • gaming/index.md
  • glossary/index.md
  • governance/index.md
  • guides/how-to-create-an-ethereum-account/index.md
  • guides/how-to-id-scam-tokens/index.md
  • guides/how-to-revoke-token-access/index.md
  • guides/how-to-swap-tokens/index.md
  • guides/how-to-use-a-bridge/index.md
  • guides/how-to-use-a-wallet/index.md
  • guides/index.md
  • nft/index.md
  • payments/index.md
  • prediction-markets/index.md
  • privacy/index.md
  • real-world-assets/index.md
  • refi/index.md
  • restaking/index.md
  • roadmap/account-abstraction/index.md
  • roadmap/beacon-chain/index.md
  • roadmap/danksharding/index.md
  • roadmap/dencun/index.md
  • roadmap/fusaka/index.md
  • roadmap/fusaka/peerdas/index.md
  • roadmap/future-proofing/index.md
  • roadmap/merge/index.md
  • roadmap/merge/issuance/index.md
  • roadmap/pbs/index.md
  • roadmap/pectra/7702/index.md
  • roadmap/pectra/index.md
  • roadmap/pectra/maxeb/index.md
  • roadmap/scaling/index.md
  • roadmap/secret-leader-election/index.md
  • roadmap/security/index.md
  • roadmap/single-slot-finality/index.md
  • roadmap/statelessness/index.md
  • roadmap/user-experience/index.md
  • roadmap/verkle-trees/index.md
  • security/index.md
  • smart-contracts/index.md
  • social-networks/index.md
  • staking/dvt/index.md
  • staking/pools/index.md
  • staking/saas/index.md
  • staking/solo/index.md
  • staking/withdrawals/index.md
  • web3/index.md
  • what-are-apps/index.md
  • whitepaper/index.md
  • wrapped-eth/index.md
  • zero-knowledge-proofs/index.md

@netlify
Copy link
Copy Markdown

netlify Bot commented Jan 27, 2026

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit 2f7bfa4
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/69a236adfa78ca0008eea4e1
😎 Deploy Preview https://deploy-preview-17176.ethereum.it
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
7 paths audited
Performance: 58 (🔴 down 2 from production)
Accessibility: 94 (🟢 up 1 from production)
Best Practices: 100 (no change from production)
SEO: 99 (no change from production)
PWA: 59 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions Bot added content 🖋️ This involves copy additions or edits translation 🌍 This is related to our Translation Program labels Jan 27, 2026
@minimalsm minimalsm force-pushed the i18n/import/2026-01-27T15-06-08-vi branch from afc2754 to 1060490 Compare February 13, 2026 12:39
# Conflicts:
#	src/intl/vi/page-developers-learning-tools.json
#	src/intl/vi/page-developers-local-environment.json
@wackerow
Copy link
Copy Markdown
Member Author

🌐 Translation Quality Review — Vietnamese (vi)

Files reviewed: 301
Date: 2026-02-17

Category Score Notes
Brand Name Preservation 9/10 Consistently strong. Minor "Etherum"/"Etherem" typos.
Technical Accuracy 7/10 EVM mistranslated as "Virtual Server" (19 occurrences). "The Merge" → "The Mere". "Staking" → "Skating".
Semantic Fidelity 7/10 "Autonomous" → "Anonymous" (DAO). "More decentralized" → "more centralized" (roadmap). Genesis date wrong.
Terminology Consistency 6/10 "Staking" has 5+ translations. "Beacon Chain" has 4+ variants. "Zero-knowledge proofs" has 4+ translations.
Tone/Register 8/10 Consistently formal Vietnamese. Appropriate for educational content.

Overall: 7.2/10

Critical Issues Found (37 total)

🔴 Semantic Errors (must fix)
File Issue Current Expected
vi/dao/index.md "Autonomous" → "Anonymous" Tổ chức ẩn danh phi tập trung Tổ chức tự trị phi tập trung
page-roadmap-vision.json "More decentralized" → "more centralized" tập trung hơn phi tập trung hơn
page-10-year-anniversary.json Genesis date wrong (July 3 vs July 30) ngày 3 tháng 7 ngày 30 tháng 7
page-developers-docs.json "Proof of Stake" labeled "Proof of Authority" Bằng chứng ủy quyền (Pos) Bằng chứng cổ phần (PoS)
page-trillion-dollar-security.json Key-value misalignment + untranslated text Fix alignment
Multiple files (19 occurrences) EVM = "Virtual Server" not "Virtual Machine" Máy chủ ảo Máy ảo
🟡 Broken Content (must fix)
File Issue
vi/defi/index.md Garbled description: EthereumTổng quan về...
vi/ai-agents/index.md toId translated to Vietnamese (breaks navigation)
page-what-is-ethereum.json Broken HTML: <strong>web3<</strong>
page-collectibles.json Missing </strong> closing tag
vi/roadmap/merge/index.md "The Merge" → "The Mere"; missing letters
vi/roadmap/beacon-chain/index.md "Staking" → "Skating"
📊 High-Density Problem Files
  1. vi/community/events/organizing/index.md — 10+ typos
  2. page-10-year-anniversary.json — 8+ typos, date error
  3. vi/roadmap/merge/index.md — Multiple typos, doubled phrases
  4. vi/roadmap/beacon-chain/index.md — Multiple typos
  5. vi/roadmap/fusaka/index.md — 6+ typos
  6. vi/roadmap/verkle-trees/index.md — 3+ garbled words
  7. page-roadmap.json — "Ethereum" → "Etherum" ×3

Reviewed by Claude Code

wackerow and others added 2 commits February 17, 2026 13:24
Fix 60 translation issues across 26 Vietnamese (vi) files including:
- EVM terminology: "Máy chủ ảo" → "Máy ảo" (virtual machine, not virtual server) across 14 files
- DAO term: "ẩn danh" → "tự trị" (autonomous, not anonymous)
- Ethereum genesis date: July 3 → July 30, 2015
- Semantic inversion: "tập trung hơn" → "phi tập trung hơn"
- Energy reduction stat: ~95.95% → ~99.95%
- Brand name typos: "Etherum", "Etherem" → "Ethereum"
- Technical typos: "Skating" → "Staking", "shardign" → "sharding", "tollups" → "rollups"
- Glossary consistency: "nốt" → "nút" (node), per vi-glossary-terms.json
- Broken HTML, stray escape characters, key-value misalignments

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix MDX compilation errors that broke the build for vi locale:
- creating-a-wagmi-ui-for-your-contract: misplaced backtick in JSX fragment example
- erc-721-vyper-annotated-code: double backtick causing <tên> to parse as JSX
- erc20-annotated-code: raw < in **<0.8.0** → **&lt;0.8.0** to match English source
- short-abi: missing closing backtick on opcode syntax line
- ethereum-forks: bare <CHAINID> → <code>CHAINID</code>, added missing <em> tags on 4 list items
- restaking: removed duplicate </a> closing tag
- zero-knowledge-proofs: fixed <AlertTitle> content indentation structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the full review and fix process for Crowdin Vietnamese import (PR #17176):
- Review methodology (5 parallel agents, quality scoring)
- 37 critical issues found and resolved (EVM terminology, DAO, semantic inversions)
- 7 MDX syntax errors diagnosed and fixed
- Key pitfalls (cascading MDX errors, VPS/EVM ambiguity, context limits)
- Prevention recommendations for future imports
- Community glossary reference table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions Bot added the documentation 📖 Change or add documentation label Feb 17, 2026
wackerow and others added 7 commits February 17, 2026 18:38
…ions

Fix 13 link issues across 4 JSON translation files where hrefs were
either replaced with Crowdin numbered placeholders, pointed to wrong
glossary targets, completely removed, or had malformed nested anchor tags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the investigation methodology, root cause analysis, and
prevention strategies for Crowdin translation href corruption.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Gemini <gemini@google.com>
Co-authored-by: Gemini Pro <gemini@google.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wackerow
Copy link
Copy Markdown
Member Author

🌐 Translation Quality Re-Review: Vietnamese (vi)

Reviewed by: Claude Code (Opus)
Date: 2026-02-19
Scope: 12 JSON namespace files + 7 markdown content files (modified files only)

Score Improvement

Category Before Fixes After Fixes
Brand Name Preservation 8.0 9.3
Technical Accuracy 5.5 8.0
Semantic Fidelity 6.5 8.3
Terminology Consistency 4.0 6.5
Tone/Register 7.0 7.8
Overall 6.2 8.0

Critical Issues (13/13 Resolved)

All 13 critical issues from the initial review are confirmed fixed:

# Issue Status
1 Offensive mistranslation in security/index.md
2 Wrong content in staking benefits description
3 "Devcon" brand name translated
4 "Ethereum Foundation" translated (3 locations)
5 "Gas" as "khí đốt" (natural gas)
6 Broken HTML in subscribe link
7 "stacking" typo (3 instances)
8 "Token" as "mã thông báo" in NFT title
9 "maiden name" mistranslation
10 Corrupted/garbled text (4 instances)
11 Untranslated "Centralized" in web3
12 Inconsistent whitepaper title
13 Duplicate EIP-4895 prefix

Remaining Issues (~22)

Mostly pre-existing Vietnamese diacritical typos not caught in earlier passes:

📋 JSON: ~14 diacritical typos
File Current Expected
page-staking.json quyển (book) quyền (right)
page-staking.json đặc cọc đặt cọc
page-staking.json đồg thuận (×2) đồng thuận
page-staking.json địa chủ (landlord) địa chỉ (address)
page-learn.json Tìm hiểm Tìm hiểu
common.json đội nghĩa đội ngũ
page-collectibles.json cái thiển, sư, Quà dàng cải thiện, sự, Quà tặng
page-apps.json nghĩa là nên, dan sách nghĩ là nên, danh sách
page-upgrades-index.json nâng gấp, cổ phẩn nâng cấp, cổ phần
📋 Markdown: ~8 issues
File Issue
security/index.md:139 NEW garbled "mã thông cao báo" → should be "token"
security/index.md:185 "mã thông báo" → "token"
security/index.md:250 Missing space: "sử dụngmật khẩu"
web3/index.md:91 "mã thông báo" → "token"
defi/index.md:218 "mã thông báo" → "token"
defi/index.md "Beyond DeFi" section placed after QuizWidget
whitepaper/index.md Missing <WhitepaperBridge /> component
whitepaper/index.md:15 "giấy trắng" inconsistent with H1 "Sách trắng"

Glossary Inconsistencies (flagged, not blocking)

The Crowdin glossary has internal contradictions that should be resolved:

  1. gas → "ga" but gas fee → "phí gas"
  2. staking → "ký gửi" but staker → "những người đặt cọc"
  3. token → "token" but non-fungible token → "mã thông báo không thể thay thế"

Reviewed by Claude Code

wackerow and others added 7 commits February 19, 2026 23:49
- Fix diacritical typos
- Standardize "mã thông báo" → "token" across web3, defi, security
- Fix giấy trắng → sách trắng (whitepaper self-reference)
- Fix broken HTML: missing </strong>, missing spaces before <strong>/<a>
- Reorder defi sections to match English source structure
- Normalize markdown table column widths in defi comparison table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace "ma thong bao" with "token" (16 files)
- Fix "not" -> "nut" for node terminology (8 files)
- Fix garbled text in merge/, pbs/, verkle-trees/
- Fix meaning inversion: centralization -> decentralization
- Fix factual errors: PoW->PoS validators, 2h->24h
- Fix deposit contract mistranslation (email->reveal)
- Fix "Relays" mistranslated as "Repeat"
- Fix diacritical errors changing word meanings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
The escapeMdxAngleBrackets regex was converting \<1 to
\&lt;1 (double-escaping). Added \\ to the negative
lookbehind so backslash-escaped angle brackets are left
intact. Fixed 7 affected files across vi, cs, fr, ru.
Added 2 unit tests for the backslash-escape case.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
@myelinated-wackerow
Copy link
Copy Markdown
Collaborator

Translation Quality Review

PR: #17176
Language: Vietnamese (vi)
Files reviewed: 304 (markdown + JSON)
Date: 2026-02-28

Quality Scores (Post-Fix)

Category Score Notes
Brand Name Preservation 8.5/10 Generally good; Solidity, MetaMask, Ethereum preserved
Technical Accuracy 7.0/10 Systematic glossary violations fixed: "token" mistranslated as "ma thong bao" (16 files), "node" as "not" instead of "nut" (8 files)
Semantic Fidelity 7.0/10 Garbled diacritical text in roadmap section (merge, pbs, verkle-trees, single-slot-finality). Meaning inversion and factual error fixed
Terminology Consistency 7.5/10 Consistent after bulk fixes; was inconsistent before
Tone/Register 8.0/10 Consistent formal Vietnamese register throughout

Overall: 7.6/10

Issues Found & Fixed

Severity Issue Files Status
CRITICAL "token" systematically mistranslated as "ma thong bao" 16 Fixed
CRITICAL "node" wrong diacritical ("not" = music note vs "nut" = node) 8 Fixed
CRITICAL Garbled Vietnamese text in roadmap section 4 Fixed
CRITICAL Meaning inversion: centralized vs decentralized 1 Fixed
CRITICAL Factual error: stated Merge moved PoW to PoW (should be PoS) 1 Fixed
CRITICAL \&lt; double-escaping from sanitizer bug (cross-language) 7 (4 langs) Fixed
HIGH "2 hours" should be "24 hours" (10-year anniversary JSON) 1 Fixed
HIGH "email address" should be "reveal address" (staking JSON) 1 Fixed

Commits

  • dd44c06a36 -- Bulk Vietnamese translation fixes (70 files): glossary corrections, garbled text repairs, meaning inversions, factual errors
  • e6fa15813e -- Sanitizer regex fix: escapeMdxAngleBrackets lookbehind missing \\, causing \< to become \&lt;. Fixed across vi, cs, fr, ru. 2 unit tests added.
  • 2f7bfa4979 -- Compound documentation for the sanitizer fix

Summary

The Vietnamese translation import is usable but required significant corrections. The roadmap section had severe diacritical garbling (likely Crowdin translation memory artifacts). The glossary violations around "token" and "node" were systematic across many files. A sanitizer regex bug affecting 4 languages was also discovered and fixed with tests. After all fixes, the translations read naturally in formal Vietnamese with correct technical terminology.


Reviewed by Claude (Opus 4.6)

@wackerow wackerow merged commit 805515d into dev Feb 28, 2026
6 checks passed
@wackerow wackerow deleted the i18n/import/2026-01-27T15-06-08-vi branch February 28, 2026 07:27
@wackerow wackerow mentioned this pull request Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

content 🖋️ This involves copy additions or edits documentation 📖 Change or add documentation tooling 🔧 Changes related to tooling of the project translation 🌍 This is related to our Translation Program

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants