处理缺少的论点和I18n

时间:2010-11-11 18:45:27

标签: ruby-on-rails ruby internationalization

鉴于我有一个带有此翻译密钥的密钥

t('my.key', :url => @url)

用多种语言翻译:

key: "Click %{url}"

我做了以下更改:

t('my.key', :link => @link)

key: "Click %{url}"

密钥由社区翻译,我有很多。我们只保留英语语言环境。

现在,我的测试变红了,因为如果这个视图用英语以外的任何语言呈现而不更新所有其他键,它将返回:

missing interpolation argument in "Click %{url}" ({:link=>"..."} given)
(ActionView::TemplateError)

什么是懒惰的程序员解决方法?耙任务删除键?猴子补丁I18n救援到:恩?

1 个答案:

答案 0 :(得分:0)

字符串的可本地化部分没有任何变化。

%{...}永远不会被翻译,它只是一个变量名。

因此,在所有语言中将%{url}更改为%{link}是安全的 (确保不要使用编辑器破坏编码来破坏字符串)。

这有点像更改html标签:

   <p>Click <b>Print</b> to whatever</p>

更改为:

   <p>Click <i>Print</i> to whatever</p>