направляющие различные форматы валюты

Я должен показать пользовательское количество, представленное в различных валютах. e.q.:

Your balance: $ 100 000.00
              € 70 000.00
              3 000 000,00 руб.

Таким образом, я должен использовать number_to_currency три раза с различными локалями (en, eu, рутений). Что правильный путь состоит в том, чтобы сделать это?

8
задан aarona 6 June 2010 в 08:30
поделиться

1 ответ

Я не думаю, что вам действительно нужны разные локали, потому что у вас просто балансы в разных валютах. Вы можете просто передать дополнительные аргументы в number_to_currency. Что-то вроде этого:

number_to_currency(70000.00, :unit => "€", :separator => ".", :delimiter => " ", :format => "%u %n")

Это отобразит: € 70 000.00

Кроме того, похоже, что вы можете установить опцию :locale при вызове number_to_currency. Это не документировано, но вот часть кода number_to_currency:

defaults  = I18n.translate('number.format''number.format', :locale => options[:locale], :raise => true) rescue {}
currency  = I18n.translate('number.currency.format''number.currency.format', :locale => options[:locale], :raise => true) rescue {}

Так что вы должны быть в состоянии сделать что-то вроде:

 number_to_currency(70000.00, :locale => :ru)
9
ответ дан 5 December 2019 в 18:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: