i18next — настройка бранча и магистрали

После недолгих поисков и перепробования различных вариантов я решил использовать i18next 1 для интернационализации сети на основе филиалов и магистральных сетей. заявление. Однако я немного борюсь с тем, где инициализировать i18next, чтобы поддержка i18n была доступна во всем приложении.

В настоящее время я помещаю инициализацию в основное приложение Backbone.Marionette.Application, например:

@addInitializer (options) ->
  Media  = require 'models/media'
  Router = require 'lib/router'

  @media = new Media

  # setup routing and html5 history
  $.i18n.init
    lng: 'en-Us'
    fallbackLng: 'en'
    debug: true
  , (t) =>
    console.log 'i18n initialized'


  @router = new Router controller: this
  Backbone.history.start()

Хотя я не получаю никаких ошибок и файлы перевода загружаются правильно, мне не удалось перевести строки.

Соответствующий html выглядит следующим образом:

<h5 data-i18n="title-text.unnamedtitle" class="title-text"></h5>

который соответствует ключу title-text в файлах перевода.

Есть идеи, как с этим справиться?


person tomw    schedule 16.07.2013    source источник


Ответы (1)


Инициализация внутри App Initializer должна быть в порядке. Чего не хватает, так это фактического использования библиотеки i18next и применения ее к визуализированным представлениям.

Если вы используете представления из Marionette, вы можете предоставить метод onRender:

onRender: function() {
    this.$el.i18n();
}

Если вы визуализируете представления напрямую, попробуйте добавить this.$el.i18n(); в конец метода рендеринга.

person Marian Polacek    schedule 16.07.2013