web-dev-qa-db-ja.com

number_to_currencyロケール変換

number_to_currency(33.50, :locale => :fr)が$ 33.50を表示するのはなぜですか?ロケールに基づいて異なる通貨で表示する必要があります。 33,50 €の結果を期待します。

どうもありがとう!

23
joshim5

これが機能するためには、これが機能するためにconfig/locales/fr.ymlにロケールファイルが必要です。ここから入手できます: https://github.com/svenfuchs/Rails-i18n/blob/master/Rails/locale/fr.yml

:localeオプションは、Rails希望するロケールのみを宣言します。Railsは、プロジェクト内のすべての言語のすべての翻訳を持っているわけではありません。 、したがって、これらの翻訳ファイルを自分で含める必要があります。

20
Ryan Bigg

私はこれが少し遅いことを知っています。しかし、上記の答えを説明したかっただけです。次のように使用します。

number_to_currency(aNumber, :locale => :fr)

これはファイルconfig/locales/fr.ymlを使用します。独自の通貨形式を作成し、config/locales/fr.ymlで定義できます。ファイルには次のものが含まれます。

fr:
   number:
     currency:
        format:
          unit: '€'
          delimiter: ','
          separator: '.'
          precision: 2
          format: '%u%n'

unitは通貨記号です。また、文字列全体をformat:でフォーマットすることもできます。これについての詳細 ここ

40
Saad Masood