11

Railsのドキュメントでは、I18Nルックアップがビュー、モデル/検証、コントローラー、ヘルパー、...、ラベルなどから開始されたかどうかに応じて、I18N文字列のデフォルトの場所が異なるようです...

たとえば、t('。something')を使用する場合など、Railsがデフォルトで検索しようとしている場所を確認するにはどうすればよいですか?

4

5 に答える 5

7

開発モードでI18Nバックエンドにモンキーパッチを適用して、バックエンドで検索されたI18nキーを印刷できます。

ここをチェックしてください:

http://www.unixgods.org/Rails/where_is_Rails_trying_to_lookup_L10N_strings.html

于 2011-10-16T20:56:23.847 に答える
3

スタンドアロンI18n.tでは、翻訳キーのプレフィックスは一切ありません。レールの魔法の原因となるヘルパーメソッド/モジュールは次のとおりです。

(メソッドの説明の下にある「ソース」リンクをクリックして、内部で何が起こっているかを確認してください)

ActionView:

http://api.rubyonrails.org/classes/ActionView/Helpers/TranslationHelper.html#method-it

scope_key_by_partial

ActiveModel:

http://api.rubyonrails.org/classes/ActiveModel/Translation.html#method-i-i18n_scope

AbstractController

http://api.rubyonrails.org/classes/AbstractController/Translation.html

于 2011-10-16T21:05:21.183 に答える
1

上記の解決策は、キーが検索されているファイルを見つけるのに役立ちません。これに対するエレガントな解決策は見つかりませんでした。以下は、私が思いついた最良の方法です。指示は、プロダクションボックスに適合させる必要があります。

  1. Railsコンソールを開きますbundle exec rails c
  2. これを実行I18n.load_path.join("\n")してクリップボードにコピーします。一部のクリップボードヘルパーでpryを使用する場合copy は、コンソールで実行するだけです。
  3. 新しいターミナルウィンドウを開いて実行しますpbpaste | ack 'en.yml$' | xargs ack 'key:'。これにより、I18nがアクセスしようとしているキーを含むファイルのリストが出力されます。
于 2014-01-21T19:24:41.357 に答える
0

Rails 3.2(おそらく下位バージョン)では、翻訳のために検索されたキーを示すビューのtヘルパーによってスパンが生成されます。これは(コントローラーなどからの)すべての場合の解決策ではありませんが、上からの完全なモンキーパッチが上にあるこの質問を検索する多くの人々にとっては答えになると思います(モンキーパッチはi18n0.7.0でも機能し、詳細を示します)

title="translation missing: de.<path to key>"
于 2015-03-12T08:57:00.853 に答える
0

デバッグしようとしている翻訳がコントローラーで設定されている場合は、簡単な解決策があります。

コントローラの変数を存在しないタグに設定し、変換がないという警告によって返されるパスを読み取ります。

たとえば、コントローラーで

@test =  t('.choco_pizza')

あなたの見解では:

<%= @test %>

戻ります:

translation missing: fr.unexpected_namespace.controller_name.action_name.choco_pizza

于 2021-09-02T13:13:00.097 に答える