我正在使用phonegap,我需要i18n支持这个应用程序,所以我最终选择了i18next。下面是我的示例代码,但是i18next失败了,任何人都可以帮助我吗?我得到的输出只是一个名称为“nav.home”,“nav.page1”,“nav.page2”的链接列表。此外,此示例HTML5代码仅适用于Chrome,而不适用于Mozilla。
//HTML code
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="i18next-1.6.3.js" ></script>
<script type="text/javascript" src="translation.en.json" ></script>
<script type="text/javascript" >
$(document).ready(function(){
i18n.init(function(t) {
$(".nav").i18n();
var appName = t("app.name");
});
});
</script>
</head>
<body>
<ul class="nav">
<li><a href="#" data-i18n="nav.home"></a></li>
<li><a href="#" data-i18n="nav.page1"></a></li>
<li><a href="#" data-i18n="nav.page2"></a></li>
</ul>
</body>
</html>
translation.en.js文件
{
"app": {
"name": "i18next"
},
"nav": {
"home": "Home",
"page1": "Page One",
"page2": "Page Two"
}
}
答案 0 :(得分:1)
我看到两件事:
locales/en/translation.json
.json
文件<head>
部分答案 1 :(得分:0)
尝试这样做:
$(document).ready(function(){
$.i18n.init({
lng: 'en'
}, function(t) {
$(".nav").i18n();
var appName = t("app.name");
});
});
我认为你错过了dictionnary选项。
答案 2 :(得分:0)
尝试此操作(未在我的手机上正确测试)
//HTML code
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="i18next-1.6.3.js" ></script>
<script type="text/javascript" >
$(document).ready(function(){
i18n.init({
resGetPath: 'translation.__lng__.json'
},
function(t) {
$(".nav").i18n();
var appName = t("app.name");
});
});
</script>
</head>
<body>
<ul class="nav">
<li><a href="#" data-i18n="nav.home"></a></li>
<li><a href="#" data-i18n="nav.page1"></a></li>
<li><a href="#" data-i18n="nav.page2"></a></li>
</ul>
</body>
</html>
但是我觉得按照yarl所说并重新排列成文件夹更为正常。