Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
---
title: "Czech (cs) Crowdin Translation Import Review (PR #17556)"
date: 2026-02-26
category: translation-review
tags:
- i18n
- translations
- crowdin
- czech
- gemini
- glossary-compliance
- merge-conflicts
- duplicate-headings
- mistranslation
severity: medium
component: "i18n translation pipeline (Czech/cs)"
related_prs:
- 17556
- 17547
resolution_type: code-fix
confidence: high
quality_score: 6.9
---

# Czech (cs) Translation Review -- PR #17556

**PR:** #17556 -- i18n(cs): automated Crowdin translation import (part 10 of 13)
**Date:** 2026-02-26
**Files reviewed:** 24
**Overall quality score:** 6.9/10 (post-fix)

## Context

PR #17556 is an automated Crowdin import of Czech translations for ethereum.org, generated by Gemini AI. This is part 10 of a 13-part Czech import series. The review was performed using the `review-translations-local` skill.

### Related PRs

- **#17547** -- Part 01 of the Czech import series (7.2/10 quality score)
- **#17653** (`fix-review-translations`) -- Source of sanitizer scripts, not yet merged to dev

### Related Documentation

- [Czech Part 01 review (PR #17547)](./crowdin-import-review-czech-pr-17547.md) -- first Czech review, 7.2/10
- [Turkish PR #17182 review](./crowdin-import-review-turkish-pr-17182.md) -- baseline case study, 7.7/10
- [Japanese PR #17132 review](./crowdin-import-review-japanese-pr-17132.md) -- sanitizer bugs found
- [Agent calibration (Czech Part 07)](../integration-issues/crowdin-import-review-agent-calibration.md) -- false positive reduction

## Quality Scores (Post-Fix)

| Category | Score | Notes |
|----------|-------|-------|
| Brand Name Preservation | 6/10 | "Beacon Chain" -> "Retezova vazba" (~60 occurrences, deferred). Other brands correct. |
| Technical Accuracy | 7.5/10 | Fixed: "Nekotovane" mistranslation, blog year error, Blockscout URL. Remaining: gas -> palivo (deferred). |
| Semantic Fidelity | 8/10 | Fixed: missing /collectibles/ sentence, RWA title mismatch. No PoS/PoW inversions. |
| Terminology Consistency | 4.5/10 | Fixed: zetonu/tokenu, smluv/kontraktu. Deferred: staking/beacon chain/gas/staker bulk glossary violations. |
| Tone/Register | 8.5/10 | Consistent formal Czech throughout. |
| **Overall** | **6.9/10** | |

## Root Causes

1. **Gemini AI glossary non-compliance**: Gemini systematically translates terms the community glossary says to keep in English (staking -> uzamceni, beacon chain -> Retezova vazba, gas -> palivo, staker -> uzamykatel). No enforcement mechanism exists -- glossary is injected as prompt context but treated as optional by the model.

2. **Crowdin duplicate heading artifacts**: Crowdin produces headings like "Czech text? Alternative czech text {#anchor}" -- found in 4 files (account-abstraction, beacon-chain, dencun, pectra).

3. **Wrong-domain mistranslation**: "Non-custodial" translated as "Nekotovane" (stock exchange term meaning "Unlisted") instead of keeping the English crypto term. The adjacent "Self-custodial" was correctly kept in English, making the inconsistency obvious.

4. **Merge conflicts from dev divergence**: 4 files conflicted when merging dev. The PR had newer Crowdin translations matching the simplified English source; dev had older translations with outdated ExpandableCard structure. Resolved by taking PR (HEAD) for all conflicts.

## Solution

### Merge Conflict Resolution

4 conflicted files resolved by accepting PR (HEAD) version:
- `account-abstraction/index.md` -- PR matched current English source (simplified, no ExpandableCards)
- `beacon-chain/index.md` -- PR had newer translations; dev had stale content not in English source
- `danksharding/index.md` -- dev version would have created duplicate paragraph content
- `future-proofing/index.md` -- PR had detailed translation matching current English "Recent Changes" structure

2 duplicate heading artifacts fixed during resolution.

### Commit 1 -- Critical Fixes (6 fixes, 6 files)

| # | File | Fix |
|---|------|-----|
| 1 | `payments/index.md` | "Nekotovane" -> "Non-custodial" (wrong financial domain mistranslation) |
| 2 | `merge/index.md` | Duplicate word "uzel uzel" -> "uzel" |
| 3 | `fusaka/index.md` | Typo "koncenzus" -> "konsenzus" |
| 4 | `how-to-revoke-token-access/index.md` | Double word "To to" -> "To" |
| 5 | `dencun/index.md` | Duplicate heading text removed (Crowdin artifact) |
| 6 | `pectra/index.md` | Duplicate heading text removed (Crowdin artifact) |

### Commit 2 -- Warning Fixes (7 fixes, 7 files)

| # | File | Fix |
|---|------|-----|
| 1 | `nft/index.md` | Added missing /collectibles/ link sentence |
| 2 | `how-to-swap-tokens/index.md` | "zetonu" -> "tokenu" terminology consistency |
| 3 | `real-world-assets/index.md` | Title "Fyzicka aktiva" -> "Aktiva z realneho sveta" to match body |
| 4 | `prediction-markets/index.md` | "chytrych smluv" -> "chytrych kontraktu" consistency |
| 5 | `restaking/index.md` | Blog post year 2021 -> 2023 (URL confirms 2023; upstream EN error) |
| 6 | `how-to-revoke-token-access/index.md` | Blockscout URL synced to English source |
| 7 | `fusaka/index.md` | "Githubu" -> "GitHubu" brand casing |

## Key Decisions

### Glossary Enforcement -- Deferred (Same as Part 01)

**Decision:** Did NOT fix pervasive glossary deviations. Documented for future PR.

| English Term | Community Glossary | Gemini Translation | ~Count |
|---|---|---|---|
| beacon chain | beacon chain (keep English) | Retezova vazba | ~60 |
| staking | staking (keep English) | uzamceni | ~100+ |
| staker | staker (keep English) | uzamykatel | ~30 |
| gas fee | transakcni poplatek | palivo | ~20 |

**Why deferred:**
1. Czech is highly inflected -- "staking" as a loanword needs different case forms (staking/stakingu/stakingem/stakingovy) and a Czech speaker is needed to verify
2. Mass find-replace on inflected forms risks introducing grammatical errors
3. The deviations are internally consistent within files (Gemini was self-consistent)
4. Needs dedicated PR with Czech speaker involvement

### Non-custodial Kept in English

**Decision:** Replaced "Nekotovane" with "Non-custodial" (English).

**Reasoning:** "Non-custodial" is a standard crypto term used as-is in the Czech crypto community. The same file already kept "Self-custodial" in English right next to it (same table header row). "Nekotovane" is from the stock exchange domain (means "Unlisted shares") -- wrong domain entirely.

### Blog Post Year Correction

**Decision:** Changed year from 2021 to 2023 in restaking page.

**Reasoning:** The URL (`/2023/05/21/dont_overload.html`) unambiguously shows the blog post was published May 21, 2023. The "2021" error exists in the English source too (upstream bug), but we fixed it in the Czech translation since the correct year is deterministic.

## LLM Glossary Compliance Failure

This is the central systemic issue across the Czech import series. Both Gemini (as translator) and the glossary injection approach are failing to enforce community-voted terminology.

**The pattern:** The glossary is passed as prompt context to Gemini, but Gemini consistently overrides it with "natural" Czech translations. It prioritizes fluency over explicit constraints when the constraint feels unnatural to the model.

**What would fix it:**
1. Post-translation glossary compliance check that rejects and retries on deviation (not just logs warnings)
2. Explicit term-locking in the prompt with examples of correct inflected forms for each language
3. Sanitizer auto-replacement of glossary deviations (but needs Czech speaker for inflection correctness)

**What will NOT fix it:**
- Adding more emphasis to the prompt ("CRITICAL: DO NOT TRANSLATE") -- LLMs deprioritize this when surrounding text is in another language
- Logging warnings without enforcement -- the current approach, which produces the same failures every time

## Prevention

### 1. Glossary Enforcement

- Add post-translation glossary compliance check in the translation pipeline
- Reject translations where glossary terms deviate; retry with stronger prompt
- After 3 retries without compliance, flag for human review
- Log glossary term counts before/after translation for audit trail

### 2. Sanitizer Improvements

- Add duplicate heading detector: pattern `## Text? Text? {#id}` -> `## Text? {#id}`
- Extend TICKER_CORRECTIONS to include semantic acronyms: MEV, ZKP, EIP, ERC, DAO, NFT, DeFi
- Add wrong-domain mistranslation detection (domain term ratio check)

### 3. Merge Conflict Prevention

- For multi-part imports, enforce sequential merge (part N only after part N-1 merged)
- Add pre-merge conflict detection script
- Mandatory rebase before merge for i18n import PRs

### 4. Review Pipeline (review-translations-local skill)

- Add glossary compliance verification to agent checklist
- Add content staleness detection (heading count diff, word count ratio)
- **Fix Phase 8**: Skill incorrectly instructs writing to `~/.claude/translation-review/` -- should use `/workflows:compound` to create docs in `docs/solutions/translation-review/`

## Cross-References

- [Czech Part 01 review (PR #17547)](./crowdin-import-review-czech-pr-17547.md) -- 7.2/10, same glossary patterns
- [Turkish review (PR #17182)](./crowdin-import-review-turkish-pr-17182.md) -- 7.7/10, baseline case study
- [Japanese review (PR #17132)](./crowdin-import-review-japanese-pr-17132.md) -- sanitizer bugs found
- [Agent calibration](../integration-issues/crowdin-import-review-agent-calibration.md) -- false positive reduction
- Community glossary: `~/.claude/translation-review/fetch-translation-glossary.json`
- Sanitizer source: PR #17653 (`fix-review-translations` branch)
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: "Jak zrušit přístup chytrého kontraktu k vašim krypto fondům"
description: "Návod, jak odebrat přístup k vašim tokenům škodlivým smart kontraktům"
lang: cs
---

# Jak zrušit přístup chytrého kontraktu k vašim krypto fondům

V tomto návodu zjistíte, jak zobrazit seznam všech [smart kontraktů](/glossary/#smart-contract), kterým jste povolili přístup k vašim finančním prostředkům, a jak je zrušit.

Nečestní vývojáři mohou do smart kontraktů přidat zadní vrátka, která umožňují přístup k finančním prostředkům nevědomých uživatelů, kteří se smart kontraktem interagují. Často se stává, že takové platformy žádají uživatele o povolení utratit **neomezený počet tokenů** ve snaze ušetřit v budoucnu malé množství [gasu](/glossary/#gas), což je ale spojeno se zvýšeným rizikem.

Jakmile platforma získá neomezená přístupová práva k tokenu ve vaší [peněžence](/glossary/#wallet), může všechny tyto tokeny utratit, i když jste své prostředky z jejich platformy vybrali do své peněženky. Útočníci totiž mají stále přístup k vašim prostředkům a mohou je vybrat do svých peněženek, aniž byste měli možnost získat je zpět.

Jedinou ochranou je vyhnout se interakci s neověřenými novými projekty, schvalovat pouze to, co potřebujete, případně pravidelně odebírat přístup službám, které už nevyužíváte. Takže, jak na to?

## Krok 1: Používejte nástroje pro zrušení přístupu

Hned několik webových stránek vám umožňuje zobrazit a zrušit přístup smart kontraktů spojených s vaší adresou. Běžte na některou k následujících stránek a připojte svoji peněženku:

- [Etherscan](https://etherscan.io/tokenapprovalchecker) (Ethereum)
- [Blockscout](https://eth.blockscout.com/essential-dapps/revoke) (Ethereum)
- [Revoke](https://revoke.cash/) (více sítí)
- [Unrekt](https://app.unrekt.net/) (více sítí)
- [EverRevoke](https://everrise.com/everrevoke/) (více sítí)

## Krok 2: Připojte svoji peněženku

Jakmile budete na webové stránce, klikněte na možnost "Připojit peněženku". Webová stránka by vás měla vyzvat k připojení peněženky.

Ujistěte se, že v peněžence a na webové stránce používáte stejnou síť. Zobrazí se vám pouze chytré kontrakty související s vybranou sítí. Pokud se například připojíte k Ethereum Mainnetu, uvidíte pouze kontrakty na Ethereu, nikoliv kontrakty na jiných blockchainech, jako je Polygon.

## Krok 3: Vyberte smart kontrakt, kterému chcete zrušit přístup

Měli byste vidět všechny kontrakty, které mají povolený přístup k tokenům, a jejich limit výdajů. Najděte ten, kterému chcete zrušit přístup.

Pokud nevíte, který kontrakt vybrat, můžete zrušit přístup všem. To pro vás nebude znamenat žádné problémy, ale při příští interakci s některým z těchto kontraktů, jim budete muset znovu povolit přístup.

## Krok 4: Zruště přístup k finančním prostředkům

Po kliknutí na zrušení přístupu by se měl v peněžence zobrazit návrh nové transakce. To lze očekávat. Aby bylo zrušení přístupu úspěšně dokončeno, musíte zaplatit transakční poplatek. V závislosti na vytížení sítě může zpracování trvat až několik minut.

Doporučujeme vám po několika minutách obnovit nástroj na zrušení přístupu a znovu připojit svoji peněženku, abyste si ověřili, zda kontrakt se zrušeným přístupem skutečně zmizel ze seznamu.

<mark>Doporučujeme vám nikdy nedávat projektům neomezený přístup k vašim tokenům a pravidelně rušit všechna oprávnění k přístupu k tokenům. Zrušení přístupu k tokenům by nikdy nemělo vést ke ztrátě finančních prostředků, zejména pokud používáte výše uvedené nástroje.</mark>

<br />

<Alert variant="update">
<AlertEmoji text=":eyes:"/>
<AlertContent className="justify-between flex-row items-center">
<div>Chcete se dozvědět více?</div>
<ButtonLink href="/guides/">
Podívejte se na naše další návody
</ButtonLink>
</AlertContent>
</Alert>

## Často kladené dotazy

### Ukončí zrušení přístupu k tokenům také staking, pooling, půjčky atd.?

Ne, neovlivní to žádnou z vašich [DeFi](/glossary/#defi) strategií. Zůstanete na svých pozicích a budete dostávat odměny atd.

### Je odpojení peněženky od projektu totéž jako odebrání povolení používat mé prostředky?

Ne, pokud svou peněženku od projektu odpojíte, ale udělili jste oprávnění k přístupu k tokenům, mohou tyto projekty vaše tokeny stále používat. Tento přístup musíte zrušit.

### Kdy vyprší platnost povolení kontraktu k přístupu k mým prostředkům?

Platnost povolení k přístupu není omezena. Pokud udělíte kontraktu oprávění, může ho použít i několik let po jeho udělení.

### Proč se v projektech dá nastavit přístup k neomezenému množství tokenů?

Projekty to často dělají proto, aby minimalizovaly počet žádostí, což znamená, že uživatel musí schválit přístup a zaplatit poplatek za transakci jen jednou. To je sice pohodlné, ale pro uživatele to může být nebezpečné při neopatrném udělování přístupu na stránkách, které nejsou prověřeny časem nebo které nejsou auditované. Některé peněženky umožňují ručně omezit množství schvalovaných tokenů, čímž se riziko zneužití prostředků snižuje. Další informace získáte u poskytovatele peněženky.
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: Jak prohodit tokeny
description: "Návod na směnu tokenů na Ethereu."
lang: cs
---

# Jak prohodit tokeny

Už vás nebaví hledat burzu, na které jsou všechny vaše oblíbené tokeny? Většinu tokenů můžete směnit pomocí [decentralizovaných burz](/glossary/#dex).

Směna tokenů zahrnuje směnu dvou různých aktiv, která existují na síti Ethereum, například směnu ETH za DAI (token [ERC-20](/glossary/#erc-20)). Proces je velice rychlý a levný. K směně tokenů budete potřebovat kryptopeněženku.

**Předpoklady:**

- mít [krypto peněženku](/glossary/#wallet); pokud ji nemáte, můžete se řídit tímto průvodcem, [jak si vytvořit účet na Ethereu](/guides/how-to-create-an-ethereum-account/)
- mít v peněžence prostředky

## 1. Připojte svou peněženku k decentralizované burze (DEX) podle svého výběru

Mezi populární burzy patří:

- [Uniswap](https://app.uniswap.org/#/swap)
- [Sushiswap](https://www.sushi.com/swap)
- [1Inch](https://app.1inch.io/#/1/unified/swap/ETH/DAI)
- [Curve](https://www.curve.finance/dex/ethereum/swap/)

Zaujalo vás to? Zjistěte více o tom, co jsou [decentralizované finance (DeFi)](/defi/), a jak tyto nové typy burz fungují.

## 2. Vyberte dvojici tokenů, které chcete směnit

Například ETH a DAI. Ujistěte se, že máte prostředky na jednom z těchto dvou tokenů.
![Běžné rozhraní pro směnu](./swap1.png)

## 3. Zadejte množství tokenů, které chcete vyměnit, a klikněte na tlačítko směnit

Burza automaticky vypočítá, kolik tokenů dostanete.

![Běžné rozhraní pro směnu](./swap2.png)

## 4. Potvrďte transakci

Zkontrolujte podrobnosti transakce. Zkontrolujte směnný kurz a případné další poplatky, abyste se vyhnuli nepříjemným překvapením.

![Běžné rozhraní pro kontrolu transakce](./swap3.png)

## 5. Počkejte na zpracování transakce

Průběh transakce si můžete prohlédnout v libovolném průzkumníku blockchainu. Tento proces by neměl trvat déle než 10 minut.

Směněné tokeny automaticky obdržíte do své peněženky, jakmile bude transakce zpracována. <br />

<Alert variant="update">
<AlertEmoji text=":eyes:"/>
<AlertContent className="justify-between flex-row items-center">
<div>Chcete se dozvědět více?</div>
<ButtonLink href="/guides/">
Podívejte se na naše další návody
</ButtonLink>
</AlertContent>
</Alert>

## Často kladené dotazy

### Mohu směnit ETH za BTC ze své peněženky?

Ne, směnit můžete pouze tokeny, které jsou ze sítě Ethereum, například ETH, tokeny ERC-20 nebo NFT. Směnit můžete pouze "zabalené" formy bitcoinu, které žijí na Ethereu.

### Co je to skluz?

Jedná se o rozdíl mezi očekávaným a skutečným směnným kurzem.
Loading