是否存在针对布尔语的I18N翻译?

Zab*_*bba 23 internationalization ruby-on-rails-3

我需要根据表达式是真还是假来在各种语言中显示"是"或"否".目前我这样做:

fr.yml:

fr:
  "yes": Oui
  "no": Non
Run Code Online (Sandbox Code Playgroud)

辅助方法:

def t_boolean(expression)
  (expression) ? t("yes") : t("no")
end
Run Code Online (Sandbox Code Playgroud)

ERB:

Valid: <%= t_boolean(something.is_valid?) %>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

Rails是否已经有像这样的真/假翻译?

Zab*_*bba 38

读完这篇文章之后,我得到了启发并想出了这个解决方案:

fr.yml

fr:
  "true": Oui
  "false": Non
Run Code Online (Sandbox Code Playgroud)

ERB:

Valid: <%= t something.is_valid?.to_s %>
Run Code Online (Sandbox Code Playgroud)

更新

对于英语,如果你想使用yesno作为值,请务必引用它们:

en.yml

en:
  "true": "yes"
  "false": "no"
Run Code Online (Sandbox Code Playgroud)


小智 10

正如Zabba所说的那样工作正常,但是如果你试图将真假翻译成是 - 否,引用双方,否则你将真实地转化为真(TrueClass).

en:
  "true": "yes"
  "false": "no"
Run Code Online (Sandbox Code Playgroud)