0

この質問は、言語の選択に応じて href リンクを変更したかったスタックオーバーフローでの以前の質問に基づいてい ます。

ここでの助けのおかげで、今は本来あるべきことをしています。

(function ($) {

$(function(){
var select = $('#language-selection');

var options = select.children('#other-languages');
select.attr('style', '-moz-user-select:none;-webkit-user-select:none;');
options.css({
display:'none'
});

select.click(function() {
if(options.css('display') == 'none') {
/* options.css({display:'block'}); */
options.slideToggle('fast');
} else {
/* options.css({display:'none'}); */
options.slideToggle('fast');
}
});

});

})(jQuery);


    var current = "English"
$("[data-lang]").on("click", function() {
    var lang = $(this).data("lang");

    $(".clickButton").prop("href", function(i, href) {
        return href.replace(current, lang);
    });


$('#language-selection > #current-language > img').attr('src' , $(this).find('img').attr("src"));

$('#language-selection > #current-language > img').attr('alt' , lang);
$('#language-selection > #current-language > img').attr('title' , lang);


$("#language-selection > #current-language").contents().each(function() {
    if(this.nodeType == 3)

             this.nodeValue = this.nodeValue.replace(current, lang);

});



current = lang;

});

私の質問は次のとおりです。言語の選択で変更されたリンクをたどり、ブラウザの戻るボタンをクリックすると、もちろんデフォルトの言語設定に戻ります。

デフォルトに戻らないように言語設定を「保存」する簡単な方法はありますか?

ありがとうございました。

4

1 に答える 1

0

My solution is to store it in localStorage when the user changes the value :

var lang = $(this).data("lang");
localStorage['lang'] = lang;

And when you load a page, you can do

var lang = localStorage['lang'] || defaultLanguage;

So you don't have to pass the chosen language in URL and it stays saved on the user's computer.

BTW, I prefer to use normalized language codes, that is "en" instead of "English", for the compatibility with various i18N tools.

于 2012-10-25T12:06:27.150 に答える