Applicazione web in più lingue: come implementare?

1

Qual è il modo migliore per fornire un'applicazione web in più lingue? Il focus della mia domanda non è cosa pensare, ma in effetti come farlo.

Il testo nell'applicazione web:

  • testo nel popup delle funzioni spaziali
  • testo nella barra laterale contenente la descrizione della funzione
  • elementi di testo dei componenti del sito Web: menu (barra di navigazione)

Poiché l'applicazione web dovrebbe essere disponibile sia in inglese che in francese, sto pensando a come implementare al meglio il supporto di più lingue.

Il testo è disponibile in due file separati (inglese, francese) e ho pensato in base alla scelta dell'utente di chiamare l'uno o l'altro file e interrogare il testo. Ma come gestire i componenti del sito Web, come le voci del menu? Questo è testo in chiaro in html, come potrebbe essere risolto?

L'applicazione web è costruita utilizzando Bootstrap e Leaflet (JavaScript).

Fammi sapere se è più semplice creare due applicazioni web, una per ciascuna lingua, ma i miei pensieri erano che si tratta di un enorme sovraccarico di codice.

    
posta the_chimp 17.05.2017 - 06:43
fonte

1 risposta

1

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);
    
risposta data 17.05.2017 - 08:14
fonte

Leggi altre domande sui tag