标签: precompiled-templates

使用requireJS和预编译的Handlebars模板加载翻译(i18next)

我有一个requireJS设置,包含预编译的Handlebars模板和我在数据库中的翻译i18next.我需要按以下顺序做一些事情:

  1. 从数据库加载我的翻译
  2. 在Handlebars中注册一个帮助器,以便我的预编译模板中的值可以被翻译

我的requireJS配置文件如下所示:

require.config({
  deps: ["main"],   
  paths: {
    'handlebars.runtime': "../assets/js/libs/handlebars.runtime.amd.min",
    i18n: "../assets/js/libs/i18next-1.7.1",

    // Shim Plugin
    use: "../assets/js/plugins/use"
  },

  use: {
    i18n: {
      attach: "i18n"
    }
  } 
});
Run Code Online (Sandbox Code Playgroud)

我的main.js文件看起来像这样,需要namespace.js:

require([
  'namespace',
  'modules/Transport'
], function (
  namespace,
  $,
  Transport
) {
  var Router = Backbone.Router.extend({
    routes: {
      '*any':                'any'
    },
Run Code Online (Sandbox Code Playgroud)

namespace.js将尝试注册Handlebars助手并使用翻译初始化i18next:

define([
  "handlebars.runtime",
  "use!i18n"
], function(
  Handlebars,
  i18n
) {   
  var defaultLanguage = 'en';
  var translations;
  $.when(
      $.getJSON('/api/translations', function …
Run Code Online (Sandbox Code Playgroud)

amd requirejs handlebars.js precompiled-templates i18next

5
推荐指数
1
解决办法
2019
查看次数