RoR Translation Interpolation - 来自其他翻译的值?

时间:2012-07-03 15:12:02

标签: ruby-on-rails-3

说我有这些翻译:

en:
  article:
    name: "article"

是否可以执行以下操作:

test1: "We have zero #article.name.pluralize"
test2: "There is an error in your #article.name"
test3: "Title for this page is: My #article.name.pluralize.capitalize"

我对1和3并不太感兴趣(即在变量上执行附加功能),但test2将是一个很大的帮助。

这也引出了一个问题:这是构建翻译文件的好方法吗?我问这个是因为其他语言可以以完全不同的方式构建。我正在考虑如何干掉我的翻译文件。

1 个答案:

答案 0 :(得分:1)

您可以定义这样的翻译:

test1: "We have zero %{things}"

然后,在代码中的某个位置,您可以像这样使用它:

I18n.t(:test1, :scope => [:flashes], :things => t(:name, :scope => [:article] ))

或者,使用不同的表示法:

I18n.t("flashes.test1", :things => I18n.t("article.name"))