Par*_*ser 28 javascript gettext translate
我gettext在我的PHP代码中使用,但我有一个很大的问题.我的所有JavaScript文件都不受翻译的影响,有人可以告诉我一种简单的方法来将所选语言的翻译成JavaScript.
Pek*_*ica 18
最简单的方法是让PHP文件将翻译gettext写入JavaScript变量.
js_lang.php:
word_hello = "<?php echo gettext("hello"); ?>"
word_world = "<?php echo gettext("world"); ?>"
word_how_are_you = "<?php echo gettext("how_are_you"); ?>"
Run Code Online (Sandbox Code Playgroud)
然后包括它:
<script type="text/javascript" src="js_lang.php"></script>
Run Code Online (Sandbox Code Playgroud)
我还建议将此方法与翻译插件S.Mark提及(这非常有趣!).
您也可以在当前页面的标题中定义字典,而不包含外部文件,但是这样,您必须在每个页面加载时查找并发送数据 - 这是非常不必要的,因为字典往往很少变化.
vdb*_*oor 13
我通常以JavaScript结构导出翻译:
var app = {}
var app.translations = {
en: { hello: "Hello, World!"
, bye: "Goodbye!"
}
, nl: { hello: "Hallo, Wereld!"
, bye: "Tot ziens!"
}
};
Run Code Online (Sandbox Code Playgroud)
可以使用以下内容定义页面文本的当前语言: <html xml:lang="en" lang="nl">
这可以在JavaScript中阅读:
var curentLanguage = document.documentElement.lang || "en";
app.lang = app.translations[ currentLanguage ] || app.translations.en;
Run Code Online (Sandbox Code Playgroud)
然后你可以编写这样的代码:
alert( app.lang.hello );
Run Code Online (Sandbox Code Playgroud)
可选地,a i18n()或gettext()函数可以带来一些智能,如果密钥不存在则返回默认文本).例如:
function gettext( key )
{
return app.lang[ key ] || app.translations.en[ key ] || "{translation key not found: " + key + "}";
}
Run Code Online (Sandbox Code Playgroud)
jQuery i18n的一个例子,当然你需要从php的语言文件中生成基于JSON的字典
var my_dictionary = {
"some text" : "a translation",
"some more text" : "another translation"
}
$.i18n.setDictionary(my_dictionary);
$('div#example').text($.i18n._('some text'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29216 次 |
| 最近记录: |