我需要在我的应用程序中将默认语言环境设置为西班牙语。
这些是我的文件application.rb:
的行 class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
Rails.application.config.i18n.default_locale = :es
end
但是,当我生成脚手架时,拐点是错误的。这是英语的地方。
rails g scaffold Preparado nombre:string
我得到错误的复数:Preparadoes,它必须是:Preparados。
在控制台上我尝试了这个:
irb(main):015:0> I18n.locale = 'es'
=> "es"
irb(main):016:0> 'preparado'.pluralize()
=> "preparadoes"
irb(main):017:0> 'preparado'.pluralize(:es)
=> "preparados"
irb(main):018:0>
我的gemFile包含:
gem 'inflections'
总之,我需要创建一个具有正确复数的脚手架。
对不起我的英文。我知道这不是最好的。
感谢。
答案 0 :(得分:1)
i18n在这里不影响复数化,rails使用变形,并且我只知道一种方法来自定义它:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'preparado', 'preparados'
end
到config/initializers/inflections.rb
#pluralize
有Spanish locale,但每次调用时都需要明确设置它。并且generator在没有参数的情况下调用它。