我在使用语言文件时遇到问题。
目前,我有一个语言文件,我有一个像
这样的对象var strings {
title: "Title",
subtitle: "Subtitle"
};
目前在我的HTML中,我会有类似
的内容<div id="title">Title</div>
<div id="subtitle">Subtitle</div>
现在我想在div中包含来自javascript对象的值,以便我可以使用各种语言文件。相关的语言文件在后端通过php脚本选择,这不是问题。
例如
<div id="title">strings.title</div>
<div id="subtitle">strings.subtitle</div>
有一种简单的方法吗?我不想每次都使用php来创建必要的js文件,或者使用一个jquery循环来填充create上的每个div值,尽管现在它看起来就像我要做的那样。
由于
答案 0 :(得分:1)
假设你有这个:
<script>
var myJSVar = 'Hello, World!';
</script>
你可以直接输出它:
<script>
document.write('<div>' + myJSVar + '</div>');
</script>
您可以将其附加到BOM:
<script>
var div = document.createElement('div');
div.innerHTML = myJSVar;
document.getElementsByName('body')[0].appendChild(div);
</script>
您可以根据ID填充div:
<div id="foo"></div>
<script>
document.getElementById('foo').innerHTML = myJSVar;
</script>
或任何其他众多选项。这实际上取决于你的目标,虽然现在你很模糊。
答案 1 :(得分:1)
HTML
<div id="title">strings.title</div>
<div id="subtitle">strings.subtitle</div>
JS
// this is what you get from the language file
var LanguageStorage = {
strings: {
title: "Title",
subtitle: "Subtitle"
}
}
// function for replace language
function placeLanguageFor(selector) {
var thiz = $(selector);
var lidArray = thiz.text().split("\.");
thiz.text(LanguageStorage[lidArray[0]][lidArray[1]]);
}
// show text based on language
placeLanguageFor("#title");
placeLanguageFor("#subtitle");