Sha256: 030cf863c5b1367197d7cc49dd5c2e60df88e707fc9a4758194231f246953ff5

Contents?: true

Size: 1007 Bytes

Versions: 8

Compression:

Stored size: 1007 Bytes

Contents

require 'rails'

module RailsI18n
  class Railtie < ::Rails::Railtie #:nodoc:
    config.rails_i18n = RailsI18n

    initializer 'rails-i18n' do |app|
      RailsI18n::Railtie.instance_eval do
        pattern = pattern_from app.config.i18n.available_locales

        if app.config.rails_i18n.enabled_modules.empty?
          RailsI18n.enabled_modules = Set.new([:locale, :pluralization, :ordinals, :transliteration])
        end

        RailsI18n.enabled_modules.each do |feature|
          add("rails/#{feature}/#{pattern}.{rb,yml}")
        end

        init_pluralization_module
      end
    end

    protected

    def self.add(pattern)
      files = Dir[File.join(File.dirname(__FILE__), '../..', pattern)]
      I18n.load_path.concat(files)
    end

    def self.pattern_from(args)
      array = Array(args || [])
      array.blank? ? '*' : "{#{array.join ','}}"
    end

    def self.init_pluralization_module
      I18n.backend.class.send(:include, I18n::Backend::Pluralization)
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
rails-i18n-8.0.1 lib/rails_i18n/railtie.rb
rails-i18n-8.0.0 lib/rails_i18n/railtie.rb
rails-i18n-7.0.10 lib/rails_i18n/railtie.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rails-i18n-7.0.9/lib/rails_i18n/railtie.rb
rails-i18n-7.0.9 lib/rails_i18n/railtie.rb
rails-i18n-7.0.8 lib/rails_i18n/railtie.rb
rails-i18n-7.0.7 lib/rails_i18n/railtie.rb
rails-i18n-7.0.6 lib/rails_i18n/railtie.rb