yml spanish rails i18n ruby-on-rails plugins internationalization

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.