国際化をサポートするために、ドロップダウンからURLを変更するコードを作成しました#lang-select
。コードは
$(document).ready(function(){
var sel = document.getElementById('lang-select');
sel.onchange = function(){window.location.replace($('#lang-select').val());};
});
上記のコードは正常に機能し、URLをからhttp://0.0.0.0:3000/fr
に変更しますhttp://0.0.0.0:3000/en
。ここで、変更された値を保持したいのですが、成功しません。以下のコードを書きました。なぜそれが間違っている/機能していないのかわかりません。
function langSelect(){
var available_languages = {
"en":"English",
"de":"Deutsch",
"ru" :"Россию",
"fr" : "Française"
};
var languageInUrl= document.URL.split("/")[3];
for(var shortLanguage in available_languages){
if(shortLanguage === languageInUrl) {
var langaugeOptionArray = $("#lang-select>option");
for(var i = 0 ; langaugeOptionArray.length > i ; i++){
if(langaugeOptionArray[i].label === available_languages[shortLanguage]){
langaugeOptionArray[i].selected = true;
return;
}
}
}
}
}
上記のコードの何が問題になっているのか教えてください。私が行っていることは新しいことではないので、このシナリオを克服するためのベストプラクティスを教えてください。
現在、これを実現するためにバックエンドを使用しています。