2

我正在使用 jQuery 制作一个 Web 应用程序。Web 应用程序的所有元素都是使用 jQuery ( var $header = $("<div>");) 创建的。我已经有一个名为 stringtables 的对象,其中我有名为“no”、“en”等的子对象。

在页面加载时,会加载默认值,并将其中的字符串用于我所有元素中的文本。有什么办法可以将所有元素绑定到字符串表,所以当我切换字符串表时,网站上的所有文本都会随之改变?

我希望在不重新加载页面的情况下更改应用程序语言。

4

2 回答 2

3

不,你不能。您应该手动创建和调用更新功能,将元素的内容更改为新的内容。

例如:

// function to set new strings to elements' contents
function setLang(langStrings) {
  $.each(langStrings, function(elemId, elemText) { $('#'+elemId).text(elemText) });
}
// function to load language by name
function loadLang(langName) {
  $.getJSON('/lang/' + langName + '.json', setLang);
}
// loading default language
$(function() { loadLang('default') });
于 2011-06-29T16:33:30.270 回答
2

您是否愿意使用其他类型的技术?如果是这样,angularjs似乎正是您所需要的。

于 2011-06-29T16:34:17.520 回答