日期:2014-05-16 浏览次数:20388 次
来自: http://www.weakweb.com
原文:http://www.weakweb.com/articles/268.html
本文讨论了基于纯前端的国际化多语言的解决方案,不依赖于任何后台技术。即只用HTML + JavaScript来实现国际化的方案。该方案参考了FCKEditor的实现机制,其实很多富文本编辑器都采用了类似的思路。
这里要注意的是”localeString”是自定义属性,你可以用任何名字都可以,它的值就是每个内容在js文件里的key了,比如:{“hello”: “你好世界。”},下面是翻译文件的一个简单的例子:
langText = { "name": "姓名", "password": "密码" }
HTML的代码片段:
<span localeString="name">Name</span><input type="text" id="username" /> <span localeString="password">Password</span><input type="password" id="password" />
下面是替换span标签里面内容的JavaScript代码:
/** * Translate the text in the HTML. * @param {dom} domObj An dom object under which text will be translated. * @param {string} sTag The HTML tag name in which text will be translated, usually "span". */ function translatePage(domObj, sTag) { var e = domObj.getElementsByTagName(sTag); var currentLangText = sapLang.getCurrentLangText(); var E,s; for (var i = 0; i < e.length; i++) { if (E = e[i].getAttribute('iLikeLang')) { if (currentLangText[E]) { e[i].innerHTML = currentLangText[E]; } } } } translatePage(document, 'span');