i18next добавляет пространство имен перевода по умолчанию к моим пространствам имен

Я использую i18n - оболочку aurelia для i18next со следующей конфигурацией:

  instance.i18next.use(Backend);

  return instance.setup({
    backend: {
      loadPath: 'assets/locales/{{lng}}/{{ns}}.json',
    },
    detectFromHeaders: false,
    lng: 'bg',
    fallbackLng: 'bg',
    ns: ['app', 'dp', 'management'],
    defaultNS: 'app',
    fallbackNS:'app',
    attributes: ['t', 'i18n'],
    useCookie: false,
    getAsync: false,
    debug: false
  });

У меня есть компонент, который переключается на другой язык с помощью функции setLocale (language). Он отлично работает для переводов, однако, когда я переключаюсь между языками по какой-то причине, i18next добавляет translation.json в мои пространства имен, хотя я его не использую, и он выполняет вызов xhr, чтобы получить его, и я получаю ошибку 404 для translation.json - пространство имен, которое мне вообще не нужно. Есть ли возможность полностью удалить его из пространств имен? заранее спасибо


person cBozz    schedule 21.07.2016    source источник


Ответы (2)


Проблема не в Aurelia-I18N, а в самом i18next. Единственный обходной путь, который я нашел до сих пор, - установить для fallbackLng значение false.

{
  backend: {                        
    loadPath: './locales/{{lng}}/{{ns}}.json', 
  },
  lng : 'de',
  ns: ['foo'],
  defaultNS: "foo",
  attributes : ['t','i18n'],
  fallbackLng : false,  <----- SET THIS TO FALSE TO AVOID A SEARCH FOR translation NS
  debug : false
}
person zewa666    schedule 18.08.2016

Это известная проблема, которую можно отследить здесь: https://github.com/aurelia/i18n/issues/47

person Matthew James Davis    schedule 21.07.2016
comment
Спасибо, я буду отслеживать ошибку, надеюсь, она скоро будет решена. Я не уверен, что это проблема i18n. Я думаю, что ошибка в i18next, потому что, когда я проверял, он добавлял translation.json в имеющийся у него массив пространств имен. - person cBozz; 22.07.2016
comment
пожалуйста, проголосуйте, если это помогло вам, и примите, если это ответило на ваш вопрос - person Matthew James Davis; 22.07.2016