有没有办法做这样的事情:
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)
但我并不为此疯狂......必须有更好的方法来做这类事情。
答案 0 :(得分:15)
像这样替换你的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
找到更多信息