从法语区域设置到英语区域设置的数字本地化不在rails中工作

时间:2016-01-12 09:25:41

标签: ruby-on-rails ruby localization

正如我们所知,法语数字使用“,”作为十进制分隔符与英语相比。

例如:英语: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

我的翻译文件中是否有错误导致此错误?

1 个答案:

答案 0 :(得分:0)

你正在做什么你认为"英语到法语"不是"来自英语"。 121.45是一个Ruby数字文字,既不是英文也不是法文(虽然文字本身使用小写的句点,如英文符号,尽管它使用下划线作为分隔符,不像英语,它使用逗号)。

在你所说的"法语到英语"中,你传递的是法语格式的字符串。这就是为什么它不起作用。 number_with_precision如何知道传递的字符串是用法语表示法写的?