我在Rails 4中使用carrierwave 0.9.0
,我正在尝试制作自定义错误消息。在做了一些搜索后,我发现了这个answer:
en:
errors:
messages:
extension_white_list_error: 'My Custom Message'
我试过这个,转到config/locales/en.yml
然后添加上面的代码,但没有任何改变。错误消息仍然相同。
在github here上也有同样的问题,但是没有答案,我认为这个问题仅适用于Rails 4,但不确定,使用Rails 4时会遇到同样的问题吗?
答案 0 :(得分:2)
对于i18n文件,Rails 4.0似乎存在一些加载问题
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activesupport-4.0.0/lib/active_support/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activemodel-4.0.0/lib/active_model/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activerecord-4.0.0/lib/active_record/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/actionpack-4.0.0/lib/action_view/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/carrierwave-0.9.0/lib/carrierwave/locale/en.yml
/Users/joshianiket22/carrierwave_tester/config/locales/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activesupport-3.2.11/lib/active_support/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activemodel-3.2.11/lib/active_model/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/activerecord-3.2.11/lib/active_record/locale/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/actionpack-3.2.11/lib/action_view/locale/en.yml
/Users/joshianiket22/workspace/zenjavi/carrierwave_tester/config/locales/en.yml
/Users/joshianiket22/.rvm/gems/ruby-1.9.3-p327@rails3_2/gems/carrierwave-0.9.0/lib/carrierwave/validations/../locale/en.yml
可以清楚地看到两者之间的区别,即在应用程序特定的 en.yml 之后加载了carrierwave en.yml 并且存在问题
我建议没有简单的方法,除非你在rails应用程序中更改load_paths以及如何管理如预期的那样更改load_paths的顺序
我已经通过here提出了拉取请求。完全敬畏Carrierwave的人来决定它
我之前没有给你提供这个解决方案,但是如果你想要的那么糟糕,你可以做什么
在lib目录中定义一个文件(比如说auto_load_i18n.rb)并将lib路径分配给autoload(在 application.rb 中)
config.autoload_paths += %w(#{config.root}/lib)
在auto_load_i18n.rb
内写下这个
I18n.load_path.delete(Rails.root.join("config/locales/en.yml").to_s)
I18n.load_path << Rails.root.join("config/locales/en.yml").to_s
并要求application_controller.rb
require 'auto_load_i18n'
class ApplicationController < ActionController::Base
我想一切都会有用
您现在可以理解我为什么要避免将其作为可能的解决方案:)
希望这个帮助
答案 1 :(得分:1)
答案 2 :(得分:0)
我使用导轨5.1
我创建了一个文件config/locales/carrierwave.ar.yml
并写了
ar:
carrierwave:
errors:
messages:
min_size_error: "حجم الصورة لابد أن يكون أكبر من %{min_size}"
max_size_error: "حجم الصورة لابد أن يكون أقل من %{max_size}"
....
您可以查看此file:)