翻訳ルックアップをネストする方法はありますか?このような何か:Rails I18nネストされたトランスレーションキー
en:
uh_oh: 'Uh Oh!'
error1: :'uh_oh' + ' There was a big error!'
error2: :'uh_oh' + ' There was another big error!'
I18n.t('error1') #=> 'Uh Oh! There was a big error!'
I18n.t('error2') #=> 'Uh Oh! There was another big error!'
私はこののバリエーションの束を試みたが、代わりYAMLのRubyの翻訳ファイルを使用して、それを試してみました。
en:
uh_oh: 'Uh Oh!'
error1: :'uh_oh'
I18n.t('error1') #=> 'Uh Oh!'
しかし、私はerror1
に追加のテキストを追加した場合、uh_oh
は翻訳されません。このは作業を行うことに注意してください。
は基本的に私はいつもこのように、一般的な用語で合格することを避けるためにしたい:
en:
uh_oh: 'Uh Oh!'
error1: '%{uh_oh} There was a big error!'
uh_oh
のような一般的な用語については
I18n.t('error1', {uh_oh: I18n.t('uh_oh')})
は、補間がerror1
を呼び出すたびに同じ(およびその他のですキーはuh_oh
を使用します)、補間する文字列を渡す必要はありません。 (私はそれが国際化で可能だとは思わない
I18n.t('error1')
私はあなたが異なる文章の構造と文法の規則について何を意味しているのか分かります。しかし、変数の値を翻訳キー/値のペア(私が尋ねるようなもの)から取得するか、明示的に渡しても、各言語のファイルで文を構造化する方法は変わりません。 –
本当に、ジェンダーには注意が必要です。私はあなたのためにあなた自身のヘルパーを書く必要があるだろうと思う。つまり、あなたの鍵のようなもの作り: 'キー:「!の!some.key FOOバー」あなたI18n.tラッパーがsome.keyを検索し、それを代わりに行く、その後、キーになるだろう' を – chrismcg
あなたは可能性がありカスタムi18nバックエンドとしてもこれを行います。 – chrismcg