Вы можете просто перезаписать OpenIdAuthentication::Result::ERROR_MESSAGES
, переопределив его в любое время после загрузки плагина.
Вы можете сделать это через другой плагин (который загружается после OpenIdAuthentication
) или из файла, необходимого после загрузки плагина (например, require lib/open_id_authentication_suppl.rb
in environment.rb
):
Код, по сути, будет заданием копирования-вставки, следующим образом:
module OpenIdAuthentication
class Result
ERROR_MESSAGES = {
:missing => "<message in foreign language>",
:invalid => "<message in foreign language>",
:canceled => "<message in foreign language>",
:failed => "<message in foreign language>",
:setup_needed => "<message in foreign language>"
}
end
Чтобы интегрировать это с I18N-rails (встроенный в Rails 2.2.2, доступный как gem / plugin в предыдущих версиях), выполните:
class I18NResultMessages
def [](key)
I18n.t(key, :scope => 'openidauthentication.errors.messages')
end
end
class Result
ERROR_MESSAGES = I18NResultMessages.new
end
Затем определите и загрузите свой Y18n-файл I18n для openidauthentication.errors.messages
различных локалей при запуске Rails, и не забудьте установить I18n.locale
каждый раз, когда вы начинаете обрабатывать действие контроллера на основе локали вошедшего в систему пользователя .