the*_*t22 3 html javascript jquery
对不起,如果这个问题的标题非常通用.我真的无法为我的问题制定逻辑.
作为概述,我正在做一个包含多种语言的登录页面,KO,SC,TC,JP是具体的.此着陆页是一个下载页面.所以你可以想象它有正常的字段,如姓名,电子邮件地址,国家和公司名称.
我已经制定了英文标签.逻辑是,我将依赖于字段标签中的更改为参数.防爆.site.com?lang=sc将显示SC字段标签.
我的基本方法是:
if(lang == "sc") { $("#lblFirstName").html("SC Value"); }
Run Code Online (Sandbox Code Playgroud)
它适用于所有人.但是,我有15个字段加上4种语言.所以就像我需要lang的四个条件那里有15个内部HTML.
是否有任何关于如何使用最小化代码行更新每个标签的快捷方式?
任何想法/建议将非常感激.谢谢!
首先将翻译保存在此对象结构中:
{
'lang' => {'key1' => 'translation1', ...},
'lang2' => {'key1' => 'translation1', ...},
...
}
Run Code Online (Sandbox Code Playgroud)
然后循环你的对象并翻译键指示的字段.
var translations = {
'en': {
'first-value': 'EN value', 'title': 'Some title'
},
'sc': {
'first-value': 'SC value', 'title': 'AbraKadabra'
}
}
function doTranslate(lang) {
$.each(translations[lang], function(key, value) {
$('[data-t-' + key + ']').text(value);
});
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select onChange="doTranslate($(this).val())">
<option value="en">EN</option>
<option value="sc">SC</option>
</select>
<hr/>
<span data-t-title>Some title</span> |
<span data-t-first-value>EN value</span>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |