Sha256: 792d9640df6671b7120dda55fe736b801d4a024a60ccfa43b0461f83cfe19c28

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require 'merb_global/base'

module Merb
  class Controller
    include Merb::Global

    class_inheritable_accessor :_mg_locale
    before :setup_language

    # Sets the language of block.
    #
    # The block should return language or nil if other method should be used
    # to determine the language
    #
    # Please note that this method is deprecated and the preferred method is
    # locale.
    def self.language(&block)
      self._mg_locale = block
    end
    # Sets the language of block.
    #
    # The block should return language or nil if other method should be used
    # to determine the language
    def self.locale(&block)
      self._mg_locale = block
    end

    def setup_language
      # Set up the language
      accept_language = self.request.env['HTTP_ACCEPT_LANGUAGE']
      Merb::Global::Locale.current =
        (!params[:locale].nil? && params[:locale].to_s.length > 0 && Merb::Global::Locale.new(h(params[:locale]))) ||
        (self._mg_locale &&
         Merb::Global::Locale.new(self.instance_eval(&self._mg_locale))) ||
         Merb::Global::Locale.from_accept_language(accept_language) || 
         Merb::Global::Locale.new('en')
    end
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
emipair-merb_global-0.0.3 lib/merb_global/controller.rb
emipair-merb_global-0.0.2 lib/merb_global/controller.rb