0

サイトのローカリゼーションに i18next を使用する node.js / Express アプリケーションがあります。

現在、ハードコードされたバージョンからこのリストを取得しています: https://github.com/TZM/tzm-blade/blob/master/app/config/apps.coffee#L105しかし、このリストをlocalesディレクトリを読み取り、そこからリストを作成します。

dev基本的に, README.mdandを除外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アンダースコアの関数を使用してこれを行う最善の方法についてのアドバイスは大歓迎です。

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 に答える