2014-10-20 32 views
1

我在我的项目中支持两种语言(英语和西班牙语)。问题是,当我使用r.js优化代码时,输​​出文件具有嵌入的根语言(英语),但不包含其他变体(西班牙语)。有没有办法将所有语言添加到优化的RequireJS项目?

如何强制优化器在输出文件中嵌入所有语言?

例子:

// /app/app.js 
define(["i18n!nls/something"], function(somethingLanguage) { /* stuff */ }); 

// /app/nls/something.js 
define({ 
    "root": { 
     "hi": "Hi!" 
    }, 
    "es": true 
}); 

// /app/nls/es/something.js 
define({ 
    "hi": "¡Hola!" 
}); 

// /app/result-file.js 
define("nls/something", { "hi": "Hi!" });define(["i18n!nls/something"], function(somethingLanguage) { /* stuff */ }); 

正如你所看到的, “NLS/ES /东西” 是从 “结果文件” 失踪。它应该看起来像这样:

// /app/result-file.js 
define("nls/something", { "hi": "Hi!" });define("nls/es/something", { "hi": "¡Hola!" });define(["i18n!nls/something"], function(somethingLanguage) { /* stuff */ }); 

我希望你能帮助我,伙计们。

谢谢!

回答

0

在r.js修复了这个问题一个额外的配置:

config: { 
    "i18n": { 
     locale: "es" 
    } 
} 

希望它可以帮助其他有同样问题。

1

您可以使用l10ns它将所有本地化包装在一个文件中,并且它与AMD兼容换句话说,它可以与RequireJS一起使用。

相关问题