Class: Authlogic::I18n

Inherits:
Object
  • Object
show all
Defined in:
lib/authlogic/i18n.rb

Overview

I18n

This class allows any message in Authlogic to use internationalization. In earlier versions of Authlogic each message was translated via configuration. This cluttered up the configuration and cluttered up Authlogic. So all translation has been extracted out into this class. Now all messages pass through this class, making it much easier to implement in I18n library / plugin you want. Use this as a layer that sits between Authlogic and whatever I18n library you want to use.

By default this uses the rails I18n library, if it exists. If it doesnt exist it just returns the default english message. The Authlogic I18n class works EXACTLY like the rails I18n class. This is because the arguments are delegated to this class.

Here is how all messages are translated internally with Authlogic:

Authlogic::I18n.t('error_messages.password_invalid', :default => "is invalid")

If you use a different I18n library or plugin just redefine the t method in the Authlogic::I18n class to do whatever you want with those options. For example:

# config/initializers/authlogic.rb
module MyAuthlogicI18nAdapter
  def t(key, options = {})
    # you will have key which will be something like: "error_messages.password_invalid"
    # you will also have options[:default], which will be the default english version of the message
    # do whatever you want here with the arguments passed to you.
  end
end

Authlogic::I18n.extend MyAuthlogicI18nAdapter

That it's! Here is a complete list of the keys that are passed. Just define these however you wish:

authlogic:
  error_messages:
    login_blank: can not be blank
    login_not_found: does not exist
    login_invalid: should use only letters, numbers, spaces, and [email protected] please.
    email_invalid: should look like an email address.
    password_blank: can not be blank
    password_invalid: is not valid
    not_active: Your account is not active
    not_confirmed: Your account is not confirmed
    not_approved: Your account is not approved
    blank_record: You can not login with a blank record
    new_record: You can not login with a new record

Class Method Summary collapse

Class Method Details

.t(key, options = {}) ⇒ Object

All message translation is passed to this method. The first argument is the key for the message. The second is options, see the rails I18n library for a list of options used.


47
48
49
50
51
52
53
# File 'lib/authlogic/i18n.rb', line 47

def t(key, options = {})
  if defined?(::I18n)
    ::I18n.t(key, options.merge(:scope => :authlogic))
  else
    options[:default]
  end
end