Tôi đã triển khai i18next và sau khi nhận được trợ giúp về một số vấn đề, tất cả đều hoạt động tốt. Tôi vẫn gặp sự cố khi hiểu các phần của tài liệu trên trang web hỗ trợ.Thay thế các biến trong i18next
Tôi đang cố gắng để tái tạo phần này (tìm thấy here):
// given resources
{
'en-US': { translation: { key: '__myVar__ are important' } }
};
i18n.t("key", { myVar: "variables" }); // -> variables are important
Về phía tôi của sự vật, đây là tệp JSON:
{
"app": {"name": "mytranslation" },
"back": "Back",
"cancel": "Cancel",
"closemenu": "Close Menu",
"closeoptions": "Close options",
"currency": "Currency symbol is __currencysymbol__",
"date": "Date",
"description": "Description"
}
Và HTML:
<body>
<div data-i18n="currency"></div>
<script src="javascript/i18next-1.7.3.min.js"></script>
<script language="javascript" type="text/javascript">
i18n.init({ preload: ['en', 'fr', 'ht', 'es', 'de', 'zh', 'vi', 'pt', 'it', 'th', 'dev'] });
i18n.init({ detectLngQS: 'lang' });
i18n.init(function(t) {
$("body").i18n();
var appName = t("app.name");
});
i18n.t("currency", { currencysymbol: "$" }); //where do I place this code???
</script>
</body>
Lưu ý: jQuery 2.1.1 và jQuery Mobile 1.4.2 được tải trong tiêu đề.
Tôi chắc chắn rằng tôi không đặt các bộ phận khác nhau nơi chúng được cho là đi, vì nó không hoạt động (không chèn biến "currencysymbol"). Phần còn lại của mã hoạt động tốt, khi tôi nhận được tất cả văn bản đã dịch. Điều tôi thực sự muốn đạt được là có thể tạo các biến được gọi là một phần của bản dịch (ký hiệu tiền tệ, tên công ty, địa chỉ công ty, v.v ... - cho mục đích liên kết), và có thể thay thế các giá trị đó khi chúng được lặp lại trong các văn bản đã dịch.
Tôi muốn có các biến đó ở một nơi, vì vậy chúng dễ điều chỉnh và chúng sẽ không phụ thuộc vào bối cảnh thay đổi ngôn ngữ.