有没有办法做这样的事情:
- 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找到更多