代码之家  ›  专栏  ›  技术社区  ›  Mik Roe

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

  •  1
  • Mik Roe  · 技术社区  · 7 年前

    我目前有一个多语言的常规HTML网站。我尝试过PHP,但结果不是很好。我需要的是一个多语言网站,没有: -子域(如 en.domain.tld ) -路径(如 domain.tld/en )

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

    有点像谷歌的做法,因为我也有多个TLD,所以用户不应该被要求通过访问其他域来更改他们的语言,如 .de ,如果他们从 .com 地点

    最好的解决方案是什么?我对制作网站也很陌生,所以这就是我为什么要问的原因。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Robert I    7 年前

    我更喜欢做的是

    1. 在应用程序的顶层创建本地化目录

    指数html

    应用程序。js公司

    本地化/

    1. 在本地化目录中创建两个文件

    web英语。json

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

    web es。json

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

    bower安装jquery本地化

    1. 包括库

    2. 将属性添加到HTML标记中

      你好,世界会在这里 翻译后的描述将替换此文本
    3. 调用库onReady

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

        2
  •  0
  •   Elie Tebchrani    5 年前

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

    你可以使用云翻译,这是愤怒猴子云的免费开源项目: 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