1

在搜索了一段时间并尝试了不同的选项后,我决定使用 i18next 1来国际化基于 brunch 和骨干网的 Web 应用程序。但是,我在初始化 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>

它与翻译文件中的标题文本键匹配。

知道如何处理吗?

4

1 回答 1

1

App 初始化程序中的初始化应该没问题。缺少的是实际使用 i18next 库并将其应用于渲染视图。

如果你使用 Marionette 的视图,你可以提供 onRender 方法:

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

如果您直接渲染视图,请尝试添加this.$el.i18n(); 到渲染方法的末尾。

于 2013-07-16T13:52:10.270 回答