多语言网站的最佳解决方案
Best solutions for multi-language website
我目前有一个多种语言的常规 HTML 网站。我用 PHP 尝试过一些东西,但结果不是很好。我需要的是一个没有以下内容的多语言网站:
- 子域(如 en.domain.tld
)
- 路径(如 domain.tld/en
)
我需要的是:
- 存储在 sessions/cookies 中的语言
- 可以在整个站点使用的语言(如果需要,可以在一个地方存储语言文件)
- 最好在 URL 中没有明显的指示(如 ?lang=en
)。
有点像 Google 的做法,因为我也有多个 TLD,所以如果用户设置从 .com
站点将他们的语言更改为英语。
最好的解决方案是什么?我对制作网站也很陌生,所以这就是我问的原因。
我比较喜欢做的是
- 在您的应用的顶层创建一个本地化目录
index.html
app.js
本地化/
- 在本地化目录中创建两个文件
网络-en.json
{
"title":"Hello world",
"desc":"languages are fun"
}
网络-es.json
{
"title":"Hola Mundo",
"desc":"idiomas son divertidos"
}
- 安装这个库 "jquery-localize":“https://github.com/coderifous/jquery-localize.git”
bower install jquery-localize
包含库
将属性添加到您的 HTML 标签
Hello World 会去这里
翻译后的描述将替换此文本
就绪时调用库
$(function(){
$("[data-localize]").localize("localization/web");
};
是的,可以翻译网站并在整个网站上保存其 selected 语言,而无需更改 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>
并添加您自己的自定义 select(下拉菜单),其中包含 class "CloudTranslationSelect" 以显示预定义语言列表。
上找到更多信息
我目前有一个多种语言的常规 HTML 网站。我用 PHP 尝试过一些东西,但结果不是很好。我需要的是一个没有以下内容的多语言网站:
- 子域(如 en.domain.tld
)
- 路径(如 domain.tld/en
)
我需要的是:
- 存储在 sessions/cookies 中的语言
- 可以在整个站点使用的语言(如果需要,可以在一个地方存储语言文件)
- 最好在 URL 中没有明显的指示(如 ?lang=en
)。
有点像 Google 的做法,因为我也有多个 TLD,所以如果用户设置从 .com
站点将他们的语言更改为英语。
最好的解决方案是什么?我对制作网站也很陌生,所以这就是我问的原因。
我比较喜欢做的是
- 在您的应用的顶层创建一个本地化目录
index.html
app.js
本地化/
- 在本地化目录中创建两个文件
网络-en.json
{
"title":"Hello world",
"desc":"languages are fun"
}
网络-es.json
{
"title":"Hola Mundo",
"desc":"idiomas son divertidos"
}
- 安装这个库 "jquery-localize":“https://github.com/coderifous/jquery-localize.git”
bower install jquery-localize
包含库
将属性添加到您的 HTML 标签
Hello World 会去这里 翻译后的描述将替换此文本就绪时调用库
$(function(){
$("[data-localize]").localize("localization/web");
};
是的,可以翻译网站并在整个网站上保存其 selected 语言,而无需更改 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>
并添加您自己的自定义 select(下拉菜单),其中包含 class "CloudTranslationSelect" 以显示预定义语言列表。
上找到更多信息