如何使用Sails.js获得一个不平凡的i18n翻译?

使用Sails.js版本0.10.x并试图让国际0.10.x工作。

我有我的config/locales/en.json的以下config/locales/en.json

 { "countries": { "au": { "name": "Australia", "fiatCurrency": "AUD", "subnationalDivisions": { "NSW": "New South Wales", "WA": "Western Australia", "VIC": "Victoria", "QLD": "Queensland", "TAS": "Tasmania", "SA": "South Australia", "NT": "Northern Territory", "ACT": "Australian Capital Territory" } } } } 

我的config/i18n.js文件看起来像

 module.exports.i18n = { // Which locales are supported? locales: ['en', 'es', 'fr', 'de'], objectNotation: true }; 

在我的控制器,我试图通过检索正确的subnationalDivision名称

 res.i18n("countries." + country + ".subnationalDivisions." + state) 

但这只是给了我"countries.au.subnationalDivisions.ACT" ,而不是"Australian Capital Territory"

我已经检查了一个简单的例子:

给定包含{ "bingo" : "sparky" } res.i18n("bingo") { "bingo" : "sparky" } en.json文件, res.i18n("bingo")输出"sparky"

但是使用objectNotation例子不pipe用i18n-node文档中的指令。

我应该如何得到这个工作?

这个问题最终成为Sails中的一个bug,它使用的是旧版本的i18n软件包。 我发现并修正了这个错误,并把一个PR发给了Sails团队,它被合并到了Sails的v 0.10.3中。 (在目前的写作风帆现在在0.10.5)