Tôi đang làm việc trên một số dự án dựa trên Backbone nơi tôi đang sử dụng i18next cho miền địa phương.i18next không tải tệp dịch
Tiếp theo là mã app.js tôi:
/*
This file is used to initialize your application.
*/
require(['i18n','application','handlebars_Helpers'], function(i18n, Application) {
i18n.init({
lng: 'en',
debug: true,
fallbackLng: false,
load:'unspecific',
resGetPath: "locales/__lng__/__ns__.json",
ns: {
namespaces: ['translation']
}
});
(new Application()).initialize();
});
Dịch file:
{
"loginModule": {
"signin": "Sign In"
}
}
Sau đây là tập tin helper của tôi:
/**
* Set of generic handlebars helpers
*/
define(['i18n'], function(i18n) {
/**
* This helper provides i18Next in templates
*
*
* Usage: span {{t "my.key" }}
*/
Handlebars.registerHelper('t', function(i18n_key) {
var result = i18n.t(i18n_key);
return new Handlebars.SafeString(result);
});
return Handlebars;
});
Khi tôi đang tải trang của tôi thông qua localhost nó hiển thị cho tôi thông báo sau trong bảng điều khiển:
currentLng set to: en i18n.js:490
GET http://localhost:8000/locales/en/translation.json?_=1374495189376 404 (Not Found) i18n.js:376
failed loading: locales/en/translation.json
Không hiểu tôi đang thiếu gì? hoặc tại sao lỗi này được hiển thị?
khi tôi sao chép URL từ firebug và dán nó vào thanh địa chỉ của trình duyệt, nó cho tôi thấy 404; Và tôi đã xóa "? _ = 1374495189376" nó hiển thị cho tôi tệp chính xác. Tại sao số bổ sung này được thêm vào? –
Tôi đã thêm resGetPath. nhưng vẫn không hoạt động –
Ok, "? _ = 1374495189376" được jQuery thêm vào để ngăn chặn các vấn đề về bộ nhớ đệm. Nó chỉ là một số ngẫu nhiên, và nó buộc trình duyệt tải xuống tệp, ngay cả khi nó nằm trong bộ nhớ cache của trình duyệt trước đó. Bạn sẽ phải kiểm tra phía máy chủ của ứng dụng. Có phải có một số thiết lập ngăn cản tải xuống các tệp tĩnh, nếu có một số chuỗi truy vấn được chuyển. – drax