使用JQuery进行本地化?

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在这个例子中)不必担心本地化,如果你想添加一个新的语言文件,你不必改变它.


Mar*_*wen 8

我还没有使用它,但我正在考虑为项目使用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)