number_to_currency语言环境转换

问题描述:

为什么number_to_currency(33.50, :locale => :fr)显示$ 33.50?它应该根据区域设置以不同的货币显示它。我期望得到33,50 €的结果。number_to_currency语言环境转换

非常感谢!

+0

暗示所有法国人住在欧洲?您无法将某些人选择的语言映射到其人口中的货币。例如,想象一个搬到另一个国家的人。或者就我而言,是加拿大法语。 – fbelanger

为了达到这个目的,你需要在config/locales/fr.yml上有一个区域设置文件才能工作。你可以从这里得到它:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml

:locale选项仅声明Rails所需的语言环境。 Rails没有针对项目中每种语言的所有翻译,因此您必须自己包含这些翻译文件。

我知道这有点晚了。但只是希望expalin上面的答案。 使用它作为如下:

number_to_currency(aNumber, :locale => :fr) 

这将使用文件config/locales/fr.yml。 您可以创建自己的货币格式并在config/locales/fr.yml中定义它。该文件将包含以下内容:

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

unit是货币符号。 也可以使用format:格式化整个字符串。 更多的在这Here