如何使用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)