0

セミコロン ( ;) で区切られた複数の部分で構成されるフィールド ウィッチがあるとします。たとえば、これは次のようになります。

'range_numeric; 10; 100'
'length_numeric; 5'

最初の部分は翻訳のキーとなり、後続の部分はテキストに入力される補間値になります。基本的には名前付き引数として渡されますが、補間値ごとにキーを定義したくないのでI18n、次のように使用しようとしています:

en:
 length_numeric: "%{1} digits"
 range_numeric: "%{1} - %{2} digits"

次のような補間値を渡そうとしました:

t(:range_numeric, 10, 100) # returns "%{1} - %{2} digits" 

それで、これはこのようにすることは可能ですか?助言がありますか ?

4

2 に答える 2

3

配列項目の位置によって、配列をハッシュに変換できます。

values = [10, 100]
mapped_values = Hash[(0...values.size).map(&:to_s).map(&:to_sym).zip(values)]
t(:range_numeric, mapped_values)

(補間キーは 0 で始まります%{0})

于 2013-09-25T08:03:33.697 に答える