Skip to content

i18n: automated Crowdin translation import (ru)#17127

Merged
wackerow merged 18 commits into
devfrom
i18n/import/2026-01-20T23-48-17-ru
Feb 27, 2026
Merged

i18n: automated Crowdin translation import (ru)#17127
wackerow merged 18 commits into
devfrom
i18n/import/2026-01-20T23-48-17-ru

Conversation

@wackerow
Copy link
Copy Markdown
Member

Description

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

🔗 View workflow run

Languages translated

ru

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/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 21, 2026

Deploy Preview for ethereumorg failed.

Name Link
🔨 Latest commit cd6a399
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/6983c65620f35500073c7913

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

netlify Bot commented Feb 13, 2026

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit 2920654
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/69a144efb9409300084f03a6
😎 Deploy Preview https://deploy-preview-17127.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: 57 (🔴 down 3 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-20T23-48-17-ru branch from 785d9aa to 1723b2b Compare February 13, 2026 12:38
# Conflicts:
#	src/intl/ru/page-developers-learning-tools.json
#	src/intl/ru/page-developers-local-environment.json
myelinated-wackerow and others added 6 commits February 26, 2026 23:51
…T23-48-17-ru

# Conflicts:
#	public/content/translations/ru/community/grants/index.md
#	public/content/translations/ru/community/language-resources/index.md
#	public/content/translations/ru/community/online/index.md
#	public/content/translations/ru/desci/index.md
#	public/content/translations/ru/developers/docs/consensus-mechanisms/pos/index.md
#	public/content/translations/ru/developers/docs/consensus-mechanisms/pow/index.md
#	public/content/translations/ru/developers/docs/nodes-and-clients/nodes-as-a-service/index.md
#	public/content/translations/ru/energy-consumption/index.md
#	public/content/translations/ru/governance/index.md
#	public/content/translations/ru/roadmap/beacon-chain/index.md
#	public/content/translations/ru/roadmap/merge/index.md
#	public/content/translations/ru/whitepaper/index.md
#	src/intl/ru/page-developers-tutorials.json
Sanitizer fixes (53 files): brand name tags, MDX angle bracket escaping,
orphaned HTML tags, ticker symbol corrections.

Review fixes (27 files): Cyrillic ETH ticker -> Latin ETH (16 files),
brand name "tverdost" -> Solidity in tutorial tags (3 files),
PoS/PoW semantic inversion, translated hrefs, duplicate headings,
wrong section headings, glossary typo, Ukrainian char contamination,
ERC spacing in titles, broken XML tags in page-what-is-ethereum.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Glossary was zeroed out by a sed command that failed to match its
target due to non-breaking space encoding. Restored from original
Crowdin commit and applied typo fix (platv -> plata) with python.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
1. escapeMdxAngleBrackets: Rewrite from global content.split() to
   line-by-line processing. Crowdin can break inline code spans across
   lines, creating odd backtick counts that flip the even/odd parity
   of the global split, causing <digits> inside code spans on later
   lines to be falsely escaped as &lt;digits>.

2. extractHeaderStructure: Change regex trailing anchor from \s*$ to
   [ \t]*$ so fullMatch does not capture trailing \n. The old regex
   caused syncHeaderIdsWithEnglish to strip newlines after every
   header via .replace(). For duplicate-ID headers (e.g. four headings
   sharing {#governance-example} in dao/index.md), the first occurrence
   got double-stripped, merging the header with its following paragraph.

Adds 7 regression tests covering both bugs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
Document sanitizer bugs found during Russian translation review
(PR #17127): backtick parity cascade in escapeMdxAngleBrackets
and header newline stripping in extractHeaderStructure regex.

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 27, 2026
@myelinated-wackerow
Copy link
Copy Markdown
Collaborator

Translation Quality Review

PR: #17127
Language: Russian (ru)
Files reviewed: 300 (256 markdown, 44 JSON)
Date: 2026-02-27

Quality Scores

Category Score Notes
Brand Name Preservation 9/10 12 brand translations fixed (Solidity, MetaMask, etc.). Remaining edge cases are in-context transliterations unlikely to cause issues.
Technical Accuracy 8/10 Cyrillic ETH fixed across 4 files. PoS/PoW semantic inversion corrected. Glossary typo ("platv" -> "plata") fixed. Some code fence drift remains (warnings only, content translated by Crowdin intentionally).
Semantic Fidelity 8/10 Overall translation quality is good. A few files have paragraph-level differences from English source (block count mismatches flagged as warnings).
Terminology Consistency 8/10 Glossary compliance is strong after fixes. Key terms (proof-of-stake, validator, mainnet) used correctly.
Tone/Register 9/10 Consistent formal register throughout. No mixing of formal/informal address.

Overall: 8.4/10

Issues Found & Fixed

Category Count Details
Brand names translated 12 Solidity, MetaMask, Remix, Hardhat, etc. reverted to English
Cyrillic ETH 4 files "ETH" (Cyrillic lookalike) corrected to "ETH" (Latin)
PoS/PoW inversion 1 Semantic inversion in proof-of-stake description corrected
Glossary typo 1 Non-breaking space + typo in glossary.json fixed
Translated hrefs 3 Internal links restored to English paths
MDX angle brackets 0 Sanitizer bug fixed; no false escapes remain
Blank line collapse 0 Sanitizer bug fixed; no structural damage

Sanitizer Improvements

Two sanitizer bugs were discovered and fixed during this review:

  1. escapeMdxAngleBrackets -- backtick parity cascade from Crowdin-broken code spans
  2. extractHeaderStructure -- regex capturing trailing newline, stripping blank lines after headers

Both fixes include regression tests (7 new tests, 123 total passing).

Summary

Russian translations are in good shape after sanitization and review fixes. The primary issues were brand name translations and a handful of technical term errors -- all corrected. Two sanitizer bugs were found and fixed with test coverage. The remaining warnings (code fence content drift, block count mismatches) are Crowdin translation artifacts that don't affect build or readability.


Reviewed by Claude Code (Opus 4.6)

myelinated-wackerow and others added 2 commits February 27, 2026 07:03
Add fixAsymmetricBackticks to sanitizer pipeline.
Crowdin doubles closing backtick on inline code spans
(`content`` -> `content`), exposing angle brackets
as raw HTML and breaking MDX compilation.

Fixes build error on ru/developers/tutorials/
erc-721-vyper-annotated-code at line 246.

6 new tests, 129 total passing. Zero false positives
across es, tr, ja cross-language spot check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: wackerow <54227730+wackerow@users.noreply.github.com>
@wackerow wackerow merged commit cb8f5c1 into dev Feb 27, 2026
5 of 6 checks passed
@wackerow wackerow deleted the i18n/import/2026-01-20T23-48-17-ru branch February 27, 2026 07:30
@pettinarip pettinarip mentioned this pull request Feb 27, 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