0

我有一个使用 i18next 进行网站本地化的 node.js / express 应用程序。

目前我正在从硬编码版本中提取此列表:https ://github.com/TZM/tzm-blade/blob/master/app/config/apps.coffee#L105但希望通过以下方式列出此列表读取locales目录,然后从中组成列表。

我想基本上排除dev,README.mdconfig.json返回并只保留其他目录,以便我可以返回正确的本地国家/地区,例如使用 node-cldr 库根据https://github 提取语言显示名称。 com/papandreou/node-cldr#cldrextractlanguagedisplaynameslocaleidroot

☺  node  ruby-2.0.0-p195 master 2253522""
> var cldr = require('cldr');
undefined
> cldr.extractLanguageDisplayNames('ru').ru;
'русский'
>

ETC...

到目前为止,查看reject http://underscorejs.org/#reject集合我看不到如何删除这些文件和目录

  fs.readdir "./locales", (err,locales) ->
    results = []
    __.reject locales, (value, index, list) ->
      console.log value, index, list
      results.push value
    console.log results

reject任何关于如何使用下划线函数最好地做到这一点的建议都非常感谢。

4

1 回答 1

0

我对coffeescript不太熟悉,但这就是你想要的(可能需要修复,因为我不知道coffeescript):

EXCLUDE = [ 'dev', 'README.md', 'config.json' ]
results = __.reject locales, (value, index, list) ->
  return EXCLUDE.indexOf(value) == -1

_.reject 返回迭代器为其返回 true 的任何项目的新列表。在这种情况下,如果项目不在 EXCLUDE 列表中 (indexOf === -1),则函数返回 true,并且该项目是它返回的列表的一部分。

于 2013-07-25T13:40:14.577 回答