我正在开发一个使用jQuery的HTML5应用程序。我想使它成为多语言:检测用户语言并将所有文字更改为用户的语言。
我认为一种方法是为每种支持的语言使用一个HTML文件,但这是浪费空间。
另一种方法可以是使用jQuery将所有文字更改为用户的语言。但我不知道该怎么做。
你怎么看?有更好的方法吗?更新
我忘了说我在JavaScript中也有一些文字。
答案 0 :(得分:2)
你不能对用户的语言进行某种服务器端查询,然后自动加载相应的文本吗?也许甚至CMS也适用于此。
对于所有Javascript代码,我会使用String文字作为变量。因此,您可以加载适合用户语言的其他语言文件。
档案english.js:
var messages_siteA1 = "This is an alert.";
var messages_siteA2 = "...";
// ...
档案german.js:
var messages_siteA1 = "Dies ist eine Warnung.";
var messages_siteA2 = "...";
// ...
在你的Javascript中:
alert(messages_siteA1);
或者我错过了这里的观点? ;)
答案 1 :(得分:1)
在我的HTML5演示中,“HTML5 Word Clouds”,
(源代码可在https://github.com/timdream/wordcloud)
找到我为不同的语言编写了单独的HTML,并包含一组Javascript文件。对于脚本中的文字字符串,我将它们收集到一个对象(名为T
)中,并将其放入每个HTML文件的<script>
块中。
这使我可以灵活地为每种语言定制页面;正如您所看到的,我将CNN列为英文版的示例,但在中文版中列出了其他来源。
答案 2 :(得分:1)
如果您必须在客户端执行此操作,那么如何使用json或xml文件来存储您的翻译?这避免了创建同一页面的副本的麻烦。例如,在你的json中。你有“welcome_eng”:“welcome”和“welcome_fr”:“bienvenue”等。 然后使用javascript加载适当的一个,如下所示,获取如下变量: blablabla = [ “欢迎_” +语言]
或者,如果你想要更少的工作,你的欢迎文本的div将具有id“welcome”,然后你的javascript获取id并添加适当的内容。
答案 3 :(得分:0)
它主要取决于您的网页的动态或静态:如果它们包含很多文本,那么复制每种语言的页面会更容易。在这种情况下,仔细地将CSS与CSS和脚本隔离是非常重要的。所有CSS和脚本都应存储在单独的页面中,以避免在更新样式或脚本时更新所有翻译。
OTOH,如果它主要是动态的,那么在创建页面时通过翻译替换文本片段是有意义的。但我不会做文本替换客户端(jQuery)。这是服务器端的工作。
编辑:如果您有javascript文字,那么您当然应该将它们与HTML并排放在HTML文件中或单独的.js文件中。但仍需要服务器以正确的语言提供内容。