无法使用r.js加载多种语言,而i18n需要插件

时间:2014-10-20 22:32:06

标签: internationalization requirejs r.js

我有3个文件

  • /nls/home.js
  • /nls/root/home.js
  • /nls/fr/home.js

/nls/home.js文件包含基本的

define({
  "root": true,
  "fr": true
});

我的主要js文件中的定义如此

define([
  'i18n!nls/home'
], function(copy) {
 ...
});

它适用于requirejs但是当我使用r.js捆绑单个main.js文件时,我收到错误

Uncaught Error: undefined missing nls/fr/home

在requirejs函数中调用" main"

如果我将法语文件添加到我的定义

define([
  'i18n!nls/home'
  'i18n!nls/fr/home'
], function(copy) {
  ...
});

似乎有效。

我真的需要定义所有不同的语言吗?这似乎有问题,如果我有20个翻译,我需要在任何地方定义20个文件?

1 个答案:

答案 0 :(得分:0)

为了使用rjs将i18n资源内联到构建文件中,您需要在module config中设置区域设置。如果未指定区域设置,则不会内联i18n资源。只能为构建内联一个区域设置。