2016-01-12 21 views
0

正如我們所知,法語數字與英語相比使用「,」作爲小數點分隔符。從法語區域設置到英文語言環境的數字的本地化不在導軌中工作

如:英語:10.25%的 法國:10,25%

我能夠成功英語數字法語翻譯:

number_with_precision(121.45, locale: :fr) 
#=> 121,45 

但我無法法國數字翻譯成英文:

number = number_with_precision(121.45, locale: :fr) 
number #=> 121,45 
number = number_with_precision(number, locale: :en) 
number #=> 121,45 

該數字仍然是法語區域設置。

這是我en.yml:

en: 
    number: 
    format: 
     delimiter: ! ',' 
     separator: '.' 
     significant: false 
     strip_insignificant_zeros: false 

這是我fr.yml:

fr: 
    number: 
    format: 
     delimiter: ! ',' 
     separator: ',' 
     significant: false 
     strip_insignificant_zeros: false 

有沒有在我的翻譯文件錯誤,這是造成這個?

回答

0

你在做什麼,你認爲「英語到法語」不是「從英語」。 121.45是一個Ruby數字字面量,既不是英語也不是法語(儘管文字本身使用英文符號中的小數點,儘管它使用下劃線作爲分隔符,而英語不同,它使用逗號)。

在所謂的「法語到英語」中,您傳遞的是法文格式的字符串。這就是爲什麼它不起作用。 number_with_precision應該如何知道傳遞的字符串是用法語表示的?

+0

我明白你在說什麼。在這種情況下應如何處理?如果我用法語獲得數字字符串,是否有內置的導軌方式將其轉換爲英文格式? –

+0

我不確定你在Rails中如何做到這一點,但twitter-cldr gem對此很有幫助。 – sawa

相關問題