2012-01-23 15 views
8

Stiamo per iniziare a costruire la nostra app Web in Node.js e mi piacerebbe essere pronto per i18n quindi cerco la tua esperienza con la creazione di app Node.js in cui il testo è traducibile.Come si usa i18n con Node.js?

Preferibilmente mi piacerebbe utilizzare uno strumento come Pootle tramite Git o altro se avete qualche raccomandazione.

+0

come indicato nella soluzione accettata [ i18next - i18n per node.js o javascript] (http://i18next.com/node) aggiunge tutte le funzionalità necessarie fpr proper i18n plus ha un'interfaccia web per la traduzione. – jamuhl

+0

vedere anche http://stackoverflow.com/questions/20125560/referenceerror-intl-is-not-defined-in-node-js - riguardante il supporto di EcmaScript 402 nel nodo. –

+0

Inoltre c'è [un esempio] (https://github.com/efkan/node-intl-polyfill-example) su come implementare fondamentalmente i18n. Potresti visitare – efkan

risposta

7

Ci sono un numero di i18n modules che è possibile utilizzare nell'applicazione, ma è possibile crearne uno se lo si desidera.

Per esempio creare una cartella/lingue e al suo interno creare en.js, fr.js ecc

it.js

module.exports = { 
    "name": "nome", 
    "age": "eta", 
    .. etc 
} 

La cosa importante è quello di impostare una lingua predefinita e fare una barra di selezione della lingua da qualche parte nel tuo sito. Quando l'utente sceglie un'altra lingua (e non l'inglese) nella vostra applicazione è fare qualcosa di simile:

app.get('/lang/:ln', function (req, res, next) { 
    // remember the user's chosen language 
    req.session.language = req.params.ln; 
}); 

allora si può avere una funzione di linguaggio di aiuto in questo modo:

translate = function (language, text) { 
    // language array contains all the languages 
    return language_array[language].text; 
} 
// example: translate(req.session.language, "age") 
+0

i18n in nodejs con [i18next] (http://i18next.com/node) funziona bene. Ho appena aggiunto un interfaccia utente per tradurre le risorse nel web i18next.com/pages/ext_webtranslate.html – jamuhl

+1

Ma come si aggiunge la traduzione di date/valute? L'internazionalizzazione non riguarda solo la traduzione di stringhe di testo :-P – kenyee

+0

@kanyee quei valori di stringa possono anche essere semplicemente funzioni. –