我试图将操作放在区域设置中以适应不同的语言例如,英语中的十亿是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/