
# Vertimai

Blockstudio pateikia vertimus aplanke `languages`. WordPress juos naudoja, kai svetainės arba naudotojo profilyje nustatyta kalba sutampa su viena iš jų. Tai veikia vienodai, kai Blockstudio naudojamas kaip papildinys, privalomas naudoti papildinys arba Composer paketas.

## Prieinamos kalbos

Blockstudio pateikia vertimus WordPress lokalėms, įrašytoms kartu pateikiamame `languages/locales.json`, įskaitant regioninius ir formalius bei neformalius variantus. Anglų kalba (`en_US`) yra šaltinio kalba, todėl jai vertimo failo nereikia. Sąraše sujungtos WordPress palaikomos GlotPress lokalės ir variantai, kuriuos galima rasti WordPress pagrindinio kodo vertimų API.

Esami vokiečių (`de_DE`) ir formaliosios vokiečių kalbos (`de_DE_formal`) vertimai išsaugoti. Papildomus vertimus automatiškai sugeneravo DI, naudodamas GPT-6 Luna; jų `.po` antraštėse jie pažymėti kaip sugeneruoti mašinos. Jie atitinka automatinius išsamumo ir formato patikrinimus, tačiau gimtakalbiai juos peržiūrėjo ne visus. Pataisymai laukiami.

Vertimai apima blokų redaktoriaus laukų valdiklius, administravimo puslapį, drobę, kūrimo įrankių perdangą ir REST galinių punktų pranešimus. Jūsų `block.json` failuose esantys užrašai ir pagalbos tekstai priklauso jūsų temai arba papildiniui ir naudoja jo teksto sritį.

Pasirinkite kalbą skiltyje **Nustatymai > Bendrieji > Svetainės kalba** arba nustatykite asmeninę kalbą savo WordPress profilyje. Blockstudio automatiškai naudoja šią lokalę. Jis neprideda kalbų prie WordPress kalbų pasirinkimo sąrašo: lokalė taip pat turi būti prieinama jūsų WordPress įdiegtyje. Svetainėje nereikia siųsti DI užklausų, prenumeruoti vertimo paslaugos ar nustatyti papildomų vykdymo parametrų.

## Vertimo perrašymas

Vertimo failai, esantys `wp-content/languages/plugins`, turi pirmenybę prieš kartu pateikiamus failus tiek PHP eilutėms (`blockstudio-de_DE.mo` arba `blockstudio-de_DE.l10n.php`), tiek scenarijams (po vieną failą kiekvienam scenarijaus identifikatoriui, pavyzdžiui, `blockstudio-de_DE-blockstudio-blocks.json`).

## Prisidėkite prie vertimo

Kiekvienos kalbos vertimas yra `.po` failas, kurį galite redaguoti bet kuria tekstų rengykle arba vertimo įrankiu, pavyzdžiui, Poedit. Pataisymai ir naujos kalbos laukiami kaip užklausos sujungti pakeitimus.

1. Norėdami pridėti kalbą, nukopijuokite `languages/blockstudio.pot` į `languages/blockstudio-<locale>.po`, pavyzdžiui, `blockstudio-fr_FR.po`, ir nustatykite `Language` bei `Plural-Forms` antraštes. Norėdami patobulinti kalbos vertimą, redaguokite esamą `.po` failą.
2. Išverskite eilutes. Vertime palikite vietaženklius, pavyzdžiui, `%1$s`.
3. Paleiskite `npm run i18n`. Jis įrašo `.mo`, `.l10n.php` ir `.json` failus, kuriuos įkelia WordPress.
4. Pateikite `.po` failą kartu su sugeneruotais failais ir atidarykite užklausą sujungti pakeitimus.

Jei negalite paleisti `npm`, pakanka pateikti užklausą sujungti pakeitimus, kurioje būtų tik `.po` failas. Sugeneruotus failus galima pridėti prieš sujungiant pakeitimus.

## Trūkstamų vertimų generavimas

Prižiūrėtojai gali sugeneruoti trūkstamus įrašus naudodami autentifikuotą Codex CLI. Tai pasirenkama kūrimo komanda, kurios WordPress nevykdo:

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

Numatytasis modelis yra `gpt-6-luna`. Norėdami dirbti su viena lokale, naudokite `npm run i18n:translate -- --locale fr_FR`. Komanda ištraukia naujausias šaltinio eilutes, užpildo trūkstamus vertimus, tada sukompiliuoja `.mo`, `.l10n.php` ir kiekvieno scenarijaus `.json` failus. Codex siunčiamos tik viešosios sąsajos eilutės, jų kontekstas ir esamos formos, o ne svetainės turinys ar naudotojų duomenys.

Esami netušti vertimai niekada neperrašomi. Užbaigtos paketų partijos išsaugomos, todėl po pertrūkio paleidus komandą iš naujo tęsiamas trūkstamas darbas. Prieš įrašant patikrinami vietaženkliai, pavyzdžiui, `%1$s`, HTML žymėjimas, techniniai identifikatoriai ir privalomos daugiskaitos formos. Neaiškūs įrašai ir pasikeitusios šaltinio daugiskaitos formos paliekamos vertėjui peržiūrėti. Jei prašomas modelis nepasiekiamas, kitas modelis nenaudojamas.

`npm run i18n:locales` aiškiai atnaujina lokalių sąrašą ir daugiskaitos taisykles iš WordPress/GlotPress. `npm run i18n:coverage` patikrina, ar visų į įrašytą sąrašą įtrauktų lokalių vertimai yra išsamūs. Nei aprėpties patikros, nei įprastas CI nenaudoja DI ar negauna lokalės duomenų. Paketinio apdorojimo, lygiagretumo ir atkūrimo parinktis rasite saugyklos README.

## Verčiamos kodo eilutės

- PHP: naudokite funkcijas WordPress su teksto domenu `blockstudio`, pavyzdžiui, `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importuokite `__` iš `@/utils/__` ir perduokite literalų eilutės tekstą, pavyzdžiui, `__( 'Add row' )`. Vykdymo metu sudarytos eilutės išversti negalima, todėl kiekvienam variantui naudokite atskirą literalų eilutės tekstą.
- Naujam scenarijaus pakete esančiam verčiamam tekstui reikia įrašo faile `scripts/i18n.ts` ir iškvietimo `wp_set_script_translations()` su tuo pačiu deskriptoriumi bei `Translations::script_path()`.

Pakeitę eilutes, paleiskite `npm run i18n`. Ji atnaujina `languages/blockstudio.pot` ir visus `.po` failus. Naujos eilutės lieka anglų kalba, kol vertėjas arba `npm run i18n:translate` jas užpildo. CI vykdo `npm run i18n:check` ir `npm run i18n:coverage`, kurios atmeta pasenusius sukompiliuotus failus, ištraukimo problemas arba neužbaigtą lokalės aprėptį. Generavimas lieka aiškiai prižiūrėtojo atliekamu veiksmu.
