JavaScript实现--中英语言切换功能

最近弄的项目是面向国际的,所以老总说要有语言切换功能.第一感觉好像不难吧

网上查了下,感觉实现方法就2种:

一:2个版本的HTML.至于怎么切换,方法也很多.

    不过这种方法,除了笨,我实在不知道用什么词来形容.

二:双重标签,一个中文一个英语,之后用css来控制DOM的display,从而来判断显示那种语言.

<p id="E">English</p>
<p id="Z">中文</p>


 document.getElementById('E').style.display = "block"
 document.getElementById('Z').style.display = "none"

    这种方法,虽然好像不错,不过当页面多了,以后不好管理,也会造成页面的臃肿.


所以到头来还是自己搞吧.既然我那么喜欢JavaScript,为啥不用JavaScript来实现呢.

其实,原理也不难,传2个参数,一个是英文文本,一个是中文文本,之后判断一个全局变量来决定是中译英还是英译中.

直接上代码先:

function instead_of_language(oldLan, newLan) {
    var temp,
        all = document.querySelectorAll(".change_lan");
    if (change_lan_Z == 0) {
        temp = newLan;
        newLan = oldLan;
        oldLan = temp;
    }
    for (i = all.length; i--;) {
        if (all[i].getAttribute("placeholder") == oldLan) {
            all[i].setAttribute("placeholder", newLan);
        }
        if (all[i].innerHTML == oldLan) {
            all[i].innerHTML = newLan;
        }
        if (all[i].value == oldLan) {
            all[i].value = newLan;
        }
    }

}

用法:

//HTML                         
 <span class="change_lan">Update</span>      //  给翻译的标签加上class值"change_lan"
 
//JavaScript 
 var change_lan_Z = 0;                      //   change_lan_Z等于1时为中译英  等于0时为英译中
 instead_of_language("Update", "更新");     //    判断的是字符串,所以包括空格或者符号都要加上去

这也是刚刚才写的函数,还不是很完善,目前只是支持翻译标签的文本和input的placeholder属性.

如果各位有发现什么好的改进  或者是BUG的话,欢迎指导批评

转载于:https://my.oschina.net/l3ve/blog/287466

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值