我目前拥有多种语言的常规HTML网站。我已经尝试过使用PHP的东西,但结果并不是很好。我需要的是一个没有以下内容的多语言网站:
- 子域名(如en.domain.tld
)
- 路径(如domain.tld/en
)
我需要的是:
- 存储在会话/ cookie中的语言
- 可以在整个网站上使用的语言(如果需要,可以在一个地方存储语言文件)
- 最好在网址中没有可见的指示(如?lang=en
)。
有点像Google的做法,因为我还有多个TLD,因此如果用户将语言设置为英语,则不应要求用户通过访问.de
等其他域来更改语言来自.com
网站。
最佳解决方案是什么?我也很擅长制作网站,所以这就是我要问的原因。
答案 0 :(得分:1)
我更喜欢做的是
的index.html
app.js
本地化/
网络en.json
{
"title":"Hello world",
"desc":"languages are fun"
}
网络es.json
{
"title":"Hola Mundo",
"desc":"idiomas son divertidos"
}
bower安装jquery-localize
包括库
将属性添加到HTML标记
Hello World将会到这里 翻译的desc将替换此文本在onReady
$(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”,以显示预定义语言的列表。