JavaScript を使用してページ言語に応じていくつかの小さなテキストを管理する必要がある場合、この奇妙なケースがあります。html lang 属性に応じて、テンプレートの一部を置き換える必要があると想像してみてください。そこで、多次元データ オブジェクトを作成し、次の方法で回避することにしました。すべて正常に動作しますが、ベスト プラクティスではないように感じます。スイッチの使用を避けることができるかもしれません。
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];
。私の場合。
ご意見いただければ幸いです。ありがとうございました。