Ruby on rails 默认I18n ActiveRecord验证转换
如果本地化文件查找失败,我可以使用默认的I18n配置进行查找吗 作为轨道的一部分 作为此解决方案的一部分,Rails框架中的每个静态字符串(例如活动记录验证消息、时间和日期格式)都已国际化,因此Rails应用程序的本地化意味着“超越”这些默认值 因此,当我添加自己的本地化文件时,我会丢失ActiveRecord的默认rails错误文本。 e、 g.给定模型中的以下代码Ruby on rails 默认I18n ActiveRecord验证转换,ruby-on-rails,ruby,internationalization,Ruby On Rails,Ruby,Internationalization,如果本地化文件查找失败,我可以使用默认的I18n配置进行查找吗 作为轨道的一部分 作为此解决方案的一部分,Rails框架中的每个静态字符串(例如活动记录验证消息、时间和日期格式)都已国际化,因此Rails应用程序的本地化意味着“超越”这些默认值 因此,当我添加自己的本地化文件时,我会丢失ActiveRecord的默认rails错误文本。 e、 g.给定模型中的以下代码 validates_length_of :name, :maximum => 50 当这失败时,我得到 translat
validates_length_of :name, :maximum => 50
当这失败时,我得到
translation missing: en-gb, activerecord, errors, models, model_name, attributes, name, too_long
两种可能的修复方法:
:消息
到每个验证方法?e、 g
validates_length_of :name, :maximum => 50, :message => "is too long (maximum is %{count} characters)"
问题是有相当多的调用,添加新代码的人必须记住添加文本。
(我认为变量替换在这里不起作用!)
errors:
messages:
less_than: must be less than %{count}
这里的问题是,必须将相同的文本添加到每个语言环境文件中(因为我对翻译这些文件不感兴趣),这不是什么大不了的事,但似乎很奇怪(使用rails 2.3.5)我发现最好的方法是将gem包含在项目中,这样就可以在所有可用的语言环境中进行翻译。然后在应用程序的翻译文件中,只需覆盖所需的文件 注意:您的项目需要使用gem定义的相同区域设置,因此在您的示例中,您希望使用
en-GB
,而不是en-GB