创建多语言网站
creating multi lingual website
我正在研究如何开发多语言网站。我在HTML、JS、CSS方面的背景不是那么广泛(我才一周前才开始),所以我对这个的理解可能不是最好的。
对于我们的示例,我们将创建三种语言突变:
- 英语(主要)
- 西班牙语
- 法语。
这是我在 Google 叔叔下开始搜索时遇到的情况。
我能想到的最长解决方案:创建三个文件夹,分别命名为en
、es
、fr
。这些将包含原始网页的副本(例如 index.html
),但将被翻译成相应的语言。然后在顶部面板上,您将有一个按钮,单击该按钮将重定向到另一个文件夹(link 在此处进行了硬编码)。如果我们处理的是非常小的网站(只有几个页面),这个解决方案是可行的。
我找到的第二个选项是使用 WordPress 插件(找到了很多)。不幸的是,这个解决方案不可行,因为我没有使用 wordpress 创建网站。
下一个选项(我认为这将是最好的)是为所有语言突变设置一个页面,但您将插入一些带有键的属性,而不是真正的文本,这将确定应该在此处插入什么短语。它可能看起来像 data-toTranslate('sTitle')
(编造的)。现在的问题是,您会将文本存储在哪里?一种选择是进入数据库,但我没有使用过它们(在网站下),因此我更喜欢文本文件/csv 文件/或类似的东西。这个解决方案的问题(除了我还不知道该怎么做 :) )是我不太确定网站在加载时间方面会如何对此做出反应。也许这对开发人员来说是最好的解决方案,但对网站来说却是最糟糕的?
任何能为我指明正确方向的评论、link或建议都非常受欢迎!
编辑: 因为这个问题可能看起来太宽泛了,我会尝试 trim 稍微降低一点。
因为我认为选项三是最好的,所以我想知道以下事情:
1) 当我想存储简单的键-值对时(比如在这个翻译中),我需要创建什么?如果我在 C# 中,我会例如创建简单的 XML 或 CSV 文件,我会在运行时解析它。
2) 我可以用一个简单的 JavaScript 来实现这个,还是我需要用 AngularJS 创建一些特定的控制器/指令?
我通常使用PHP来处理这种多语言。用户每时每刻浏览网站时,都会将默认语言设置为ENG。但是,当用户 select 其他语言作为网站显示语言时,网站将重新加载并且 PHP 代码将调用相应的语言文件夹以在网站上显示所有 selected 语言.所以,我认为你应该有几个语言文件夹,然后动态调用每个文件夹来获取关键字并显示它。
静态创建网站的英文版本,因为这是主要语言。您应该为每个文本元素设置一个单独的 ID(并且不要使用 "a" "b" 等 obe 词 ID,这样您以后就可以很容易地找到它们。
在您的服务器上创建一个文件(文本文件也可以),其中包含文本标签的 ID,并且文本的格式类似于
welcome-text | ["Welcome to the website" in Spanish]
-------------
Etc...
(注意:哟需要存储翻译的句子,但我不懂西班牙语和法语)
将您的文件命名为 Spanish.txt。
当页面加载时,通过 javascript 通过 AJAX 下载此文件(这是静态英语版本作为备用),循环通过文本文件并将文本设置为翻译版本。
您当然也可以将 PHP 与 MysQL 一起使用,但我认为这对于 2 种语言来说有点矫枉过正。
是的,这可以用 100% 纯 javascript 来完成,甚至不需要 JQuery。
我正在研究如何开发多语言网站。我在HTML、JS、CSS方面的背景不是那么广泛(我才一周前才开始),所以我对这个的理解可能不是最好的。
对于我们的示例,我们将创建三种语言突变:
- 英语(主要)
- 西班牙语
- 法语。
这是我在 Google 叔叔下开始搜索时遇到的情况。
我能想到的最长解决方案:创建三个文件夹,分别命名为
en
、es
、fr
。这些将包含原始网页的副本(例如index.html
),但将被翻译成相应的语言。然后在顶部面板上,您将有一个按钮,单击该按钮将重定向到另一个文件夹(link 在此处进行了硬编码)。如果我们处理的是非常小的网站(只有几个页面),这个解决方案是可行的。我找到的第二个选项是使用 WordPress 插件(找到了很多)。不幸的是,这个解决方案不可行,因为我没有使用 wordpress 创建网站。
下一个选项(我认为这将是最好的)是为所有语言突变设置一个页面,但您将插入一些带有键的属性,而不是真正的文本,这将确定应该在此处插入什么短语。它可能看起来像
data-toTranslate('sTitle')
(编造的)。现在的问题是,您会将文本存储在哪里?一种选择是进入数据库,但我没有使用过它们(在网站下),因此我更喜欢文本文件/csv 文件/或类似的东西。这个解决方案的问题(除了我还不知道该怎么做 :) )是我不太确定网站在加载时间方面会如何对此做出反应。也许这对开发人员来说是最好的解决方案,但对网站来说却是最糟糕的?
任何能为我指明正确方向的评论、link或建议都非常受欢迎!
编辑: 因为这个问题可能看起来太宽泛了,我会尝试 trim 稍微降低一点。
因为我认为选项三是最好的,所以我想知道以下事情:
1) 当我想存储简单的键-值对时(比如在这个翻译中),我需要创建什么?如果我在 C# 中,我会例如创建简单的 XML 或 CSV 文件,我会在运行时解析它。
2) 我可以用一个简单的 JavaScript 来实现这个,还是我需要用 AngularJS 创建一些特定的控制器/指令?
我通常使用PHP来处理这种多语言。用户每时每刻浏览网站时,都会将默认语言设置为ENG。但是,当用户 select 其他语言作为网站显示语言时,网站将重新加载并且 PHP 代码将调用相应的语言文件夹以在网站上显示所有 selected 语言.所以,我认为你应该有几个语言文件夹,然后动态调用每个文件夹来获取关键字并显示它。
静态创建网站的英文版本,因为这是主要语言。您应该为每个文本元素设置一个单独的 ID(并且不要使用 "a" "b" 等 obe 词 ID,这样您以后就可以很容易地找到它们。
在您的服务器上创建一个文件(文本文件也可以),其中包含文本标签的 ID,并且文本的格式类似于
welcome-text | ["Welcome to the website" in Spanish]
-------------
Etc...
(注意:哟需要存储翻译的句子,但我不懂西班牙语和法语)
将您的文件命名为 Spanish.txt。
当页面加载时,通过 javascript 通过 AJAX 下载此文件(这是静态英语版本作为备用),循环通过文本文件并将文本设置为翻译版本。
您当然也可以将 PHP 与 MysQL 一起使用,但我认为这对于 2 种语言来说有点矫枉过正。
是的,这可以用 100% 纯 javascript 来完成,甚至不需要 JQuery。