2016-12-02 55 views
0

我需要评估语言环境消息字符串中的某些表达式。它不是一种参数,因为它的值在应用程序配置中,但它是表达式的一种,所以我不需要它在消息中被硬编码。另外,参数不适合我,因为消息是由第三方的宝石控制器显示的,而不是我的控制器。所以,我需要像这样得到适当的评价:带表达式的Rails国际化消息

I18n.t(:taken_in_past, scope: [:errors, :messages]) 

.yml文件:

en: 
    errors: 
     messages: 
     taken_in_past: "could not be equal to on of #{Devise.password_archiving_count} previous passwords" 

回答

0

这是唯一的想法,我并不在实践中进行检查。

可以为缺少插值https://github.com/svenfuchs/i18n/blob/master/lib/i18n/config.rb#L107

在您的区域设置

taken_in_past: "could not be equal to on of #{password_archiving_count} previous passwords" 

,并在处理程序中替换此插值

case key 
when 'password_archiving_count' then Devise.password_archiving_count 
+0

我应该在哪里把这个处理程序以及如何设置处理程序执行它? –