ruby-on-rails - spanish - rails time format i18n
¿Cómo localizar un plugin de Rails? (2)
Copie ese código en un archivo en /lib
, luego solicítelo en environment.rb
. Realmente es así de fácil.
Me gustaría traducir el complemento OpenIdAuthentication a otro idioma, pero me gustaría no cambiar el complemento directamente.
Aquí está la estructura básica de los mensajes que quiero traducir:
module OpenIdAuthentication class Result ERROR_MESSAGES = { :missing => "Sorry, the OpenID server couldn''t be found", :invalid => "Sorry, but this does not appear to be a valid OpenID", :canceled => "OpenID verification was canceled", :failed => "OpenID verification failed", :setup_needed => "OpenID verification needs setup" } end end
¿Es posible traducirlos sin cambiar el complemento directamente?
¡Gracias!
Simplemente puede sobrescribir OpenIdAuthentication::Result::ERROR_MESSAGES
redefiniéndolo en cualquier momento después de que se cargue el complemento.
Puede hacerlo a través de un complemento diferente (que se carga después de OpenIdAuthentication
), o de un archivo requerido después de que se cargue el complemento (por ejemplo, require lib/open_id_authentication_suppl.rb
en environment.rb
):
El código será esencialmente un trabajo de copiar y pegar, de la siguiente manera:
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
Para integrar esto con I18N-rails (integrado en Rails 2.2.2, disponible como una joya / complemento en versiones anteriores), hazlo:
class I18NResultMessages
def [](key)
I18n.t(key, :scope => ''openidauthentication.errors.messages'')
end
end
class Result
ERROR_MESSAGES = I18NResultMessages.new
end
Luego defina y cargue su archivo I18n yml para las diversas configuraciones openidauthentication.errors.messages
de openidauthentication.errors.messages
en el inicio de Rails, y no olvide configurar su I18n.locale
cada vez que comience a procesar una acción de controlador en función de la configuración regional del usuario conectado.