jquery.i18n в C # MVC - PullRequest
       4

jquery.i18n в C # MVC

0 голосов
/ 29 августа 2018

Я использую библиотеку jquery.i18n для переводов в моем приложении. Проблема в том, что все работает как положено, за исключением того, что я перехожу из одного представления в другое - языковой стандарт теряется и устанавливается со значением по умолчанию. Я использую также jquery.history.js и url.min.js:

var set_locale_to = function(locale) {
    if (locale) {
      $.i18n().locale = locale;
    }
    $('body').i18n();      
};

jQuery(function() {
  $.i18n().load( {
    'en': '../js/i18n/en.json',
    'ru': '../js/i18n/ru.json',
    'dk': '../js/i18n/dk.json'
  } ).done(function() {
      set_locale_to(url('?locale'));

      History.Adapter.bind(window, 'statechange', function(){
        set_locale_to(url('?locale'));
      });

      $('.switch-locale').on('click', 'a', function(e) {
        e.preventDefault();
        History.pushState(null, null, "?locale=" + $(this).data('locale'));
      });
  });

});

Есть что-то, что я пропускаю или делаю неправильно? Я также пытался установить window для фиксированной строки, но это тоже не сработало.

1 Ответ

0 голосов
/ 29 августа 2018

Пока мне удалось решить мою проблему, используя window.localStorage:

var set_locale_to = function(locale) {
  if (locale) {
      $.i18n().locale = locale;
    }
    $('body').i18n();
};

jQuery(function() {
  $.i18n().load( {
    'en': '../js/i18n/en.json',
    'ru': '../js/i18n/ru.json',
    'dk': '../js/i18n/dk.json'
  } ).done(function() {
    set_locale_to(url('?locale'));

    History.Adapter.bind(window, 'statechange', function(){
      set_locale_to(url('?locale'));
    });

    set_locale_to(localStorage.getItem("locale"));


    $('.switch-locale').on('click', 'a', function(e) {
      e.preventDefault();
      History.pushState(null, null, "?locale=" + $(this).data('locale'));
      localStorage.setItem("locale", $(this).data('locale'));
    });
  });
});

Я открыт для других решений, если они есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...