2012-01-23 36 views
8

Estamos a punto de comenzar a construir nuestra aplicación web en Node.js y me gustaría estar listo para i18n, así que estoy buscando su experiencia en la construcción de aplicaciones Node.js donde el texto sea traducible.¿Cómo se usa i18n con Node.js?

Preferiblemente me gustaría utilizar una herramienta como Pootle a través de Git u otro si tiene alguna recomendación.

+0

como se menciona en solución aceptada [ i18next - i18n para node.js o javascript] (http://i18next.com/node) agrega todas las funciones necesarias para que i18n plus tenga una interfaz de usuario web para la traducción. – jamuhl

+0

también vea http://stackoverflow.com/questions/20125560/referenceerror-intl-is-not-defined-in-node-js - con respecto al soporte de EcmaScript 402 en el nodo. –

+0

También hay [un ejemplo] (https://github.com/efkan/node-intl-polyfill-example) con respecto a cómo implementar i18n básicamente. Puede visitar. – efkan

Respuesta

7

Hay un número de i18n modules que puede usar en su aplicación, pero puede crear uno propio si lo desea.

Por ejemplo crear una carpeta/idiomas y en su interior crean en.js, etc fr.js

it.js

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

Lo importante es establecer un idioma por defecto y hacer una barra de selección de idioma en algún lugar de su sitio. Cuando el usuario elige otro idioma (y no Inglés) en su aplicación que hacer algo como esto:

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

, entonces puede tener una función del lenguaje ayudante de este modo:

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

i18n en nodejs con [i18next] (http://i18next.com/node) funciona bien. Acabo de agregar una interfaz de usuario para traducir recursos en la web i18next.com/pages/ext_webtranslate.html – jamuhl

+1

¿Pero cómo se agrega la traducción de fecha/moneda? La internacionalización no se trata solo de traducir cadenas de texto :-P – kenyee

+0

@kanyee esos valores de cadena también pueden ser funciones. –