我即将推出一个支持三种语言的网站:英语、法语、德语。
现在我们通过检测用户浏览器的语言来自动显示正确的语言。
HTML 中的每个文本对象都分配了一个 id,我们在 javascript 文件中使用 innerHTML 来用正确的语言替换文本。
这是我们在 JS 中的示例:
function adjust_languages() {
// change all object text, if french
if (sprache == "french") {
document.getElementById("hello").innerHTML = "Bonjour";
}
// change all objects if german
else if (sprache == "german") {
document.getElementById("hello").innerHTML = "Hallo";
}
else {
// PUT ALL THE ENGLISH HERE
document.getElementById("hello").innerHTML = "Hello";
}
}
我很想知道这种方法是否也适用于多语言元描述。
我想要的是 Google 根据用户浏览器的语言显示网站的元描述。
例如,如果用户输入法语关键字,或者只是在默认语言设置为法语的浏览器中简单地输入网站名称,我希望谷歌在结果中显示该网站的法语版本(因此带有法语元描述)。
innerHTML 方法是否也适用于这种情况?
最佳答案
语言翻译有多种方式,推荐方式如下:
1 -> 准备两个不同的 json 文件 (1)idMapfile (2)langMap_Fr(或任何语言)。将它们映射为常见的字符串。
idMap.json
"helloContext":"helloDom"
*helloDom 是 DOM id
langMap_Fr.json
"helloContext":"Bonjour"
langMap_Gr
"helloContext":"Hello"
2 -> 现在在站点加载时使用 js 比较那些 langMap json 和 idMap json(lodash.js 提供了很好的库来比较 json 和其他操作与 json、对象和数组)并准备 2D 数组(或可能是 json ,根据您的方便)对于每种语言,例如:
frArr = [["helloDom","Bonjour"]]
和 grArr = [["helloDom","Hello"]]
因此您可以在运行时操纵语言。
3 -> 现在编写一个函数,将翻译后的单词放入特定的 dom 元素(类似于您的函数,但在循环中)。
这就是multiLang使用js的逻辑。
关于javascript 多语言元描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42969055/