17

爲什麼number_to_currency(33.50, :locale => :fr)顯示$ 33.50?它應該根據區域設置以不同的貨幣顯示它。我期望得到33,50 €的結果。number_to_currency語言環境轉換

非常感謝!

+0

暗示所有法國人住在歐洲?您無法將某些人選擇的語言映射到其人口中的貨幣。例如,想象一個搬到另一個國家的人。或者就我而言,是加拿大法語。 – fbelanger

回答

18

爲了達到這個目的,你需要在config/locales/fr.yml上有一個區域設置文件才能工作。你可以從這裏得到它:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/fr.yml

:locale選項僅聲明Rails所需的語言環境。 Rails沒有針對項目中每種語言的所有翻譯,因此您必須自己包含這些翻譯文件。

32

我知道這有點晚了。但只是希望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