number_to_currency locale converting
Asked Answered
E

2

30

Why does number_to_currency(33.50, :locale => :fr) displaying $33.50? It should display it in different currency based on the locale. I would expect a result of 33,50 €.

Thanks a lot!

Economy answered 30/8, 2011 at 0:43 Comment(0)
C
24

For this to work you need to have a locale file at config/locales/fr.yml. You can get it from here: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml.

The :locale option only declares to Rails what locale you want it to be. Rails does not have all the translations for every language in the project, and so you must include these translation files yourself.

Caliginous answered 30/8, 2011 at 0:47 Comment(0)
S
53

I know this is a bit late. But just wanted to expalin the above answer. Use it as following:

number_to_currency(aNumber, :locale => :fr)

This uses the file config/locales/fr.yml. You can form your own currency format and define it in config/locales/fr.yml. The File will contain the following:

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

unit is the currency Symbol. also you can format the whole string with the format:. More on this Here

Simonsimona answered 21/2, 2014 at 12:7 Comment(0)
C
24

For this to work you need to have a locale file at config/locales/fr.yml. You can get it from here: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml.

The :locale option only declares to Rails what locale you want it to be. Rails does not have all the translations for every language in the project, and so you must include these translation files yourself.

Caliginous answered 30/8, 2011 at 0:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.