
# Tulkojumi

Blockstudio iekļauj savus tulkojumus mapē `languages`. WordPress tos izmanto, ja vietnes vai lietotāja profila valoda atbilst kādai no šīm valodām. Tas darbojas vienādi neatkarīgi no tā, vai Blockstudio darbojas kā spraudnis, obligāti ielādējams spraudnis vai Composer pakotne.

## Pieejamās valodas

Blockstudio ietver tulkojumus WordPress lokālēm, kas norādītas komplektā iekļautajā `languages/locales.json`, tostarp reģionālajiem un formālā/neformālā stila variantiem. Avota valoda ir angļu (`en_US`), un tai tulkojuma fails nav vajadzīgs. Sarakstā apvienotas WordPress atbalstītās lokāles no GlotPress un varianti, kas pieejami WordPress kodola tulkojumu API.

Esošie tulkojumi vācu (`de_DE`) un formālajā vācu valodā (`de_DE_formal`) ir saglabāti. Pārējos tulkojumus ģenerējis mākslīgais intelekts, izmantojot GPT-6 Luna; to `.po` galvenēs tie ir atzīmēti kā mašīntulkojumi. Tie iztur automātiskās pilnīguma un formāta pārbaudes, taču ne visus ir pārbaudījuši dzimtās valodas runātāji. Labojumi ir laipni gaidīti.

Tulkojumi aptver bloku redaktora lauku vadīklas, administrēšanas lapu, kanvu, izstrādātāju rīku pārklājumu un REST galapunktu ziņojumus. Pašu `block.json` failu etiķetes un palīdzības teksti pieder jūsu dizainam vai spraudnim un izmanto tā teksta domēnu.

Izvēlieties valodu sadaļā **Iestatījumi > Vispārīgi > Vietnes valoda** vai izvēlieties personīgo valodu savā WordPress profilā. Blockstudio šo lokāli izmanto automātiski. Tas nepievieno valodas WordPress valodu atlasītājam: lokālei jābūt pieejamai arī jūsu WordPress instalācijā. Vietnei nav vajadzīgs AI pieprasījums, tulkošanas abonements vai papildu izpildlaika iestatījums.

## Tulkojuma aizstāšana

Tulkojumu faili mapē `wp-content/languages/plugins` ir prioritāri par komplektā iekļautajiem failiem gan PHP virknēm (`blockstudio-de_DE.mo` vai `blockstudio-de_DE.l10n.php`), gan skriptiem (pa vienam failam katram skripta rokturim, piemēram, `blockstudio-de_DE-blockstudio-blocks.json`).

## Tulkojuma veidošana

Katras valodas tulkojums ir `.po` fails, ko var rediģēt ar jebkuru teksta redaktoru vai tulkošanas rīku, piemēram, Poedit. Labojumi un jaunas valodas ir laipni gaidīti kā izmaiņu pieprasījumi.

1. Lai pievienotu valodu, kopējiet `languages/blockstudio.pot` uz `languages/blockstudio-<locale>.po`, piemēram, `blockstudio-fr_FR.po`, un iestatiet galvenes `Language` un `Plural-Forms`. Lai uzlabotu tulkojumu, rediģējiet attiecīgās valodas esošo `.po` failu.
2. Iztulkojiet virknes. Saglabājiet tulkojumā vietturus, piemēram, `%1$s`.
3. Palaidiet `npm run i18n`. Tas izveido `.mo`, `.l10n.php` un `.json` failus, ko ielādē WordPress.
4. Iekļaujiet `.po` failu kopā ar ģenerētajiem failiem un atveriet izmaiņu pieprasījumu.

Ja nevarat palaist `npm`, pietiek ar izmaiņu pieprasījumu, kurā iekļauts tikai `.po` fails. Ģenerētos failus var pievienot pirms apvienošanas.

## Trūkstošo tulkojumu ģenerēšana

Uzturētāji var ģenerēt trūkstošos ierakstus, izmantojot autentificētu Codex CLI. Šī ir neobligāta izstrādes komanda, ko WordPress nepalaiž:

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

Noklusējuma modelis ir `gpt-6-luna`. Lai strādātu ar vienu lokāli, izmantojiet `npm run i18n:translate -- --locale fr_FR`. Komanda izgūst jaunākās avota virknes, aizpilda trūkstošos tulkojumus un pēc tam kompilē `.mo`, `.l10n.php` un katram skriptam paredzētos `.json` failus. Uz Codex tiek nosūtītas tikai publiskās saskarnes virknes, to konteksts un esošie varianti, nevis vietnes saturs vai lietotāju dati.

Esošie tulkojumi, kas nav tukši, nekad netiek aizstāti. Pabeigtās paketes tiek saglabātas, tāpēc pēc pārtraukuma komandu var palaist atkārtoti, lai turpinātu trūkstošo darbu. Pirms saglabāšanas tiek pārbaudīti vietturi, piemēram, `%1$s`, HTML marķējums, tehniskie identifikatori un obligātās daudzskaitļa formas. Neskaidrie ieraksti un mainītās avota teksta daudzskaitļa formas tiek atstātas tulkotāja pārbaudei. Ja pieprasītais modelis nav pieejams, cits modelis netiek izmantots kā aizstājējs.

`npm run i18n:locales` nepārprotami atjauno lokāļu sarakstu un daudzskaitļa veidošanas noteikumus no WordPress/GlotPress. `npm run i18n:coverage` pārbauda, vai visas lokāles reģistrētajā sarakstā ir pilnīgas. Ne pilnīguma pārbaudes, ne parastā CI neizmanto AI un neiegūst lokāļu datus. Paketizēšanas, vienlaicīgas izpildes un atkopšanas iespējas skatiet repozitorija README.

## Tulkojamās virknes kodā

- PHP: izmantojiet `blockstudio` teksta domēna funkcijas WordPress, piemēram, `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importējiet `__` no `@/utils/__` un nododiet burtisku virkni, piemēram, `__( 'Add row' )`. Virkni, kas tiek veidota izpildlaikā, nevar tulkot, tāpēc katram variantam izmantojiet atsevišķu burtisku virkni.
- Jaunam skripta komplektam ar tulkojamām virknēm nepieciešams ieraksts failā `scripts/i18n.ts` un izsaukums `wp_set_script_translations()` ar to pašu apstrādātāju un `Translations::script_path()`.

Pēc virkņu maiņas palaidiet `npm run i18n`. Tas atjaunina `languages/blockstudio.pot` un visus `.po` failus. Jaunās virknes paliek angļu valodā, līdz tulkotājs vai `npm run i18n:translate` tās aizpilda. CI palaiž `npm run i18n:check` un `npm run i18n:coverage`, kas noraida novecojušus kompilētos failus, izvilkšanas problēmas vai nepilnīgu lokalizāciju pārklājumu. Ģenerēšana joprojām ir skaidri veicama uzturētāja darbība.
