2012-01-15 12 views
6

Używam Node.js wraz ze strukturą Express i i18n module. Tak więc używaminternacjonalizacja w Node.js, Express, i18n

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

w ustawieniach mojej aplikacji. Wszystko działa dobrze, ale to, czego naprawdę potrzebuję, to zmusić i18n do korzystania z langauage, którego chcę. Scenariusz wygląda następująco: gdy użytkownik nie jest zalogowany, to i18n szuka nagłówka w nagłówku accept-language i jest w porządku. Ale kiedy użytkownik jest zalogowany, chcę trzymać wybrany język w ustawieniach użytkownika, pobrać go i zmusić moduł i18n do korzystania z tego języka. Jak to zrobić (zakładając, że już wiem, jak zapisać/pobrać langauge do/z db)?

+0

tylko wspomnieć [i18next - i18n dla node.js] (http://i18next.com/node) może być dobrą alternatywą - po prostu spójrz! – jamuhl

Odpowiedz

11

Ach, przepraszam. Powinienem trochę poczekać i obejrzeć moduł i18n. Wydaje się, że moduł dostarcza do funkcji

i18n.getLocale(); 

która pobiera aktualny język i

i18n.setLocale('en'); 

który określa locale jak chcemy. Dokumentacja naprawdę powinna o tym wspomnieć. To ważne, mam nadzieję, że odpowiedź pomaga komuś. :)

+0

hej ... jak to się stało, że to zadziałało? Próbowałem zmienić ustawienia narodowe za pomocą polecenia, które napisałeś, ale automatycznie się przełącza i nie wiem, jak to działa, aby ustawienie pozostało. – toxinlabs

+1

możesz obejrzeć http://i18next.com/node, ponieważ dodaje on tę samą funkcjonalność i wiele więcej. – jamuhl

+0

Zobacz także https://github.com/bdswiss/country-language, jeśli chcesz poznać języki używane w danym kraju. –

0

To właśnie wydany wczoraj, ale to brzmi jak to będzie hit tego problemu jest uruchomiony na: locale