ruby-on-rails – 如何在I18n语言环境中执行插值?

有没有办法做这样的事情:
en:
  welcome:
    hello there,#{current_user.first_name}!  It's nice to see you again.

这显然不行,显然“#{”是yaml中的无效字符,因为当我拉出它时,该字符串显示为只是“你好”.

我能做的最好的就是:

en:
  welcome:
    hello there,(name)!  It's nice to see you again.

....

t(:welcome).gsub("(name)",current_user.first_name)

但是我不是那么疯狂…必须有一个更好的方式来做这种事情.

解决方法

像这样替换你的en.yml
en:
  welcome:
    "hello there,%{name}!  It's nice to see you again."

和你这样的看法

<%=t(:welcome,:name=> current_user.first_name) %>

基本上它作为一个命名参数传递.你可以在Rails Guides 18n Interpolation找到更多

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...