Amigxs, estoy internacionalizando un sitio y estoy tengiendo problemas
con la internacionalización del Open_id_authentication.
el tema es asÃ:
todos los mensajes que envÃa este plugin por flash están en el archivo:
/vendor/
plugins/open_id_authentification/lib/open_id_authentication.rb
y a los mismos los reemplazo por el llamado al método de la clase I18n:
class Result
ERROR_MESSAGES = {
:missing => I18n.t(“openid.missing”),
:invalid => I18n.t(“openid.invalid”),
:canceled => I18n.t(“openid.canceled”),
:failed => I18n.t(“openid.failed”),
:setup_needed => I18n.t(“openid.setup_needed”)
}
por supuesto cargo los mensajes en /config/locale/es.rb
las otras traducciones me funcionan bien, pero las del openid me da como
que no la encuentra.
que puede ser?
saludos y gracias
2009/4/29 Marcos V. [email protected]
Ese hash se rellena de valores en tiempo de carga, por lo que cuando se
ejecuta el valor de ERROR_MESSAGES[:missing] por ejemplo ya tiene un
valor
asignado.
Se me ocurren dos opciones:
a) Establecer el locale antes de cargar el plugin.
b) Modificar el plugin para que sea en el momento de llamar a
ERROR_MESSAGES
cuando se hace la traducción, es decir:
…
…
I18n.t(ERROR_MESSAGES[:missing])
…
…
y el hash lo dejas con texto normal
class Result
ERROR_MESSAGES = {
:missing => “openid.missing”,
…
Es lo único que se me ocurre ahora mismo.
Guillermo wrote:
Se me ocurren dos opciones:
a) Establecer el locale antes de cargar el plugin.
cómo se puede hacer eso?
b) Modificar el plugin para que sea en el momento de llamar a
ERROR_MESSAGES
ERROR_MESSAGES es como un hash global que se carga cuando?
saludos y gracias
Aplica este parche, o cámbialo a mano.
From 167880c04797c9e9678a1471dc556b3a1043df96 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Guillermo=20=C3=81lvarez?= [email protected]
Date: Wed, 29 Apr 2009 22:38:29 +0200
Subject: [PATCH] add I18n
lib/open_id_authentication.rb | 12 +++++±-----
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/open_id_authentication.rb
b/lib/open_id_authentication.rb
index 6a05ea0…3d90f18 100644
— a/lib/open_id_authentication.rb
+++ b/lib/open_id_authentication.rb
@@ -39,11 +39,11 @@ 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"
-
:missing => "openid.missing",
-
:invalid => "openid.invalid",
-
:canceled => "openid.canceled",
-
:failed => "openid.failed",
-
:setup_needed => "openid.setup_needed"
}
def self.
@@ -69,7 +69,7 @@ module OpenIdAuthentication
end
def message
–
1.6.0.2
La única diferencia es que he cambiado el lugar donde se realiza la
traducción en la linea 72 de lib/open_id_authentication.rb de git://
DeberÃa romper los tests, ya que estás añadiendo la dependencia de una
clase
externa a la librerÃa. I18n.Una forma más correcta, serÃa que leyeses la
constante a mano y esa la tradujeses en algún lado de tu aplicación.