Skip to content

i18n: automated Crowdin translation import (ko)#17166

Merged
wackerow merged 23 commits into
devfrom
i18n/import/2026-01-25T17-44-07-ko
Mar 2, 2026
Merged

i18n: automated Crowdin translation import (ko)#17166
wackerow merged 23 commits into
devfrom
i18n/import/2026-01-25T17-44-07-ko

Conversation

@wackerow
Copy link
Copy Markdown
Member

Description

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

🔗 View workflow run

Languages translated

ko

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

@github-actions github-actions Bot added content 🖋️ This involves copy additions or edits translation 🌍 This is related to our Translation Program labels Jan 25, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Jan 25, 2026

Deploy Preview for ethereumorg failed.

Name Link
🔨 Latest commit 2b699fe
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/6983c6fdb630c400082a0452

@github-actions
Copy link
Copy Markdown
Contributor

🌐 Translation review started. View progress

@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Feb 11, 2026

Translation Quality Review

PR: #17166
Languages: ko (Korean) (1 total)
Files reviewed: 304 (255 markdown + 49 JSON; all searched via grep, 22 read in detail)
Date: 2026-02-11

Summary by Language

Language Files Critical Warnings Quality Score
ko 304 18+ 10 5.0/10

Quality Scores by Language

ko - 5.0/10

Category Score Notes
Brand Name Preservation 3/10 Extensive translation of brand names that should stay English: Solidity (68+ files), JavaScript, Python, Rust, Uniswap, ConsenSys, Lodestar, Prysm, MetaMask (in repo names), Delphi Digital
Technical Accuracy 5/10 ETH/Gwei units mostly preserved; however, "gas prices" to "oil prices", "Abstract" to literal Korean, "Lightning Network" to "Illumination Network", broken ERC number (437 vs 4337), "Get ETH" to "ETH Scam"
Semantic Fidelity 6/10 Most content accurately translated; critical "ETH Scam" error, garbled layer-2 HTML tags, oil prices for gas, Abstract mistranslation
Terminology Consistency 5/10 Inconsistent "smart contract" translations. Solidity appears as both Korean and English
Tone/Register 6/10 Most files use polite speech, but several files mix casual and polite styles

Overall: 5.0/10

The Korean translation appears machine-generated and while it captures meaning reasonably well in most cases, it systematically fails on keeping brand names and programming language names in English.

Critical Issues (Must Fix)

ko

File Line Issue Current Expected
src/intl/ko/common.json 127 "Get ETH" mistranslated as "ETH Scam/Fraud" " ETH 사기" "ETH 받기" or "ETH 얻기"
src/intl/ko/glossary.json 338 Brand name "Solidity" translated "솔리디티" "Solidity"
src/intl/ko/page-developers-index.json 56 Brand name "Solidity" translated "솔리디티 문서 읽기" "Solidity 문서 읽기"
src/intl/ko/page-developers-index.json 116-123 Brand name "Solidity" translated in 6 strings "솔리디티 스마트 컨트랙트 개발" etc. Use "Solidity"
src/intl/ko/page-developers-docs.json 64-65 "JavaScript", "Python", "Rust" translated Korean transliterations "JavaScript", "Python", "Rust"
src/intl/ko/page-upgrades-index.json 6 "Lodestar" client translated "길라잡이 로고" "Lodestar 로고"
src/intl/ko/page-upgrades-index.json 9 "Prysm" client translated "프리즘 로고" "Prysm 로고"
src/intl/ko/page-upgrades-index.json 17 "Consensys" translated "콘센시스" "ConsenSys"
src/intl/ko/page-upgrades-index.json 18 "Delphi Digital" translated "델파이 디지털" "Delphi Digital"
src/intl/ko/page-upgrades-index.json 96 "ConsenSys" + person name translated "컨센시스의 벤 에징턴" "ConsenSys의 Ben Edgington"
src/intl/ko/learn-quizzes.json 453, 637 "Uniswap" translated "유니스왑" "Uniswap"
src/intl/ko/page-gas.json 52 "Uniswap" translated "유니스왑 토큰 거래" "Uniswap 토큰 거래"
src/intl/ko/page-layer-2-learn.json 11 Garbled HTML tags + "Lightning Network" mistranslated broken </strong> tags, "조명 네트워크" Fix HTML tags, use "Lightning Network"
src/intl/ko/page-layer-2-learn.json 20 "Gas prices" mistranslated as "oil prices" "유가가 크게 상승" "가스비가 크게 상승"
Multiple tutorial MD files (38+) tags line Frontmatter tags translated to Korean tags: [ "솔리디티", "erc-20" ] Tags should remain in English
ko/roadmap/pectra/7702/index.md 9 "Abstract" mistranslated "## 추상적인{#abstract}" "## 개요{#abstract}"
ko/roadmap/pectra/7702/index.md 37 Broken URL + number error notes.ethereum.org/ @yoav/unified-erc-437-mempool notes.ethereum.org/@yoav/unified-erc-4337-mempool
ko/roadmap/pectra/7702/index.md 118-119 GitHub repo names translated Korean transliterations of AmbireTech and MetaMask repos "AmbireTech/ambire-common", "MetaMask/delegation-framework"

