我已经实现了 i18next,在获得了几个问题的帮助后,一切正常。我仍然无法理解支持站点上的部分文档。
我正在尝试复制这部分(在此处找到):
// given resources
{
'en-US': { translation: { key: '__myVar__ are important' } }
};
i18n.t("key", { myVar: "variables" }); // -> variables are important
就我而言,这是 JSON 文件:
{
"app": {"name": "mytranslation" },
"back": "Back",
"cancel": "Cancel",
"closemenu": "Close Menu",
"closeoptions": "Close options",
"currency": "Currency symbol is __currencysymbol__",
"date": "Date",
"description": "Description"
}
和 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>
注意: jQuery 2.1.1 和 jQuery Mobile 1.4.2 加载在标头中。
我确定我没有将各个部分放在它们应该去的地方,因为它不起作用(没有插入变量“currencysymbol”)。其余代码工作正常,因为我得到了所有翻译文本。
我真正想要实现的是能够创建将被称为翻译的一部分的变量(货币符号、公司名称、公司地址等...... - 用于附属目的),并能够替换那些值,因为它们在翻译文本中重复。
我想把这些变量放在一个地方,这样它们很容易调整,并且不会受到语言变化的影响。