2

コードを解析してI18nキーをymlファイルに抽出するために使用できるgemまたはツールはありますか?

したがって、コードにある場合:

<%= t("homepage.header", default: "Cool website") %>

ymlファイルに追加されます

homepage:
  header: "Cool website"

GetTextはそれを行うことができますが、私のプロジェクトでは現在、デフォルトのRailsセットアップを使用しています。新しい翻訳キーが必要なときに、ymlファイルを手動で更新しなければならないことは私を悩ませます。

4

3 に答える 3

3

グーグルからここに来る人のために、今ではこの種のものすべてのための宝石があります。

https://github.com/glebm/i18n-tasks

于 2013-12-03T17:11:29.390 に答える
2

あなたがdefault:どこでも使用しているなら、あなたのために働くかもしれない解決策があります:

  • ロケールに移動して、アカウントと新しいプロジェクトを作成します
  • Railsプロジェクトでlocaleappgemをセットアップし、APIキーなどで構成します...
  • デフォルトでは、例のように翻訳呼び出しのあるページにアクセスすると、翻訳がロケールサーバーに送信され、YAMLに同期されます。
  • または、テストカバレッジが良好な場合は、localeappを構成して、テスト環境で実行し、テストスイートを実行することもできます。

理想的ではなく、ロケールの主な目的(YAMLファイルを手動で編集することを回避すること)ではありませんが、この場合は機能するはずです。

完全開示:私はLocaleを共同設立しました。

于 2012-10-22T12:58:07.500 に答える
1

Ruby on Rails用のこのようなツールについては聞いたことがありませんが、存在すると確信しています。一方、自分で作成することもできます。次のような比較的単純な正規表現を使用して作成できます。

\s+t\(\"(?<key>.*?)\"\s*,\s*default:\s*\"(?<value>.*?)\"\)

次に行う必要があるのは、名前付きグループ(上記の例ではキーと値)にアクセスし、それをYAMLファイルに書き留めるだけです。この正規表現をキャプチャするために使用するプログラミング言語に応じて、正規表現の前に(?s)または(?-s)を追加して、行末を空白として処理できるようにすることができます(つまり、複数行の宣言)。 。

于 2012-10-22T18:30:17.917 に答える