
# Prevodi

Blockstudio vključuje prevode v mapi `languages`. WordPress jih uporabi, kadar se jezik spletnega mesta ali jezik v uporabniškem profilu ujema z enim od njih. Enako velja, kadar Blockstudio deluje kot vtičnik, obvezni vtičnik ali paket Composer.

## Razpoložljivi jeziki

Blockstudio vključuje prevode za WordPress jezikovnih različic, zabeleženih v priloženem `languages/locales.json`, vključno z regionalnimi ter formalnimi in neformalnimi različicami. Angleščina (`en_US`) je izvorni jezik, zato zanjo prevodna datoteka ni potrebna. Seznam združuje jezikovne različice, ki jih podpira WordPress v GlotPressu, in različice, ki so na voljo v osrednjem prevodnem WordPress za API.

Obstoječa nemška (`de_DE`) in formalna nemška (`de_DE_formal`) prevoda sta ohranjena. Dodatni prevodi so ustvarjeni z umetno inteligenco GPT-6 Luna in v svojih glavah `.po` označeni kot strojno ustvarjeni. Prestali so samodejno preverjanje popolnosti in oblike, vendar jih naravni govorci niso pregledali vseh. Popravki so dobrodošli.

Prevodi zajemajo kontrolnike polj v urejevalniku blokov, skrbniško stran, platno, prekrivni vmesnik za razvojna orodja in sporočila končnih točk REST. Oznake in besedila pomoči v vaših datotekah `block.json` pripadajo vaši temi ali vtičniku in uporabljajo njuno besedilno domeno.

Jezik izberite v **Settings > General > Site Language** ali pa v svojem profilu WordPress izberite osebni jezik. Blockstudio samodejno uporabi to jezikovno različico. Jezikov ne doda v izbirnik jezikov WordPress: jezikovna različica mora biti na voljo tudi v vaši namestitvi WordPress. Na vašem spletnem mestu niso potrebni zahteva za umetno inteligenco, naročnina na prevajanje ali dodatna nastavitev izvajalnega okolja.

## Prepis prevoda

Prevajalne datoteke v `wp-content/languages/plugins` imajo prednost pred priloženimi datotekami, tako za nize PHP (`blockstudio-de_DE.mo` ali `blockstudio-de_DE.l10n.php`) kot za skripte (ena datoteka za vsako ročico skripta, na primer `blockstudio-de_DE-blockstudio-blocks.json`).

## Prispevajte prevod

Vsak jezik je datoteka `.po`, ki jo lahko urejate s katerim koli urejevalnikom besedila ali prevajalskim orodjem, kot je Poedit. Dobrodošli so popravki in prevodi v nove jezike, poslani kot predlogi za združitev.

1. Če želite dodati jezik, kopirajte `languages/blockstudio.pot` v `languages/blockstudio-<locale>.po`, na primer `blockstudio-fr_FR.po`, in nastavite glavi `Language` in `Plural-Forms`. Če želite izboljšati jezik, uredite njegovo obstoječo datoteko `.po`.
2. Prevedite nize. V prevodu ohranite nadomestne oznake, kot je `%1$s`.
3. Zaženite `npm run i18n`. Ustvari datoteke `.mo`, `.l10n.php` in `.json`, ki jih naloži WordPress.
4. Datoteko `.po` skupaj z ustvarjenimi datotekami vključite v objavo sprememb in odprite predlog za združitev.

Če ne morete zagnati `npm`, zadošča predlog za združitev, ki vsebuje samo datoteko `.po`. Ustvarjene datoteke lahko dodate pred združitvijo.

## Ustvarjanje manjkajočih prevodov

Vzdrževalci lahko ustvarijo manjkajoče vnose z overjenim Codex CLI. To je izbirni razvojni ukaz, ki ga WordPress ne izvaja:

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

Privzeti model je `gpt-6-luna`. Če želite delati na posamezni jezikovni različici, uporabite `npm run i18n:translate -- --locale fr_FR`. Ukaz pridobi najnovejše izvorne nize, dopolni manjkajoče prevode in nato prevede datoteke `.mo`, `.l10n.php` ter datoteke `.json` za posamezne skripte. V Codex se pošljejo samo nizi javnega vmesnika, njihov kontekst in obstoječe oblike, ne pa vsebina spletnega mesta ali uporabniški podatki.

Obstoječi neprazni prevodi se nikoli ne prepišejo. Dokončane skupine se shranijo, zato se ob ponovnem zagonu po prekinitvi nadaljuje manjkajoče delo. Pred shranjevanjem se preverijo nadomestne oznake, kot sta `%1$s`, oznake HTML, tehnični identifikatorji in zahtevane množinske oblike. Nejasni vnosi in spremenjene množinske oblike izvornega besedila so prepuščeni pregledu prevajalca. Če zahtevani model ni na voljo, se ne uporabi nadomestnega modela.

`npm run i18n:locales` izrecno osveži seznam jezikovnih različic in pravila za množino iz WordPress/GlotPressa. `npm run i18n:coverage` preveri, ali so vse jezikovne različice na seznamu v repozitoriju popolne. Preverjanje pokritosti in običajni CI ne kličeta umetne inteligence in ne pridobivata jezikovnih podatkov. Možnosti paketne obdelave, sočasnega izvajanja in obnovitve so opisane v README repozitorija.

## Nizi, ki jih je mogoče prevesti v kodi

- PHP: uporabite funkcije WordPress z besedilno domeno `blockstudio`, na primer `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: uvozite `__` iz `@/utils/__` in podajte dobesedni niz, na primer `__( 'Add row' )`. Niza, sestavljenega med izvajanjem, ni mogoče prevesti, zato za vsako različico uporabite en dobesedni niz.
- Nov sveženj skript z nizi, ki jih je mogoče prevesti, potrebuje vnos v `scripts/i18n.ts` in klic `wp_set_script_translations()` z istim ročajem in `Translations::script_path()`.

Po spremembi nizov zaženite `npm run i18n`. Posodobi `languages/blockstudio.pot` in vsako datoteko `.po`. Novi nizi ostanejo v angleščini, dokler jih ne izpolni prevajalec ali `npm run i18n:translate`. CI zažene `npm run i18n:check` in `npm run i18n:coverage`, ki zavrneta zastarele prevedene datoteke, težave pri ekstrakciji ali nepopolno pokritost jezikovnih različic. Generiranje ostaja izrecno opravilo vzdrževalca.