Warnings (Should Review)

ko

File Line Issue Details
ko/roadmap/beacon-chain/index.md 50 Typo "자분 증명" should be "지분 증명"
ko/roadmap/beacon-chain/index.md 62 Typo "조냊했었지만" should be "존재했었지만"
ko/developers/docs/smart-contracts/languages/index.md 7-22 Tone mixing Mixes casual style with polite style
ko/developers/docs/smart-contracts/languages/index.md 3,7,18,22 Inconsistent term handling "smart contract" left in English in body but header uses Korean
src/intl/ko/page-upgrades-index.json 11-13, 39-40 Tone inconsistency Casual speech level while most strings use polite
ko/roadmap/pectra/7702/index.md 129 "Lazy" misinterpreted Technical term rendered as literal Korean for "lazy/slothful"
src/intl/ko/glossary.json 187 "Gwei" translated Unit "Gwei" should remain as "Gwei"
src/intl/ko/page-developers-learning-tools.json 15 Inconsistent brand parenthetical "솔리디티(Solidity)" inconsistent with other files
68 markdown files various "Solidity" translated to Korean Should remain "Solidity"
src/intl/ko/page-what-is-ethereum.json 9 Broken HTML tag closing tag splits the word incorrectly

Reviewed by Claude Code

@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 13, 2026

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit 27f5c8e
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/69a525b9362b480008d648d2
😎 Deploy Preview https://deploy-preview-17166.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: 59 (🔴 down 1 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.

@minimalsm minimalsm force-pushed the i18n/import/2026-01-25T17-44-07-ko branch from 57d5085 to 4f5eaed Compare February 13, 2026 12:39
Crowdin corrupted multiple code fence blocks by placing description
text inside fences and leaving actual Solidity code outside. Fixed
4 sections with mismatched open/close fences.
…-code

Crowdin placed Solidity NatSpec comments and function declarations
outside code fences while putting Korean descriptions inside them.
The bare {name}, {symbol}, {ERC20} etc. references broke MDX's
JSX parser. Restructured 5 sections to properly fence all code.
Line 655 had '{#user-interface-functions}' without a heading prefix,
which breaks MDX compilation since the preprocessor only escapes heading
IDs on lines that start with #.
# Conflicts:
#	src/intl/ko/common.json
#	src/intl/ko/page-developers-learning-tools.json
#	src/intl/ko/page-developers-local-environment.json
myelinated-wackerow and others added 4 commits February 28, 2026 07:35
…T17-44-07-ko

# Conflicts:
#	public/content/translations/ko/decentralized-identity/index.md
#	public/content/translations/ko/energy-consumption/index.md
#	public/content/translations/ko/governance/index.md
#	public/content/translations/ko/whitepaper/index.md
#	src/intl/ko/page-developers-tutorials.json
Run post-import sanitizer on 301 Korean translation
files from Crowdin import. Fixes brand name tags,
escaped bold/italic, asymmetric backticks, and
other deterministic artifacts across 85 files.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Manual fixes from AI-assisted review of Korean
translation import PR #17166:

