javascript多语言元描述

时间:2017-03-23 06:47:23

标签: javascript html multilingual

我即将推出一个网站,提供三种语言版本:英语,法语,德语。

现在我们使用用户浏览器语言的检测功能自动显示正确的语言。

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会根据用户的浏览器语言显示网站的元描述。

例如,如果用户键入法语关键字,或者只是在默认语言设置为法语的浏览器中键入网站名称,我希望Google在结果中显示网站的法语版本(因此与法国元描述)。

在这种情况下,innerHTML方法也会起作用吗?

1 个答案:

答案 0 :(得分:0)

语言翻译有多种方式。建议方式如下:

1 - >预备两个不同的json文件(1)idMapfile(2)langMap_Fr(或任何语言是。)通过常见字符串映射那些。

idMap.json

"helloContext":"helloDom"

* helloDom是DOM id

langMap_Fr.json

"helloContext":"Bonjour"

langMap_Gr

"helloContext":"Hello"

2 - >现在加载站点比较那些langMap json和idMap json使用js(lodash.js提供了良好的librery来比较json和其他opratioins与json,对象和数组)并准备2D arrey(或探测json,根据你的顺从性)对于每个语言,如:  frArr = [["helloDom","Bonjour"]]grArr = [["helloDom","Hello"]]所以你可以在运行时使用法语。

3 - >现在编写一个函数,将翻译后的单词放到特定的dom元素中(类似于你的函数但是在循环中)。

这是使用js的multiLang背后的逻辑。