Sha256: a593b9fb886056ff7e89d194c5b87779b8730af6f93fd3c7b5660d9b65cbff59

Contents?: true

Size: 962 Bytes

Versions: 3

Compression:

Stored size: 962 Bytes

Contents

require 'rails'

module RailsI18n
  class Railtie < ::Rails::Railtie #:nodoc:
    initializer 'rails-i18n' do |app|
      app.config.eager_load_namespaces << ::I18n if ::I18n.respond_to?(:eager_load!)

      RailsI18n::Railtie.instance_eval do
        pattern = pattern_from app.config.i18n.available_locales

        add("rails/locale/#{pattern}.yml")
        add("rails/pluralization/#{pattern}.rb")
        add("rails/ordinals/#{pattern}.rb")
        add("rails/transliteration/#{pattern}.{rb,yml}")

        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

3 entries across 3 versions & 1 rubygems

Version Path
rails-i18n-7.0.3 lib/rails_i18n/railtie.rb
rails-i18n-7.0.2 lib/rails_i18n/railtie.rb
rails-i18n-7.0.1 lib/rails_i18n/railtie.rb