我有一个node.js / express应用程序,它使用i18next进行网站本地化。
目前我正在从硬编码版本中提取此列表:https://github.com/TZM/tzm-blade/blob/master/app/config/apps.coffee#L105但是想通过阅读locales
目录然后从中编制列表来创建此列表。
我想基本上排除dev
,README.md
和config.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;
'русский'
>
等...
到目前为止,查看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
函数做到最好。
答案 0 :(得分: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,该项目是它返回的列表的一部分。