- dencun: rebuild 16 broken links, remove 6 junk
  heading anchors
- pectra/7702: fix ERC-437->ERC-4337, restore
  GitHub identifiers, fix Benefits/Cons swap
- desci: fix semantic error (financial->scientific)
- payments: rebuild 5 broken links, restore brands
- eth/supply: fix escaped bold, broken link
- erc-777: remove junk after heading anchor
- page-layer-2-learn.json: fix garbled strong tags,
  restore Lightning Network brand
- page-layer-2-networks.json: fix nonsense label
- page-what-is-ethereum.json: fix garbled tags and
  machine translation artifacts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Add fixJunkAfterHeadingAnchors, fixBacktickWrappedLinks,
and fixMissingLinkParentheses to the post-import
sanitizer. All three patterns discovered during
Korean PR #17166 review.

- 19 new unit tests (150 total passing)
- Document patterns #17-19 in research catalog
- Wire into processMarkdownFile pipeline

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
@github-actions github-actions Bot added the documentation 📖 Change or add documentation label Feb 28, 2026
@myelinated-wackerow
Copy link
Copy Markdown
Collaborator

Translation Quality Review

PR: #17166
Language: Korean (ko)
Files reviewed: 301 (255 markdown, 46 JSON)
Commits: 3 (sanitizer auto-fix, manual review fixes, sanitizer improvements)
Date: 2026-02-28

Quality Scores

Category Pre-Fix Post-Fix Notes
Brand Name Preservation 7/10 9.5/10 Sanitizer auto-fixed frontmatter tags; manual fixes restored Lightning Network, GitHub identifiers, Anka Relief DAO, Bankless DAO, Giveth
Technical Accuracy 6/10 8.5/10 Fixed ERC-437->ERC-4337, Benefits/Cons swap, financial->scientific semantic error, garbled JSON labels
Structural Integrity (Links/Anchors) 5/10 9/10 Rebuilt 16+ broken links in dencun, 5 in payments, fixed missing-paren links, removed all junk heading anchors
Semantic Fidelity 7.5/10 8/10 Fixed critical inversions (desci, pectra). Bulk of translations faithful to English source
Terminology Consistency 7.5/10 8/10 Glossary compliance reasonable across checked files. ETH/Gwei/Gas preserved
Tone/Register 8/10 8/10 Consistent formal register throughout. No fixes needed

Overall: 8.5/10

Fixes Applied

Sanitizer Auto-Fixes (85 files)

  • Brand name tag restoration in frontmatter
  • Escaped bold/italic normalization
  • Asymmetric backtick repair
  • Junk after heading anchors (new sanitizer function)
  • Backtick-wrapped link unwrapping (new sanitizer function)
  • Missing link parentheses restoration (new sanitizer function)

Manual Review Fixes (9 files)

File Fixes
ko/roadmap/dencun/index.md 6 junk anchors, 16 broken links rebuilt
ko/roadmap/pectra/7702/index.md ERC-437->ERC-4337 (x2), Cons/Benefits swap, 3 GitHub identifiers
ko/desci/index.md Semantic: financial->scientific
ko/payments/index.md 5 broken links, brand name restorations
ko/eth/supply/index.md Escaped bold, broken link
ko/developers/docs/standards/tokens/erc-777/index.md Junk after heading anchor
src/intl/ko/page-layer-2-learn.json Garbled <strong> tags, Lightning Network
src/intl/ko/page-layer-2-networks.json Nonsense label fix
src/intl/ko/page-what-is-ethereum.json Garbled tags, machine translation artifact

Sanitizer Improvements (3 files)

  • 3 new fix functions added to post-import sanitizer
  • 19 new unit tests (150 total passing)
  • Patterns documented in research catalog

Known Remaining Issues

Area Description Severity
account-abstraction, pbs, single-slot-finality Broken markdown links Medium
networking-layer/index.md Corrupted paragraph Medium
erc20-annotated-code Corrupted content from ~line 604 Medium
intro-to-ethereum/index.md Broken links, duplicate headings Medium

