Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция поддержки мультиязычности. (https://javascript.ru/forum/misc/21838-funkciya-podderzhki-multiyazychnosti.html)

fiw 14.10.2011 17:41

Идеально это при смене языка в браузере менять ссылку на словарь.
если русский язык, то файл ru.js, при смене языка, средствами DOM удаляем привязанный словарь, и подгружаем сразу необходимый нам. Например en.js или es.js
Вот как именно это реализовать?

aiky 15.10.2011 05:45

Цитата:

Сообщение от fiw
Вот как именно это реализовать?

ru.js:
lc.base = {
  'ru':'Русский',
  'en':'Английский',
  ...
}



en.js:
lc.base = {
  'ru':'Russian',
  'en':'English',
  ...
}


var lc = function(id){
  if(!lc.base[id]) return id;
  return lc.base[id];
};

lc.is = {
  'ru':0,
  'en':1
};

lc.def = 'en';

lc.init = function(){
  var l = navigator.browserLanguage;
  if(!l) l = navigator.language;
  l = l.substring(0,2).toLowerCase();
  if(typeof(lc.is[l]) != 'undefined') lc.load(l);
  else lc.load(lc.def);
};

lc.load = function(l){
  var e = document.createElement('script',{
    'type':'text/javascript',
    'src':l + '.js'
  });
  e.error = e.onload = e.readystatechange = function(){
    if(!e.loaded && (!e.readyState || e.readyState == 'loaded' || e.readyState == 'complete')){
      e.loaded = 1;
      e.onerror = e.onload = e.onreadystatechange = null;
      e.parentNode.removeChild(e);
    }
  };
  var head = document.getElementsByTagName('head');
  if(head.length) head = head[0];
  head.appendChild(e);
}

fiw 18.10.2011 16:51

А обновление переменных в странице при подключении нового словаря сразу же произойдет?


Часовой пояс GMT +3, время: 02:20.