Titolo
Paragrafo1
Paragrafo2
Paragrafo3
Sottotitolo
i18n · once
Titolo
L10n · per locale
Titolo
Foundations
Sottotitolo
Paragrafo1
Paragrafo2
Paragrafo3
Paragrafo1
Paragrafo2
Paragrafo3
I tag BCP 47, come en-US o zh-Hans-CN, specificano la lingua, l'alfabeto e la regione. Costituiscono la base di ogni sistema di internazionalizzazione (i18n) e determinano quali traduzioni, formati e regole applicare.
Unicode assegna un codice univoco a ogni carattere di ogni alfabeto. L'UTF-8 è la codifica prevalente sul web e garantisce la corretta visualizzazione del testo indipendentemente dalla lingua.
Le chiavi di traduzione sono identificatori fissi associati a stringhe specifiche per ogni impostazione locale. Esse separano il codice sorgente dai contenuti traducibili, consentendo lo sviluppo e la traduzione in parallelo.
Le lingue hanno regole diverse per il plurale: l'inglese ne ha due, l'arabo ne ha sei. ICU MessageFormat gestisce il plurale, il genere e alcune espressioni con un'unica sintassi.
L'arabo, l'ebraico e altri alfabeti si leggono da destra a sinistra. Il supporto RTL richiede il ribaltamento dei layout, il capovolgimento delle icone e l'utilizzo di proprietà logiche CSS al posto di left/right.
Le date, i numeri e le valute variano a seconda delle impostazioni locali. L'API Intl e librerie come date-fns offrono una formattazione che tiene conto delle impostazioni locali, per cui 1.000,50 viene visualizzato come 1.000,50 in tedesco.
Badge
Sottotitolo
.json
React · Vue · Angular
Particolarmente diffuso nelle applicazioni web (React, Vue, Angular). Facilmente leggibile, supporta l'annidamento per strutture di chiavi ben organizzate. Non dispone di uno standard integrato per la pluralizzazione, pertanto librerie come ICU MessageFormat colmano questa lacuna.
.xlf
TMS interchange
Standard di settore basato su XML per lo scambio di traduzioni tra strumenti. Supportato da tutte le piattaforme TMS professionali. Esteso ma ricco di funzionalità, con supporto integrato per note, monitoraggio dello stato e metadati.
.po / .pot
Python · PHP · Ruby
Formato open source classico utilizzato negli ecosistemi Python, PHP e Ruby. Supporto integrato per il plurale con una sintassi dedicata alle forme plurali. Ampiamente supportato dai traduttori e dagli strumenti di traduzione.
.arb
Flutter · Dart
Application Resource Bundle è il formato standard di Flutter e Dart. Basato su JSON con supporto alla sintassi dei messaggi ICU, consente l'uso nativo dei plurali e delle opzioni di selezione. Utilizzato dagli strumenti gen-l10n di Flutter.
.strings
iOS · macOS
Formati nativi della piattaforma Apple per lo sviluppo su iOS e macOS. Il file .strings gestisce semplici coppie chiave-valore, mentre il file .stringsdict utilizza la struttura XML delle liste di preferenze (plist) per le regole di pluralizzazione.
.resx
.NET · C#
Formato di file di risorse .NET utilizzato per le applicazioni C# e VB.NET. Basato su XML, con una forte integrazione con gli strumenti di Visual Studio. Supporta risorse tipizzate per stringhe, immagini e altre risorse.
Badge
Sottotitolo
Sottotitolo
Badge
Sottotitolo
Valutate gli strumenti CLI, il supporto SDK, i flussi di lavoro basati su Git e gli hook CI/CD. Le migliori piattaforme TMS si integrano direttamente nella pipeline di sviluppo, mantenendo le traduzioni sincronizzate con le modifiche al codice in modo automatico.
La memoria di traduzione memorizza le traduzioni approvate in precedenza e le suggerisce per stringhe simili o identiche. Questo riduce i costi di traduzione, accelera i tempi di consegna e mantiene la coerenza in tutto il prodotto.
Cercate flussi di revisione, commenti in linea, glossari condivisi e catene di approvazione. Queste funzionalità consentono a traduttori, revisori e sviluppatori di collaborare senza colli di bottiglia o incomprensioni.
Le moderne piattaforme TMS offrono suggerimenti di traduzione automatica, controlli qualità automatizzati, operazioni batch e instradamento intelligente. I flussi di lavoro assistiti dall'intelligenza artificiale riducono il lavoro manuale mantenendo la qualità delle traduzioni.
Quality
Sottotitolo
La costruzione di frasi mediante la concatenazione di frammenti non funziona nelle lingue con un ordine delle parole diverso. Si consiglia invece di utilizzare ICU MessageFormat con i segnaposto.
Inserire il testo destinato agli utenti direttamente nel codice sorgente rende impossibile la traduzione senza modifiche al codice. Esternalizzate ogni stringa sin dal primo giorno.
Il semplice if/else per il singolare e il plurale funziona solo in inglese. Molte lingue presentano diverse forme plurali che richiedono l'applicazione delle regole del plurale dell'ICU.
Aggiungere l'i18n dopo il lancio comporta una costosa rifattorizzazione. Progettare fin dall'inizio in ottica di internazionalizzazione consente di risparmiare tempo ed evita l'accumulo di debito architettonico.
Sottotitolo
By framework
Sottotitolo
Badge
Sottotitolo