2

使用Sails.js版本0.10.x并尝试让 i18n 的东西工作。

我有以下内容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"

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

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

但是,尽管i18n-node 文档中有说明,但使用的示例objectNotation不起作用。

我应该如何让它工作?

4

1 回答 1

1

问题调整为 Sails 中的错误 - 它使用的是旧版本的i18n软件包。我发现并修复了错误,并向 Sails 团队发送了一个 PR,并将其纳入v 0.10.3Sails。(目前写作 Sails 现在是 0.10.5)

于 2014-10-21T03:43:11.103 回答