
# Fordítások

A Blockstudio a fordításait a `languages` mappában tárolja. A WordPress ezeket használja, ha a webhely nyelve vagy a felhasználói profil nyelve megegyezik valamelyikükkel. Ez ugyanúgy működik akkor is, ha a Blockstudio bővítményként, kötelezően betöltendő bővítményként vagy Composer csomagként fut.

## Elérhető nyelvek

A Blockstudio tartalmaz fordításokat a mellékelt `languages/locales.json` fájlban rögzített WordPress területi beállításokhoz, beleértve a regionális, valamint a formális és informális változatokat. Az angol (`en_US`) a forrásnyelv, ezért nincs szükség hozzá fordítási fájlra. A lista egyesíti a GlotPress által támogatott WordPress területi beállításokat az WordPress magfordítási API változataival.

A meglévő német (`de_DE`) és formális német (`de_DE_formal`) fordítások megmaradnak. A további fordításokat a GPT-6 Luna generálta, és a `.po` fejléceik gépi fordításként jelölik őket. Sikeresen átmennek az automatizált teljességi és formátumellenőrzéseken, de nem mindegyiket ellenőrizték anyanyelvi beszélők. A javításokat szívesen fogadjuk.

A fordítások a blokkszerkesztő mezővezérlőire, az adminisztrációs oldalra, a vászonra, a fejlesztői eszközök átfedő felületére és a REST végpontok üzeneteire terjednek ki. A saját `block.json` fájljaidban szereplő címkék és súgószövegek a témádhoz vagy bővítményedhez tartoznak, és annak szövegtartományát használják.

Válaszd ki a nyelvet a **Beállítások > Általános > A webhely nyelve** részen, vagy állíts be személyes nyelvet a WordPress profilodban. A Blockstudio automatikusan ezt a területi beállítást használja. Nem ad hozzá nyelveket a WordPress nyelvválasztójához: egy területi beállításnak a WordPress telepítésedben is elérhetőnek kell lennie. A webhelyeden nincs szükség AI-kérésre, fordítási előfizetésre vagy további futásidejű beállításra.

## Fordítás felülbírálása

A `wp-content/languages/plugins` mappában található fordítási fájlok elsőbbséget élveznek a mellékelt fájlokkal szemben, mind a PHP karakterláncok (`blockstudio-de_DE.mo` vagy `blockstudio-de_DE.l10n.php`), mind a szkriptek esetében (minden szkriptkezelőhöz egy fájl, például `blockstudio-de_DE-blockstudio-blocks.json`).

## Fordítás beküldése

Minden nyelv egy `.po` fájlból áll, amelyet bármely szövegszerkesztővel vagy fordítóeszközzel, például a Poedittel szerkeszthetsz. A javításokat és az új nyelveket pull requestként szívesen fogadjuk.

1. Nyelv hozzáadásához másold a `languages/blockstudio.pot` fájlt ide: `languages/blockstudio-<locale>.po`, például `blockstudio-fr_FR.po` néven, majd állítsd be a `Language` és `Plural-Forms` fejléceket. Egy nyelv javításához szerkeszd a meglévő `.po` fájlt.
2. Fordítsd le a karakterláncokat. A fordításban hagyd meg az olyan helyőrzőket, mint a `%1$s`.
3. Futtasd a `npm run i18n` parancsot. Ez létrehozza az `.mo`, `.l10n.php` és `.json` fájlokat, amelyeket a WordPress betölt.
4. Véglegesítsd a `.po` fájlt a generált fájlokkal együtt, majd nyiss egy pull requestet.

Ha nem tudod futtatni a `npm` parancsot, a kizárólag a `.po` fájlt tartalmazó pull request is megfelelő. A generált fájlok az összevonás előtt hozzáadhatók.

## Hiányzó fordítások generálása

A karbantartók hitelesített Codex CLI használatával generálhatják a hiányzó bejegyzéseket. Ez egy opcionális fejlesztői parancs, amelyet a WordPress nem futtat:

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

Az alapértelmezett modell: `gpt-6-luna`. Egyetlen területi beállítás fordításához használd ezt: `npm run i18n:translate -- --locale fr_FR`. A parancs kinyeri a legfrissebb forráskarakterláncokat, pótolja a hiányzó fordításokat, majd lefordítja az `.mo`, `.l10n.php` és szkriptenkénti `.json` fájlokat. Az Codex részére csak nyilvános felületi karakterláncok, azok kontextusa és a meglévő alakok kerülnek elküldésre, webhelytartalom vagy felhasználói adat nem.

A meglévő, nem üres fordításokat a rendszer soha nem cseréli le. Az elkészült kötegeket elmenti, így megszakítás után újrafuttatva a hiányzó munkát folytatja. Mentés előtt ellenőrzi az olyan helyőrzőket, mint a `%1$s`, a HTML jelöléseket, a műszaki azonosítókat és a kötelező többes számú alakokat. Az ellenőrzést igénylő bejegyzések és a megváltozott forrásoldali többes számú alakok fordítói felülvizsgálatra várnak. Ha a kért modell nem érhető el, a rendszer nem vált át másik modellre.

A `npm run i18n:locales` kifejezetten frissíti a területi beállítások listáját és a többes számú szabályokat a WordPress/GlotPress forrásból. A `npm run i18n:coverage` ellenőrzi, hogy a verziókezelésben rögzített lista minden területi beállítása teljes-e. Sem a lefedettség ellenőrzése, sem a szokásos CI nem hív AI-t, és nem tölt le területi beállításokra vonatkozó adatokat. A kötegelt feldolgozásról, a párhuzamosságról és a helyreállítási lehetőségekről a tároló README fájljában olvashatsz.

## Fordítható karakterláncok a kódban

- PHP: használja a `blockstudio` szövegtartományhoz tartozó WordPress függvényeket, például: `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importálja a `__` elemet innen: `@/utils/__`, és adjon át egy literális karakterláncot, például: `__( 'Add row' )`. A futásidőben összeállított karakterlánc nem fordítható le, ezért minden változathoz egyetlen literális karakterláncot használjon.
- A fordítható karakterláncokat tartalmazó új scriptcsomaghoz bejegyzés szükséges a `scripts/i18n.ts` fájlban, valamint egy `wp_set_script_translations()` hívás ugyanazzal a handle-lel és a `Translations::script_path()` értékkel.

A karakterláncok módosítása után futtassa a `npm run i18n` parancsot. Ez frissíti a `languages/blockstudio.pot` fájlt és az összes `.po` fájlt. Az új karakterláncok angolul maradnak, amíg egy fordító vagy a `npm run i18n:translate` ki nem tölti őket. A CI futtatja a `npm run i18n:check` és a `npm run i18n:coverage` ellenőrzést, amelyek elutasítják az elavult lefordított fájlokat, a kinyerési problémákat vagy a hiányos nyelvi lefedettséget. A generálás továbbra is a karbantartó kifejezett művelete marad.
