У меня есть приложение Rails i18n с ~ 5 языками (английский, испанский, немецкий и т. Д.).
Пользователь уже может выбирать между ~ 5 языками, но валюта ограничена его языком.
Я хочу разрешить пользователям также выбирать любой символ валюты, существующий там.
Пример:
Они должны иметь возможность использовать английский язык,но ЕВРО в качестве символа валюты и т. д. Пользователь в Южной Америке может выбрать испанский язык в качестве языка, но выбрать ту валюту, которая ему нужна, поскольку он не использует евро.
Какой наилучший способ сделатьэто?
В настоящее время мы делаем это, чтобы напечатать валюту:
number_to_currency(12345, locale: @company.locale)
Я думаю, стоит ли нам изменить это на следующее:
number_to_currency(12345, locale: @company.currency)
Мы могли бы загрузить валютув поле выбора с этим помощником:
def locale_currency
I18n.available_locales.map do |locale|
[ I18n.t('number.currency.format.unit', locale: locale), locale.to_s ]
end
end
Но этот помощник показывает только символ, и мы видим знак $
несколько раз. Было бы лучше показать название страны, но название страны не включается в файл перевода: https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/da.yml
Если название страны было в файле, ямог получить его с помощью I18n.t('name')
или аналогичного.
Я пытался использовать драгоценный камень Money , но тогда я потерял бы функцию локализации, и мне пришлось бы везде заменить number_to_currency
.
Я не на том пути? Есть ли лучший способ сделать это?