我试图将操作放在区域设置中以适应不同的语言例如,英语中的十亿是1000000000,而西班牙语中的十亿是10000000000,因此我希望能够有以下内容:

en:
  billion: "You have %{money} billions"
es:
  billion: "Tienes %{money/1000.0} billones"

为了能够写作:
I18n.t :billion, :money => whatever

对任何语言都是正确的。
但是,似乎我不能将操作放在区域设置的字符串中。
我该怎么做也许我的方法是错误的“哲学”谈话?
谢谢大家!

最佳答案

根据调查,这是解决办法很抱歉多次编辑。

I18n.interpolate("%{money} billion", :money => Proc.new{|x| x[:vals] / 1000}, :vals => 12121)

因此,您可以将翻译文件更改为使用:vals in:en和:money in:es。
en:
  billion: "You have %{money} billions"
es:
  billion: "Tienes %{money_proc} billones"

I18n.t :billion, {:money => 12121, :money_proc => Proc.new{|x| x[:money]/1000.0}}

关于ruby-on-rails - Rails I18n语言环境的字符串内部的操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4517790/

10-13 03:39