这可能是目前最方便的网站中英文切换(理论支持所有语言)

调用微软页面翻译API : The Translator Web Widget API   实现自动对页面进行中英文翻译

微软提供的Demo实现上也很简单,分如下几步:

  1. 引入The Translator Web Widget API
  2. 监听dom加载完毕,调用Microsoft.Translator.Widget.Translate()整站翻译。

这可能是目前最方便的网站中英文切换(理论支持所有语言)_第1张图片

1、封装language.js

根据上面的对微软提供的Demo的研究,我们对此进一步封装,因为中英文切换一般都是一次点击后,往后的统一每个页面都需要或不需要翻译,这就需要记录一个状态值,这里选用html5提供的storage来储存这个状态,并向外提供一个修改该状态并刷新页面的方法。故,该js(language.js)编写如下:

$(function(){ 
      // do something 
    var script=document.createElement("script");  
    script.type="text/javascript";  
    script.src="http://www.microsoftTranslator.com/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**";  
    document.getElementsByTagName('head')[0].appendChild(script);  


    var value = sessionStorage.getItem("language");
    document.onreadystatechange = function () {
        if (document.readyState == 'complete') {
            if(value==="1"){
                Microsoft.Translator.Widget.Translate('zh-CHS', 'en', onProgress, onError, onComplete, onRestoreOriginal, 2000);
            }
        }
    }
    function onProgress(value) {
    }
    function onError(error) {
    }
    function onComplete() {
        $("#WidgetFloaterPanels").hide();
    }
    function onRestoreOriginal() { 
    }
});

function translate(){
    var value = sessionStorage.getItem("language");
    if(value==="1"){
        sessionStorage.setItem("language", "0"); 
    }else{
        sessionStorage.setItem("language", "1");
    }
    window.location.reload();//刷新当前页面.
}

2、编写测试页面

编写一个测试页面(test.html)。要使用上面的language.js,必须进行以下三步:

  1. 设置页面编码为utf-8
  2. 引入jquery和language.js
  3. 设置按钮的点击事件,去调用中英文切换函数:translate();

    
        Microsoft Widget API Sample
        
        
        
    
    
        
        














你好

三、其他

上面编写的language.js中写死了中文转英文(zh-CHS转en),如果项目需要其他语言的转换,对language.js进行自定义扩展即可。


via:error.work

你可能感兴趣的:(html,javascript)