2012-01-15 41 views
6

Tôi đang sử dụng Node.js cùng với khung Express và i18n module. Vì vậy, tôi sử dụngquốc tế hóa trong Node.js, Express, i18n

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

trong cài đặt ứng dụng của tôi. Tất cả mọi thứ hoạt động tốt, nhưng những gì tôi thực sự cần là để buộc i18n sử dụng langauage tôi muốn. Kịch bản như sau: khi người dùng không đăng nhập, sau đó tìm kiếm i18n cho langauage trong tiêu đề accept-language và nó là ok. Nhưng khi người dùng đăng nhập, sau đó tôi muốn giữ langauage được chọn ở đâu đó trong cài đặt người dùng, truy xuất nó và buộc mô-đun i18n sử dụng langauage này. Làm thế nào để làm điều này (giả sử tôi đã biết làm thế nào để lưu/lấy langauge vào/từ db)?

+0

chỉ đề cập đến [i18next - i18n cho Node.js] (http://i18next.com/node) có thể là một lựa chọn tốt - chỉ cần có một cái nhìn! – jamuhl

Trả lời

11

Ach, xin lỗi. Tôi nên chờ một chút và kiểm tra mô-đun i18n. Dường như mô-đun cung cấp chức năng

i18n.getLocale(); 

mà lấy ngôn ngữ hiện tại và

i18n.setLocale('en'); 

mà đặt locale như chúng ta muốn. Tài liệu thực sự nên đề cập đến điều này. Điều quan trọng là tôi hy vọng câu trả lời sẽ giúp một người nào đó. :)

+0

này ... làm thế nào bạn có được điều này để làm việc cuối cùng? tôi đã cố gắng để thay đổi miền địa phương với lệnh bạn đã viết nhưng nó chuyển trở lại tự động và tôi không biết làm thế nào nó hoạt động để các thiết lập vẫn tồn tại. – toxinlabs

+1

bạn có thể xem http://i18next.com/node vì nó thêm chức năng tương tự cộng thêm nhiều tính năng khác. – jamuhl

+0

Ngoài ra hãy xem https://github.com/bdswiss/country-language nếu bạn cần biết ngôn ngữ được nói ở một quốc gia cụ thể. –

0

này đã vừa phát hành ngày hôm qua, nhưng có vẻ như nó sẽ trúng vấn đề bạn đang chạy vào: locale

Các vấn đề liên quan