多语言网站的最佳解决方案

时间:2017-12-07 22:30:38

标签: html multilingual

我目前拥有多种语言的常规HTML网站。我已经尝试过使用PHP的东西,但结果并不是很好。我需要的是一个没有以下内容的多语言网站: - 子域名(如en.domain.tld) - 路径(如domain.tld/en

我需要的是: - 存储在会话/ cookie中的语言 - 可以在整个网站上使用的语言(如果需要,可以在一个地方存储语言文件) - 最好在网址中没有可见的指示(如?lang=en)。

有点像Google的做法,因为我还有多个TLD,因此如果用户将语言设置为英语,则不应要求用户通过访问.de等其他域来更改语言来自.com网站。

最佳解决方案是什么?我也很擅长制作网站,所以这就是我要问的原因。

2 个答案:

答案 0 :(得分:1)

我更喜欢做的是

  1. 在应用的顶层创建本地化目录
  2. 的index.html

    app.js

    本地化/

    1. 内部本地化目录创建两个文件
    2. 网络en.json

      {
      "title":"Hello world",
      "desc":"languages are fun"
      }
      

      网络es.json

      {
      "title":"Hola Mundo",
      "desc":"idiomas son divertidos"
      }
      
      1. 安装此库" jquery-localize":" https://github.com/coderifous/jquery-localize.git"
      2.   

        bower安装jquery-localize

        1. 包括库

        2. 将属性添加到HTML标记

          Hello World将会到这里 翻译的desc将替换此文本
        3. 在onReady

        4. 上调用库

          $(function(){ $("[data-localize]").localize("localization/web"); };

答案 1 :(得分:0)

是的,可以翻译网站并在整个网站中保存其选择的语言,而无需更改URL。

您可以使用Cloud Translation,它是Angry Monkey Cloud的免费开放源代码项目:https://github.com/angrymonkeycloud/CloudTranslation

您应该先添加对jQuery的引用,然后再添加CloudTranslation JavaScript文件:

<script crossorigin="anonymous" src="https://cdn.amcapi.com/translation/cloudtranslation-1.0.0.min.js"></script>

并在HTML头中添加配置,如下所示:

<script type="application/json" id="CloudTranslationConfig">
    {
  "Settings": {
    "DefaultLanguage": "en",
    "UrlLanguageLocation": "", // Keep empty
    "TranslatorProvider": "Azure", // Could be empty if you want to provide the translations manually
    "TranslatorProviderKey": "{Your Microsoft Azure Translator Key}",
    "UrlLanguageLocation": "Subdirectory"
  },
  "Languages": [
    {
      "Code": "en",
      "DisplayName": "English"
    },
    {
      "Code": "de",
      "DisplayName": "Deutsch"
    }
  ]
}
</script>

并添加您自己的自定义选择(下拉列表),其类为“ CloudTranslationSelect”,以显示预定义语言的列表。

有关https://www.angrymonkeycloud.com/translation的更多信息