当我必须根据使用 javascript 的页面语言管理一些小文本时,我遇到了这种奇怪的情况。想象一下,您需要根据 html lang 属性替换模板的某些部分。所以我创建了多维数据对象,并决定采用以下方法。一切正常,但我觉得这不是最佳做法,也许我可以避免使用 switch:
jsbin版本:http: //jsbin.com/EvEciVa/2/
$(function(){
var lang = $('html').attr('lang'),
text;
var obj = {
'en' : {
'title' : 'Title english',
'url' : 'en.html'
},
'fr' : {
'title' : 'Title french',
'url' : 'fr.html',
}
};
switch(lang){
case'fr':
text = [obj.fr.title,obj.fr.url];
break;
default:
text = [obj.en.title,obj.en.url];
}
$('body').prepend('<a href="'+text[1]+'">'+text[0]+'</a>');
});
问题是:就我有 lang 属性值(语言)而言,也许我可以避免使用 switch 和重复的情况,而是可以将 lang 值实现为变量来访问数据对象,像这样[obj.lang.title,obj.lang.url];
当然它不会工作就我而言。
我会很感激任何意见。谢谢你。