1

我目前正在编写一个将使用多种语言的网站,我想知道是否有一种简单的方法可以为所有语言只对网站进行一次编程。

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

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

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

4

2 回答 2

1

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

content\
    en\
       images\
    sp\
       images\

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

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

于 2013-03-01T14:09:22.303 回答
0

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

如果您也有文本,您可能希望为您支持的每种语言创建一个本地化 JSON 对象并动态加载它。JSON 对象将包含具有特定语言文本或图像源的元素 ID 或元素类,您将使用 JavaScript 迭代对象键并在其中的元素引用上填充语言特定数据。

于 2013-03-01T14:09:24.303 回答