Treceți la conținut
Insignă

Titlu

Subtitlu

Titlu

Paragraf1

Paragraf2

Paragraf3

Titlu

Paragraf1

Paragraf2

Paragraf3

Titlu

Subtitlu

Identificatori de setări regionale (BCP 47)

Etichetele BCP 47, precum en-US sau zh-Hans-CN, codifică limba, alfabetul și regiunea. Acestea stau la baza oricărui sistem de internaționalizare (i18n) și determină ce traduceri, formate și reguli se aplică.

Unicode și UTF-8

Unicode atribuie un punct de cod unic fiecărui caracter din fiecare alfabet. UTF-8 este codificarea predominantă pe internet și asigură afișarea corectă a textului, indiferent de limbă.

Chei de traducere

Cheile de traducere sunt identificatori stabili care corespund unor șiruri de caractere specifice setării de limbă. Acestea separă codul sursă de conținutul traducibil, permițând dezvoltarea și traducerea în paralel.

Pluralizare (ICU)

Limbile au reguli diferite privind pluralul — engleza are două forme, iar araba are șase. ICU MessageFormat gestionează pluralul, genul și anumite expresii printr-o singură sintaxă.

Asistență RTL

Limba arabă, ebraica și alte alfabete se citesc de la dreapta la stânga. Suportul pentru RTL necesită oglindirea aspectului paginii, inversarea pictogramelor și utilizarea proprietăților logice CSS în locul celor de tip stânga/dreapta.

Data / Număr / Monedă

Datele, numerele și monedele variază în funcție de setările regionale. API-ul Intl și bibliotecile precum date-fns oferă formatare adaptată la setările regionale, astfel încât valoarea 1.000,50 se afișează ca 1.000,50 în limba germană.

Insignă

Titlu

Subtitlu

JSON

Cel mai popular pentru aplicații web (React, Vue, Angular). Ușor de citit, acceptă imbricarea pentru structuri de chei organizate. Nu are un standard integrat de pluralizare, așa că biblioteci precum ICU MessageFormat acoperă această lacună.

XLIFF

Standard industrial bazat pe XML pentru schimbul de traduceri între instrumente. Compatibil cu toate platformele profesionale de gestionare a traducerilor (TMS). Detaliat, dar cu numeroase funcționalități, oferind suport integrat pentru note, urmărirea stării și metadate.

PO/POT (Gettext)

Format clasic open-source utilizat în ecosistemele Python, PHP și Ruby. Suport integrat pentru plural, cu o sintaxă dedicată formelor de plural. Larg acceptat de traducători și de instrumentele de traducere.

ARB

Application Resource Bundle este formatul standard pentru Flutter și Dart. Este bazat pe JSON și acceptă sintaxa mesajelor ICU, permițând utilizarea nativă a formelor de plural și a opțiunilor de selectare. Este utilizat de instrumentele gen-l10n ale Flutter.

.strings / .stringsdict

Formate native ale platformei Apple pentru dezvoltarea aplicațiilor iOS și macOS. Fișierele .strings gestionează perechi simple cheie-valoare, în timp ce fișierele .stringsdict utilizează structura XML a fișierelor plist pentru regulile de pluralizare.

.resx

Format de fișier de resurse .NET utilizat pentru aplicațiile C# și VB.NET. Bazat pe XML, cu o integrare puternică cu instrumentele Visual Studio. Suportă resurse tipizate pentru șiruri de caractere, imagini și alte elemente.

Titlu

Subtitlu

1

Verifică-ți codul sursă

Identificați toate șirurile de caractere, formatele de dată și modelele dependente de setările regionale care sunt codificate direct. Identificați componentele și paginile care conțin text destinat utilizatorilor și care trebuie extras.

2

Externalizarea șirurilor de caractere

Mutați tot textul destinat utilizatorilor în fișiere de resurse structurate (JSON, XLIFF sau PO). Înlocuiți șirurile de text încorporate cu apeluri la funcții de traducere care fac referire la chei.

3

Alege-ți instrumentele

Alegeți o bibliotecă de internaționalizare (i18n) pentru cadrul dvs. de dezvoltare, un sistem de gestionare a traducerilor (TMS) pentru colaborare și decideți dacă doriți fluxuri de lucru bazate pe traducere umană, pe inteligență artificială sau pe o abordare hibridă.

4

Integrare și livrare

Integrați biblioteca i18n în procesele de rutare și redare, conectați sistemul de gestionare a conținutului (TMS) la CI/CD pentru sincronizare automată și implementați pachetele de localizare prin CDN pentru o livrare rapidă.

Insignă

Titlu

Subtitlu

Integrare pentru dezvoltatori

Evaluați instrumentele CLI, suportul SDK, fluxurile de lucru bazate pe Git și hook-urile CI/CD. Cele mai bune platforme TMS se integrează direct în pipeline-ul dvs. de dezvoltare, astfel încât traducerile rămân sincronizate automat cu modificările de cod.

Memorie de traducere

Memoria de traducere stochează traducerile aprobate anterior și le sugerează pentru șiruri similare sau identice. Aceasta reduce costul traducerii, accelerează termenele de livrare și menține consecvența în întregul produs.

Funcționalități de colaborare

Căutați fluxuri de lucru pentru recenzori, comentarii inline, glosare partajate și lanțuri de aprobare. Aceste funcționalități permit traducătorilor, recenzorilor și dezvoltatorilor să lucreze împreună fără blocaje sau neînțelegeri.

