2013-03-01 82 views
1

我目前正在编程一个网站,它将使用多种语言,我想知道是否有简单的方法来为所有语言只编写一次网站。将语言选择写入jQuery文件?

例如,我有一个名为'lang'的变量。基本上,如果用户选择西班牙语,那么我希望页面为西班牙语加载图片(或其他资源),而不是英语。例如,通过改变'lang'变量,一个名为'home_button_eng.jpg'的图像将会加载'home_button_spa.jpg'。

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

有没有办法做到这一点?我宁愿这样做,也不愿为西班牙文的每一个英文页面重复。

回答

1

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

content\ 
    en\ 
     images\ 
    sp\ 
     images\ 

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

根据您的内容将如何动态是,你可以使用.po.mo国际化文件执行它,并宣读他们在得到您的标题,文字等等,同时还隐含地确定图像和其他资产的基于位置仅在语言目录中。

0

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

如果您有文本,那么您可能需要为您支持的每种语言制作本地化JSON对象,并动态加载。 JSON对象将包含具有语言特定文本或图像源的元素ids或元素类,您将使用JavaScript遍历对象键并在其中的元素引用中填入特定于语言的数据。