
# Traduceri

Blockstudio include traducerile în folderul `languages`. WordPress le folosește atunci când limba site-ului sau limba din profilul unui utilizator corespunde uneia dintre ele. Acest lucru funcționează la fel și când Blockstudio rulează ca plugin, plugin obligatoriu sau pachet Composer.

## Limbi disponibile

Blockstudio include traduceri pentru WordPress setări regionale înregistrate în `languages/locales.json` inclus, inclusiv variante regionale și formale/informale. Engleza (`en_US`) este limba sursă și nu necesită un fișier de traducere. Lista combină setările regionale acceptate de WordPress din GlotPress cu variantele disponibile din WordPress de traduceri ale nucleului API.

Traducerile existente în germană (`de_DE`) și germană formală (`de_DE_formal`) sunt păstrate. Traducerile suplimentare sunt generate cu AI folosind GPT-6 Luna și marcate ca generate automat în antetele `.po`. Trec verificările automate de completitudine și format, dar nu au fost toate revizuite de vorbitori nativi. Corecturile sunt binevenite.

Traducerile acoperă controalele câmpurilor din editorul de blocuri, pagina de administrare, canvas, suprapunerea devtools și mesajele punctelor finale REST. Etichetele și textele de ajutor din propriile fișiere `block.json` aparțin temei sau pluginului dvs. și folosesc domeniul său de text.

Selectați limba în **Setări > General > Limba site-ului** sau alegeți o limbă personală în profilul dvs. WordPress. Blockstudio folosește automat acea setare regională. Nu adaugă limbi în selectorul de limbi WordPress: o setare regională trebuie să fie disponibilă și în instalarea WordPress. Site-ul dvs. nu are nevoie de solicitări către AI, abonament de traducere sau setări suplimentare de execuție.

## Suprascrieți o traducere

Fișierele de traducere din `wp-content/languages/plugins` au prioritate față de cele incluse, atât pentru șirurile PHP (`blockstudio-de_DE.mo` sau `blockstudio-de_DE.l10n.php`), cât și pentru scripturi (un fișier pentru fiecare identificator de script, de exemplu `blockstudio-de_DE-blockstudio-blocks.json`).

## Contribuiți la o traducere

Fiecare limbă este un fișier `.po` pe care îl puteți edita cu orice editor de text sau cu un instrument de traducere precum Poedit. Corecturile și limbile noi sunt binevenite ca solicitări de integrare.

1. Pentru a adăuga o limbă, copiați `languages/blockstudio.pot` în `languages/blockstudio-<locale>.po`, de exemplu `blockstudio-fr_FR.po`, și setați antetele `Language` și `Plural-Forms`. Pentru a îmbunătăți o limbă, editați fișierul `.po` existent.
2. Traduceți șirurile. Păstrați în traducere substituenți precum `%1$s`.
3. Rulați `npm run i18n`. Acesta scrie fișierele `.mo`, `.l10n.php` și `.json` pe care le încarcă WordPress.
4. Integrați fișierul `.po` împreună cu fișierele generate și deschideți o solicitare de integrare.

Dacă nu puteți rula `npm`, este în regulă să trimiteți o solicitare de integrare doar cu fișierul `.po`. Fișierele generate pot fi adăugate înainte de îmbinare.

## Generați traducerile lipsă

Responsabilii de întreținere pot genera intrările lipsă cu un Codex CLI autentificat. Aceasta este o comandă de dezvoltare opțională, nu ceva ce rulează WordPress:

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

Modelul implicit este `gpt-6-luna`. Pentru a lucra la o singură setare regională, folosiți `npm run i18n:translate -- --locale fr_FR`. Comanda extrage cele mai recente șiruri sursă, completează traducerile lipsă, apoi compilează fișierele `.mo`, `.l10n.php` și fișierele `.json` pentru fiecare script. Către Codex sunt trimise doar șiruri din interfața publică, contextul lor și formele existente, nu conținutul site-ului sau datele utilizatorilor.

Traducerile existente care nu sunt goale nu sunt înlocuite niciodată. Loturile finalizate sunt salvate, astfel că reluarea după o întrerupere continuă lucrul lipsă. Înainte de salvare sunt validați substituenți precum `%1$s`, marcajele HTML, identificatorii tehnici și formele de plural necesare. Intrările neclare și pluralele sursă modificate sunt lăsate pentru revizuirea unui traducător. Nu se folosește un model alternativ dacă modelul solicitat nu este disponibil.

`npm run i18n:locales` actualizează explicit lista setărilor regionale și regulile de plural din WordPress/GlotPress. `npm run i18n:coverage` verifică dacă toate setările regionale din listă sunt complete. Nici verificările de acoperire, nici CI obișnuit nu apelează AI sau preia date despre setările regionale. Consultați README din depozit pentru opțiuni de procesare în loturi, concurență și recuperare.

## Șiruri traductibile în cod

- PHP: folosiți funcțiile WordPress cu domeniul de text `blockstudio`, de exemplu `__( 'Invalid block.', 'blockstudio' )`.
- JavaScript: importați `__` din `@/utils/__` și transmiteți un șir literal, de exemplu `__( 'Add row' )`. Un șir construit în timpul execuției nu poate fi tradus, așa că folosiți câte un șir literal pentru fiecare variantă.
- Un nou pachet de scripturi cu șiruri traductibile are nevoie de o intrare în `scripts/i18n.ts` și de un apel la `wp_set_script_translations()` cu același identificator și `Translations::script_path()`.

După modificarea șirurilor, rulați `npm run i18n`. Acesta actualizează `languages/blockstudio.pot` și fiecare fișier `.po`. Șirurile noi rămân în engleză până când un traducător sau `npm run i18n:translate` le completează. CI rulează `npm run i18n:check` și `npm run i18n:coverage`, care resping fișierele compilate învechite, problemele de extragere sau acoperirea incompletă a localizărilor. Generarea rămâne o acțiune explicită a responsabilului cu întreținerea.