AI și automatizare

Platformele TMS moderne oferă sugestii de traducere automată, verificări automate ale calității, operațiuni în lot și rutare inteligentă. Fluxurile de lucru asistate de AI reduc efortul manual menținând în același timp calitatea traducerilor.

Titlu

Subtitlu

Concatenația șirurilor de caractere

Construirea propozițiilor prin concatenarea fragmentelor nu funcționează în limbile cu ordine diferită a cuvintelor. Folosiți în schimb ICU MessageFormat cu substituenți.

Șiruri de caractere hardcodate

Includerea textului destinat utilizatorilor direct în codul sursă face traducerea imposibilă fără modificări ale codului. Extrageți fiecare șir de caractere încă din prima zi.

Ignorarea formelor de plural

Structura simplă „if/else” pentru singular/plural funcționează doar în limba engleză. Multe limbi au mai multe forme de plural care necesită aplicarea regulilor corespunzătoare de plural din ICU.

Traducere realizată ulterior

Adăugarea funcționalității de internaționalizare (i18n) după lansare implică o refactorizare costisitoare. Proiectarea cu gândul la internaționalizare încă de la început economisește timp și previne acumularea datoriei arhitecturale.

Insignă

Titlu

Subtitlu

  • Toate șirurile destinate utilizatorilor au fost mutate în fișiere de resurse
  • S-a implementat detectarea setărilor locale (browser, adresă URL, preferințele utilizatorului)
  • Pluralizarea este gestionată cu ajutorul ICU MessageFormat pentru toate limbile țintă
  • Formatarea datei, orei, numerelor și monedei utilizează API-ul Intl sau un echivalent al acestuia
  • Compatibilitatea cu formatarea RTL testată cu proprietățile logice CSS
  • Setarea regională de rezervă configurată pentru traducerile lipsă
  • Cheile de traducere respectă o convenție de denumire uniformă
  • Fluxul de lucru CI verifică dacă nu există chei de traducere lipsă sau neutilizate

Titlu

Subtitlu

  • Pseudo
  • Vizual
  • Automatizat
  • Lingvistic
  • Expansiune
Insignă

Titlu

Subtitlu

Care este diferența dintre i18n și L10n?

Internaționalizarea (i18n) este procesul tehnic de proiectare a software-ului astfel încât acesta să poată suporta mai multe limbi și regiuni. Localizarea (L10n) este procesul de adaptare a conținutului acelui software pentru o anumită setare regională, incluzând traducerea textului, ajustarea formatelor și asigurarea adecvării culturale. Procesul de i18n se realizează o singură dată la nivelul codului sursă; procesul de L10n se realizează pentru fiecare setare regională pe care o suportați.

Ce bibliotecă i18n ar trebui să folosesc?

Cea mai bună bibliotecă depinde de framework-ul dvs. Pentru React, react-intl (FormatJS) și react-i18next sunt cele mai utilizate. Dezvoltatorii Vue folosesc de obicei vue-i18n. Angular dispune de suport i18n integrat, alături de opțiuni din comunitate precum Transloco. Proiectele Svelte utilizează svelte-i18n. Evaluați fiecare opțiune în funcție de dimensiunea bundle-ului, suportul ICU și modul în care se integrează cu modelul dvs. de randare.

Cu câte limbi ar trebui să lansez?

Începeți cu două sau trei limbi cu impact ridicat, pe baza datelor existente despre utilizatori sau a cercetărilor de piață. Acest lucru vă permite să validați arhitectura i18n, fluxul de lucru al traducerilor și procesul de QA la o scară gestionabilă. Extindeți la alte limbi odată ce aveți un pipeline fiabil, folosind analitice pentru a stabili prioritatea localelor care urmează să fie adăugate.

Pot folosi traducerea automată pentru aplicația mea?

O abordare hibridă funcționează bine: utilizați traducerea automată pentru ciorne inițiale și conținut de volum mare, cu criticitate redusă, apoi solicitați recenzorilor umani să rafineze șirurile critice din punct de vedere calitativ, precum textele de marketing, mesajele de eroare și textele juridice. Traducerea automată neuronală modernă s-a îmbunătățit semnificativ, dar revizuirea umană rămâne esențială pentru nuanță, vocea brandului și acuratețea culturală.

Ce este pseudo-localizarea?

Pseudo-localizarea este o tehnică de testare care înlocuiește textul cu caractere accentuate sau extinse (de exemplu, transformând 'Hello' în '[~Hellllo~]') fără a schimba sensul. Ajută dezvoltatorii să identifice șiruri hardcodate, trunchieri de text și probleme de aspect înainte ca traducerile reale să fie disponibile. Majoritatea bibliotecilor i18n și instrumentelor TMS suportă generarea automată a ieșirii pseudo-localizate.

Cum gestionez localizarea conținutului dinamic?

Utilizați placeholder-uri ICU MessageFormat pentru interpolare (de exemplu, 'Salut, {name}') în loc să concatenați șiruri. Pentru plural, utilizați sintaxa ICU pentru plural, care se adaptează la regulile fiecărei limbi. Evitați construirea propozițiilor din fragmente, deoarece ordinea cuvintelor variază între limbi. Pentru text formatat, utilizați placeholder-uri cu etichete care permit traducătorilor să reordoneze elementele HTML fără a deteriora marcajul.

Titlu

Subtitlu