
# Překlady

Blockstudio dodává překlady ve složce `languages`. WordPress je používá, když jazyk webu nebo jazyk v profilu uživatele odpovídá některému z nich. Funguje to stejně, ať už Blockstudio běží jako plugin, povinně načítaný plugin nebo balíček Composer.

## Dostupné jazyky

Blockstudio obsahuje překlady pro WordPress lokálních variant uvedených v přibaleném `languages/locales.json`, včetně regionálních a formálních/neformálních variant. Angličtina (`en_US`) je zdrojovým jazykem a nevyžaduje překladový soubor. Seznam kombinuje lokální varianty podporované WordPress z GlotPress s variantami dostupnými v WordPress překladovém API jádra.

Stávající německé překlady (`de_DE`) a formální německé překlady (`de_DE_formal`) zůstávají zachovány. Další překlady byly vytvořeny pomocí AI s modelem GPT-6 Luna a v hlavičkách `.po` jsou označeny jako strojově generované. Procházejí automatizovanými kontrolami úplnosti a formátu, ale rodilí mluvčí je zatím všechny nezkontrolovali. Opravy vítáme.

Překlady pokrývají ovládací prvky polí v editoru bloků, stránku pro správu, plátno, překryvné okno vývojářských nástrojů a zprávy koncových bodů REST. Štítky a nápovědy ve vlastních souborech `block.json` patří k vaší šabloně nebo pluginu a používají jeho textovou doménu.

Jazyk vyberte v **Nastavení > Obecné > Jazyk webu**, nebo si zvolte osobní jazyk ve svém profilu WordPress. Blockstudio toto místní nastavení automaticky použije. Nepřidává jazyky do výběru jazyků WordPress: daná místní varianta musí být dostupná také ve vaší instalaci WordPress. Na webu není potřeba žádný požadavek na AI, předplatné překladů ani další nastavení běhu.

## Přepsání překladu

Překladové soubory v `wp-content/languages/plugins` mají přednost před přibalenými soubory, a to pro řetězce PHP (`blockstudio-de_DE.mo` nebo `blockstudio-de_DE.l10n.php`) i skripty (jeden soubor pro každý identifikátor skriptu, například `blockstudio-de_DE-blockstudio-blocks.json`).

## Přispějte překladem

Každý jazyk je soubor `.po`, který můžete upravovat v libovolném textovém editoru nebo v překladovém nástroji, jako je Poedit. Opravy i nové jazyky vítáme formou pull requestů.

1. Chcete-li přidat jazyk, zkopírujte `languages/blockstudio.pot` do `languages/blockstudio-<locale>.po`, například `blockstudio-fr_FR.po`, a nastavte hlavičky `Language` a `Plural-Forms`. Chcete-li jazyk vylepšit, upravte jeho stávající soubor `.po`.
2. Přeložte řetězce. V překladu zachovejte zástupné symboly, například `%1$s`.
3. Spusťte `npm run i18n`. Vytvoří soubory `.mo`, `.l10n.php` a `.json`, které načítá WordPress.
4. Zahrňte soubor `.po` spolu s vygenerovanými soubory do commitu a otevřete pull request.

Pokud nemůžete spustit `npm`, stačí pull request obsahující samotný soubor `.po`. Vygenerované soubory lze přidat před sloučením.

## Generování chybějících překladů

Správci mohou generovat chybějící položky pomocí ověřeného Codex CLI. Jde o volitelný vývojářský příkaz, který WordPress nespouští:

```bash
npm run i18n:translate -- --dry-run
npm run i18n:translate
```

Výchozí model je `gpt-6-luna`. Chcete-li pracovat na jedné místní variantě, použijte `npm run i18n:translate -- --locale fr_FR`. Příkaz načte nejnovější zdrojové řetězce, doplní chybějící překlady a poté zkompiluje soubory `.mo`, `.l10n.php` a `.json` pro jednotlivé skripty. Do Codex se odesílají pouze řetězce veřejného rozhraní, jejich kontext a existující překlady, nikoli obsah webu ani údaje uživatelů.

Existující neprázdné překlady se nikdy nepřepisují. Dokončené dávky se ukládají, takže opětovné spuštění po přerušení pokračuje chybějící prací. Před uložením se ověřují zástupné symboly, například `%1$s`, značení HTML, technické identifikátory a požadované tvary množného čísla. Nejednoznačné položky a změněné zdrojové tvary množného čísla zůstávají k posouzení překladatelem. Pokud požadovaný model není dostupný, nepoužije se náhradní model.

`npm run i18n:locales` výslovně aktualizuje seznam místních variant a pravidla tvoření množného čísla z WordPress/GlotPress. `npm run i18n:coverage` ověřuje úplnost každé místní varianty v seznamu uloženém v repozitáři. Kontroly pokrytí ani běžná integrace CI nepoužívají AI ani nenačítají data o místních variantách. Možnosti dávkování, souběžného zpracování a obnovení najdete v souboru README repozitáře.

## Překladatelné řetězce v kódu

- PHP: použijte funkce WordPress s textovou doménou `blockstudio`, například `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importujte `__` z `@/utils/__` a předejte mu doslovný řetězec, například `__( 'Add row' )`. Řetězec sestavený za běhu nelze přeložit, proto pro každou variantu použijte jeden doslovný řetězec.
- Nový balíček skriptu s přeložitelnými řetězci potřebuje záznam v `scripts/i18n.ts` a volání `wp_set_script_translations()` se stejným identifikátorem a `Translations::script_path()`.

Po změně řetězců spusťte `npm run i18n`. Aktualizuje `languages/blockstudio.pot` a všechny soubory `.po`. Nové řetězce zůstávají v angličtině, dokud je nedoplní překladatel nebo `npm run i18n:translate`. CI spouští `npm run i18n:check` a `npm run i18n:coverage`, které odmítnou zastaralé zkompilované soubory, problémy s extrakcí nebo neúplné pokrytí lokalizací. Generování zůstává výslovnou akcí správce projektu.
