2012-01-15 59 views
6

estoy usando Node.js, junto con el marco Express y i18n module. Así que usointernacionalización en Node.js, Express, i18n

var i18n = require('i18n'); 
app.configure(function() { 
    [...] 
    app.use(i18n.init); 
    app.use(app.router); 
}); 

en la configuración de mi aplicación. Todo funciona bien, pero lo que realmente necesito es forzar a i18n a usar el idioma que quiero. El escenario es el siguiente: cuando el usuario no está conectado, i18n busca el idioma en el encabezado accept-language y está bien. Pero cuando el usuario está conectado, entonces quiero mantener el idioma elegido en algún lugar de la configuración del usuario, recuperarlo y forzar al módulo i18n a usar este idioma. ¿Cómo hacer esto (suponiendo que ya sepa cómo guardar/recuperar el idioma en/desde db)?

+0

sólo por mencionar [i18next - i18n para Node.js] (http://i18next.com/node) podría ser una buena alternativa, ¡solo échale un vistazo! – jamuhl

Respuesta

11

Ach, lo siento. Debería esperar un poco e inspeccionar el módulo i18n. Parece que proporciona al módulo de funciones

i18n.getLocale(); 

que recupera el lenguaje actual y

i18n.setLocale('en'); 

que establece la configuración regional como queremos. La documentación realmente debería mencionar esto. Es importante, espero que la respuesta ayude a alguien. :)

+0

hey ... ¿cómo conseguiste que esto funcione al final? Traté de cambiar la configuración regional con el comando que escribió, pero vuelve a cambiar automáticamente y no sé cómo funciona, por lo que la configuración persiste. – toxinlabs

+1

es posible que tenga un vistazo a http://i18next.com/node ya que agrega la misma funcionalidad más mucho más. – jamuhl

+0

También consulte https://github.com/bdswiss/country-language si necesita saber idiomas que se hablan en un país específico. –

0

Esto se acaba de publicar ayer, pero suena como que va a golpear el tema está ejecutando en: locale