ruby-on-rails - 如何允许用户选择所有货币,但语言有限?
问题描述
我有一个带有约 5 种语言(英语、西班牙语、德语等)的 Rails i18n 应用程序。
用户已经可以在 ~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
如果国家/地区名称在文件中,我可以使用 the
I18n.t('name')
或类似名称来获取它。
我尝试使用Money gem,但是我会失去本地化功能,并且需要替换所有number_to_currency
地方。
我在错误的轨道上吗?有一个更好的方法吗?
解决方案
推荐阅读
- flutter - 如何获取目录中的文件路径?
- azure - 有没有办法通过 Azure 功能向 Azure 服务主体发送电子邮件?
- python - 如何将一个句子分成几个词组?
- c - 使用 strsep 读取 csv 文件的分段错误
- c# - 获取目标总和的数字组合 - C#
- gnupg - gpg:错误读取符号链接'/proc/curproc/file':没有这样的文件或目录
- typescript - 在下一个js中临时存储数据
- css - 在 VS Code 中使用 Google 字体
- ipad - Whatsapp Web Beta 无法在 iPadOS 上运行,反复获取 QR 码
- python - 尝试下载 THOR 跟踪器时,Conda 环境缺少依赖项