Скрипт не видит элементы в JSON файле на многостраничном сайте

Уже второй локализатор на JS/JQuery ставлю и в обоих похожие проблемы. В первом, если на странице нет хотя бы одного элемента из конфигов с переводами, то скрипт выдавал ошибку (скрипт ставлю на многостраничный сайт).

В этом же, если вызван элемент не по списку, то скрипт так же не работает, т.е.:

{
 "en": {
     
     "#first_el": "first element",
     "#second_el": "second element",
     "#third": "third element"
  }
}

Если я в шаблоне, запрошу сразу второй или третий элемент, пропустив первый, скрипт работать не будет, если же все по порядку, то работает. Как это исправить?

JS:

(function() {
    $.MultiLanguage = function(a, c) {
        var b = this;
        if (c == null) {
            c = null
        }
        return $.getJSON(a, function(g) {
            var f, d, h, e;
            if (c !== null) {
                localStorage.MultiLanguage = c
            } else {
                if (typeof localStorage.MultiLanguage === "undefined") {
                    c = localStorage.MultiLanguage = g.config["default"]
                } else {
                    c = localStorage.MultiLanguage
                }
            }
            d = g.language[c];
            e = [];
            for (f in d) {
                h = d[f];
                if ($(f).get(0).tagName.toLowerCase() === "title") {
                    document.title = h;
                    continue
                }
                if (f.length > 0) {
                    e.push($(f).html(d[f]))
                } else {
                    e.push(void 0)
                }
            }
            return e
        })
    }
}
).call(this);

Подключается скрипт с переводами:

$(document).ready(function(){
  $.MultiLanguage('language/language.json');
});

Переключатель работает через onlick

onclick="$.MultiLanguage('language/language.json', 'en')"

Немного измененный JSON из примера:

{
  "config": {
    "default": "en"
  },
  "language": {
    "en": {
      "#demo": "Hello",
      "#demo2": "Hello2",
      "#demo3": "Hello3"
    },
    "ru": {
      "#demo": "Привет",
      "#demo2": "Привет2",
      "#demo3": "Привет3"
    },
    "de": {
      "#demo": "Hallo",
      "#demo2": "Hallo2",
      "#demo3": "Hallo3"
    }
  }
}

P.S. В этом скрипте, как и в первом, если в на странице нет хотя бы одного элемента из списка, то опять таки, все ломается.


Ответы (0 шт):