Как разрешить пользователям выбирать все валюты, но с ограниченными языками? - PullRequest
0 голосов
/ 12 октября 2019

У меня есть приложение 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.

Я не на том пути? Есть ли лучший способ сделать это?

...