将语言选择写入jQuery文件?

时间:2013-03-01 14:01:00

标签: javascript jquery variables file-io

我目前正在编写一个多种语言的网站,我想知道是否有一种简单的方法可以为所有语言编制一次网站。

例如,我有一个名为'lang'的变量。基本上,如果用户选择西班牙语,那么我希望页面为西班牙语而不是英语的按钮加载图像(或任何资产)。因此,例如,通过更改“lang”变量,名为“home_button_eng.jpg”的图像将改为加载“home_button_spa.jpg”。

我认为这需要“编写”或“更改”包含“lang”变量的外部文档,然后由页面加载该变量。 换句话说,用户单击“spanish”使lang ='spa'然后加载一个新页面,该页面连接到该language_choice.js文件。适当的内容会加载。

有没有办法做到这一点?我更愿意这样做而不是复制西班牙语的每个英文页面。

2 个答案:

答案 0 :(得分:1)

当然,您不想复制任何内容或代码。我会根据语言代码组织子文件夹中的所有资源:

content\
    en\
       images\
    sp\
       images\

这样可以避免在每个语言的单个文件夹中出现重复的命名文件。更改语言时,您可以使用您选择的动态语言(Python,PHP,Ruby ...)存储会话变量,并使用它以正确的语言代码填充所有内容。

根据您的内容的动态程度,您可以使用.po.mo国际化文件来实现它,并将其读入以获取标题,文本等,同时仍隐式确定位置仅基于语言目录的图像和其他资产。

答案 1 :(得分:0)

如果所有与语言相关的更改都与图像有关,则可以动态加载特定于语言的CSS文件。

如果您还有文本,则可能需要为您支持的每种语言创建本地化JSON对象并动态加载。 JSON对象将包含具有特定于语言的文本或图像源的element-id或element-classes,您将使用JavaScript迭代对象键并在其中的元素引用上填写特定于语言的数据。