1

ここで説明されている I18n カスケード モジュールを使用したいのですが、カスケードを機能させることができません。

次のような YAML ファイルがあります。

follows:
  every_x_day: "value here"
  ...
  main:
    ...

follow/main ビューでは、キー「.every_x_day」の t ヘルパーを呼び出しています。これは、「follows.main.every_x_day」の略です。もちろん、そのようなキーは見つからないので、カスケードが次に「follows.every_x_day」を探すことを期待しますが、これは起こりません。

ここで質問と回答を見てきました:追加しました

I18n.backend.class.send(:include, I18n::Backend::Cascade)

application.rb に。しかし、翻訳ヘルパーを cascade: true で呼び出すと、単純にカスケードしません。このページは、翻訳が欠落していることを示しています (マゼンタの背景のキー名)。

このi18n パッチでも確認しました。また、カスケード検索が行われないことも示しています。最も具体的なキーを探すだけで、何も見つからず、検索を停止します。

この動作の原因は何ですか?

4

2 に答える 2

0

わかりましたので、コードに次のようなものがあると仮定します。

<%= t('.every_x_day', cascade: true) %>

元の質問の回答で説明した方法は'.every_x_day'、I18nの通常の動作とビューでの遅延検索です。したがって、最初に試みることは、完全なキーをヘルパーに渡すことです。'follows.main.every_x_day'

<%= t('follows.main.every_x_day', cascade: true) %>

次に、元のルックアップパスが正しいことを少なくとも確認できます。それが機能しない場合は、カスケード モジュールが読み込まれていません。config-options 内にコードを入れましたか? (私のupdated_answerを参照してください)。

それでもうまくいかない場合は、私のところに戻ってきてください。一緒に解決しようとします.

于 2013-09-20T10:34:20.940 に答える
0

この問題は I18n-monkeypatch が原因であることが判明しました (元の質問を参照)。モンキーパッチを無効にした後、カスケードは正常に行われました。これは私の不注意でした。明らかに、モンキーパッチなしでアプリをテストしたことはありません。

とにかく、時間を割いてクラフェンベックを助けてくれてありがとう。

于 2013-09-23T07:49:20.017 に答える