Summary

The Korean translation import is good quality overall with the applied fixes. The most critical issues -- broken navigation links, garbled ERC references, semantic inversions, and junk heading anchors -- have been resolved. Three new sanitizer functions were added to catch these patterns automatically in future imports. Five medium-severity issues remain in specific files but do not break builds or core navigation.


Reviewed by Claude (Opus 4.6)

myelinated-wackerow and others added 6 commits February 28, 2026 22:09
Document 3 new Crowdin artifact patterns and
fixes from Korean PR #17166 review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Add fixMissingClosingEmTag, fixImagePathDotSlash,
fixInnerQuotesInJsxAttributes, warnExposedMdxTags.
170 tests passing. Update safe component list and
move patterns #20-23 to handled in research docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
- ethereum-forks: add missing </em> before </li>
- payments: fix image path /.computer -> ./computer
- merge: escape inner quotes in JSX attributes
- creating-a-wagmi-ui: fix backtick split on </>
- all-you-can-cache: fix garbled <contract> sentence

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
- fixBoldAdjacentNonLatin: convert **text** to <strong>
  tags only when non-Latin chars follow closing **;
  lookbehind prevents cross-boundary regex matching
- escapeTildeStrikethrough: escape lone ~ as \~ to
  prevent remark-gfm strikethrough; skip URLs and
  code blocks
- removeOrphanedClosingTags: fenced-only split with
  inline-stripped counting fixes idempotency regression
  where valid </em> was stripped

187 tests passing, including 7 new regression tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Apply sanitizer fixes to 101 Korean translation files:
- Convert **bold** to <strong> tags where non-Latin
  text follows closing ** (preserves josa attachment)
- Escape lone ~ as \~ to prevent strikethrough
- Fix orphaned closing tags and restore blank lines

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 Sanitizer Fixes for Korean (ko)

Summary

Applied automated sanitizer fixes across 101 Korean translation files, addressing three categories of rendering issues discovered during review.

Fixes Applied

1. Bold markers adjacent to non-Latin text (Pattern #26)

  • **text**으로 renders literally as asterisks because MDX requires a word boundary after closing **
  • Converts ONLY cases where non-Latin characters immediately follow ** to <strong> HTML tags
  • Preserves Korean josa (postposition) attachment -- no spaces inserted
  • Uses lookbehind to prevent cross-boundary regex matching between lines
  • ~258 occurrences across 101 files

2. Tilde range notation triggering strikethrough (Pattern #25)

  • 100만~200만 was parsed as <del> by remark-gfm (two ~ chars = strikethrough)
  • Escapes lone ~ as \~ in prose; skips code blocks, frontmatter, and URLs
  • ~20 occurrences

3. Orphaned closing tag idempotency regression (Pattern #24)

  • removeOrphanedClosingTags was stripping valid </em> when <em> spanned inline backticks
  • Fixed counting logic to use fenced-only split with inline-stripped counting
  • Sanitizer is now fully idempotent (0 files written on second run)

Testing

  • 187 unit tests passing (7 new regression tests added)
  • Idempotency verified: second sanitizer run produces 0 file changes
  • ESLint clean

Commits

  • e179a885ea -- sanitizer code, tests, documentation
  • 87ca098be8 -- 101 ko content files

Summary by Claude (Opus 4.6)

myelinated-wackerow and others added 2 commits March 2, 2026 05:52
Add fixItalicAdjacentNonLatin to convert *text*<korean>
and _text_<korean> to <em> HTML tags, mirroring the
bold fix. MDX emphasis parser needs word boundary after
closing markers -- Korean josa attach without spaces.

9 new tests, pattern #27 documented.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Convert *text*<korean> and _text_<korean> italic
markers to <em> HTML tags across 51 ko files where
MDX parser fails on non-Latin word boundary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
@wackerow wackerow merged commit 143da32 into dev Mar 2, 2026
6 checks passed
@wackerow wackerow deleted the i18n/import/2026-01-25T17-44-07-ko branch March 2, 2026 15:36
@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