Sha256: 6c4d8f22f4b96c235f6aad96dd1febae0582bf9eb61909853b62c92682a3f400

Contents?: true

Size: 830 Bytes

Versions: 10

Compression:

Stored size: 830 Bytes

Contents

module SocialStream
  module Controllers
    # Common methods added to ApplicationController
    module I18nIntegration
      extend ActiveSupport::Concern

      included do
         before_filter :set_locale
      end

      module InstanceMethods
        # Set locale as per params, user preference or default
        def set_locale
          I18n.locale = params[:locale] || user_preferred_locale || extract_locale_from_accept_language_header || I18n.default_locale
        end

        private
	def extract_locale_from_accept_language_header
	  return nil if request.env['HTTP_ACCEPT_LANGUAGE'].nil?
	  (request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).map{|l| l.to_sym} & I18n.available_locales).first
	end

	def user_preferred_locale
          current_user.language if user_signed_in?
	end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
social_stream-0.18.2 base/lib/social_stream/controllers/i18n_integration.rb
social_stream-base-0.13.2 lib/social_stream/controllers/i18n_integration.rb
social_stream-0.18.1 base/lib/social_stream/controllers/i18n_integration.rb
social_stream-base-0.13.1 lib/social_stream/controllers/i18n_integration.rb
social_stream-0.18.0 base/lib/social_stream/controllers/i18n_integration.rb
social_stream-base-0.13.0 lib/social_stream/controllers/i18n_integration.rb
social_stream-0.17.1 base/lib/social_stream/controllers/i18n_integration.rb
social_stream-base-0.12.1 lib/social_stream/controllers/i18n_integration.rb
social_stream-0.17.0 base/lib/social_stream/controllers/i18n_integration.rb
social_stream-base-0.12.0 lib/social_stream/controllers/i18n_integration.rb