opH*_*AME 13 jquery localization
我不知道如何使用JQuery处理本地化.我想设置一个innerHTML
德语文本,但如果浏览器配置为使用英语,那么我想设置英文文本.
在PHP中,我使用gettext来处理这些内容,但是如何在JavaScript/jQuery中使用它?
RaY*_*ell 15
没有简单的解决方案.我可能会做的是为每种语言创建几个包含语言文本的脚本,并在PHP中包含适当的脚本.因此,如果有人使用您网站的英文版本,您将只包含英文文件,如果有人使用德语版本,您将包含德语文件等.
例:
// your script logic
myscript.js
// language texts
myscript.en.js
myscript.de.js
myscript.it.js
...
Run Code Online (Sandbox Code Playgroud)
您可以定义所有语言文件:
LANG = {
txt1: 'English text1',
txt2: 'English text2'
...
};
Run Code Online (Sandbox Code Playgroud)
确保您只包含HTML中的一个,并确保首先包含语言文件,即
<script type="text/javascript" src="myscript.de.js"></script>
<script type="text/javascript" src="myscript.js"></script>
Run Code Online (Sandbox Code Playgroud)
然后,您可以在主脚本中使用这些本地化文本,例如:
$(document).ready(function () {
alert(LANG.txt1);
});
Run Code Online (Sandbox Code Playgroud)
最好的是你的逻辑(myscript.js
在这个例子中)不必担心本地化,如果你想添加一个新的语言文件,你不必改变它.
我还没有使用它,但我正在考虑为项目使用jquery-localize.如果您不介意根据元素上定义的'rel'属性进行翻译,那么它看起来是个不错的选择.
自述文件中的示例:
HTML
<p rel="localize[title]">Tracker Pro XT Deluxe</p>
<p rel="localize[search.placeholder]">Search...</p>
<p rel="localize[search.button]">Go!</p>
<p rel="localize[footer.disclaimer]">Use at your own risk.</p>
<p rel="localize[menu.dashboard]">Dashboard</p>
<p rel="localize[menu.list]">Bug List</p>
<p rel="localize[menu.logout]">Logout</p>
Run Code Online (Sandbox Code Playgroud)
应用es.json
{
title: "Tracker Pro XT Deluxo",
search: {
placeholder: "Searcho...",
button: "Vamos!"
},
footer: {
disclaimer: "Bewaro."
},
menu: {
dashboard: "Dashboardo",
list: "Bug Listo",
logout: "Exito"
}
}
Run Code Online (Sandbox Code Playgroud)
本地化!
$("rel*=localize").localize("application", { language: "es" })
Run Code Online (Sandbox Code Playgroud)