
# Preklady

Blockstudio dodáva svoje preklady v priečinku `languages`. WordPress ich používa, keď sa jazyk webu alebo jazyk v používateľskom profile zhoduje s niektorým z nich. Funguje to rovnako, keď Blockstudio beží ako doplnok, povinný doplnok alebo balík Composer.

## Dostupné jazyky

Blockstudio obsahuje preklady pre WordPress lokál zaznamenaných v pribalenom `languages/locales.json` vrátane regionálnych a formálnych/neformálnych variantov. Angličtina (`en_US`) je zdrojový jazyk a nepotrebuje prekladový súbor. Zoznam spája lokály podporované WordPress z GlotPressu s variantmi dostupnými v prekladovom API jadra WordPress.

Existujúce preklady do nemčiny (`de_DE`) a formálnej nemčiny (`de_DE_formal`) zostávajú zachované. Ďalšie preklady vytvoril model GPT-6 Luna a v hlavičkách `.po` sú označené ako strojovo generované. Prešli automatizovanými kontrolami úplnosti a formátu, no nie všetky skontrolovali rodení hovoriaci. Opravy sú vítané.

Preklady pokrývajú ovládacie prvky polí v editore blokov, stránku administrácie, plátno, prekryvnú vrstvu vývojárskych nástrojov a správy koncových bodov REST. Popisy a pomocné texty vo vlastných súboroch `block.json` patria k vašej téme alebo doplnku a používajú jeho textovú doménu.

Jazyk vyberte v **Nastavenia > Všeobecné > Jazyk webu** alebo si zvoľte osobný jazyk vo svojom profile WordPress. Blockstudio toto miestne nastavenie používa automaticky. Nepridáva jazyky do výberu jazykov WordPress: dané miestne nastavenie musí byť dostupné aj vo vašej inštalácii WordPress. Na vašom webe nie je potrebná požiadavka na AI, predplatné prekladov ani ďalšie nastavenie behu.

## Prepísanie prekladu

Prekladové súbory v `wp-content/languages/plugins` majú prednosť pred pribalenými súbormi, a to pre reťazce PHP (`blockstudio-de_DE.mo` alebo `blockstudio-de_DE.l10n.php`), ako aj pre skripty (jeden súbor pre každý identifikátor skriptu, napríklad `blockstudio-de_DE-blockstudio-blocks.json`).

## Prispievanie do prekladov

Každý jazyk je súbor `.po`, ktorý môžete upravovať v ľubovoľnom textovom editore alebo prekladateľskom nástroji, napríklad Poedit. Opravy a nové jazyky sú vítané formou požiadaviek na začlenenie zmien.

1. Ak chcete pridať jazyk, skopírujte `languages/blockstudio.pot` do `languages/blockstudio-<locale>.po`, napríklad `blockstudio-fr_FR.po`, a nastavte hlavičky `Language` a `Plural-Forms`. Ak chcete vylepšiť jazyk, upravte jeho existujúci súbor `.po`.
2. Preložte reťazce. V preklade zachovajte zástupné symboly, napríklad `%1$s`.
3. Spustite `npm run i18n`. Vytvorí súbory `.mo`, `.l10n.php` a `.json`, ktoré načítava WordPress.
4. Súbor `.po` odovzdajte spolu s vygenerovanými súbormi a otvorte požiadavku na začlenenie zmien.

Ak nemôžete spustiť `npm`, postačí požiadavka na začlenenie zmien obsahujúca iba súbor `.po`. Vygenerované súbory možno pridať pred zlúčením zmien.

## Generovanie chýbajúcich prekladov

Správcovia môžu vygenerovať chýbajúce položky pomocou overeného Codex CLI. Ide o voliteľný vývojársky príkaz, ktorý WordPress nespúšťa:

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

Predvolený model je `gpt-6-luna`. Ak chcete pracovať s jedným miestnym nastavením, použite `npm run i18n:translate -- --locale fr_FR`. Príkaz extrahuje najnovšie zdrojové reťazce, doplní chýbajúce preklady a potom skompiluje súbory `.mo`, `.l10n.php` a `.json` pre každý skript. Do Codex sa odosielajú iba reťazce verejného rozhrania, ich kontext a existujúce tvary, nie obsah webu ani údaje používateľov.

Existujúce neprázdne preklady sa nikdy neprepisujú. Dokončené dávky sa ukladajú, takže opätovným spustením po prerušení sa pokračuje v chýbajúcej práci. Pred uložením sa overujú zástupné symboly, napríklad `%1$s`, značky HTML, technické identifikátory a požadované tvary množného čísla. Nejasné položky a zmenené množné čísla zdroja sa ponechávajú na kontrolu prekladateľovi. Ak požadovaný model nie je dostupný, nepoužije sa náhradný model.

`npm run i18n:locales` výslovne obnoví zoznam lokál a pravidlá množného čísla z WordPress/GlotPressu. `npm run i18n:coverage` overí, či sú úplné všetky lokály v zozname uloženom v repozitári. Kontroly pokrytia ani bežná integrácia priebežne nespúšťajú AI a nenačítavajú údaje o lokáloch. Možnosti dávkovania, súbežnosti a obnovy nájdete v README repozitára.

## Reťazce v kóde určené na preklad

- PHP: použite funkcie WordPress s textovou doménou `blockstudio`, napríklad `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importujte `__` z `@/utils/__` a odovzdajte doslovný reťazec, napríklad `__( 'Add row' )`. Reťazec zostavený počas behu sa nedá preložiť, preto pre každý variant použite jeden doslovný reťazec.
- Nový balík skriptov s preložiteľnými reťazcami potrebuje záznam v `scripts/i18n.ts` a volanie `wp_set_script_translations()` s rovnakým identifikátorom a `Translations::script_path()`.

Po zmene reťazcov spustite `npm run i18n`. Aktualizuje `languages/blockstudio.pot` a každý súbor `.po`. Nové reťazce zostanú v angličtine, kým ich nevyplní prekladateľ alebo `npm run i18n:translate`. CI spúšťa `npm run i18n:check` a `npm run i18n:coverage`, ktoré odmietnu zastarané skompilované súbory, problémy pri extrakcii alebo neúplné pokrytie jazykovými verziami. Generovanie zostáva výslovným úkonom správcu.
