Utilizza l'internazionalizzazione di GetText, spesso abbreviato in I18n per risparmiare digitare 20 lettere , caratteristiche della tua applicazione - scrivi bene qui .
In pratica contrassegni i componenti del testo e fornisci il testo nella tua lingua, come candidati per la traduzione in base alle impostazioni internazionali e fornisci i bundle del testo tradotto per i vari messaggi usando POEdit e un po 'di intelligenza per caricare quelli appropriati usando il locale come selettore. GetText è implementato in varie lingue incluso Node.js che è probabilmente il più richiesto.
I vantaggi di questo approccio sono:
- Le tue versioni linguistiche non escono mai dal passaggio se una traduzione non è disponibile per un messaggio specifico ricade sul testo originale.
- Non stai duplicando enormi quantità di codice.
- Puoi fornire i file PO solo ai traduttori e non al tuo codice.
- Puoi aggiungere una nuova lingua semplicemente aggiungendo un pacchetto di traduzioni piuttosto che un'altra copia del codice.
- Esistono anche servizi online a cui puoi fornire i messaggi estratti per ricevere assistenza gratuita o a pagamento nella generazione di traduzioni.
Aggiornamento
Esiste anche un plug-in per volantini che fa la maggior parte del duro lavoro per te. In pratica contrassegni il testo che hai bisogno di tradurre, cioè voci di menu, ecc., Con L._('
Parola o frase che ha bisogno di traduzione ')
nota che questi possono includere valori di sostituzione e fornire la / e traduzione / i in file locali per ciascuna locale supportata chiamata per quella locale, dare all'utente finale un meccanismo per specificare la propria localizzazione, ad es. fr
Esiste persino uno script per generare o aggiornare i file delle impostazioni internazionali con le stringhe che devono essere tradotte.
Esempi dalla pagina github:
Nel codice del tuo sito:
L._("The phrase I want to be translatable");
L._("A complex sentence with a {variable}", {variable: "my value"});
in locale/fr.js
file:
var mylocale = {
"Simple phrase to translate": "Une simple phrase à traduire",
"A sentence with a {variable}": "Une phrase avec une {variable}",
};
Registra la locale:
L.registerLocale('fr', mylocale);