Foros del Web » Programando para Internet » Ruby »

[SOLUCIONADO] Duda con I18n

Estas en el tema de Duda con I18n en el foro de Ruby en Foros del Web. Hola que tal, una pequeña consulta con respecto al uso de la gema I18n. Actualmente estoy desarrollando una aplicación en RoR ( 2.1.2 Ruby y ...
  #1 (permalink)  
Antiguo 27/08/2014, 10:57
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años, 1 mes
Puntos: 58
Duda con I18n

Hola que tal, una pequeña consulta con respecto al uso de la gema I18n.

Actualmente estoy desarrollando una aplicación en RoR ( 2.1.2 Ruby y 4.1.4 Rails ), estoy usando la gema devise. Con la gema devise, cree mis registros de usuario, edit, etc, hasta aqui todo bien, pero como las vistas estan en ingles, las cambie a español.

Para esto en el config => application.rb => Cambie el config.i18n.default_locale = :en a :es.

Con esto ya tengo los mensajes en español, gracias a devise.es.yml.

Ahora lo bueno, mi aplicación la van a ocupar consumir en USA y en Brazil, por lo que se me pide que los mensajes se presenten en dichos idiomas. Para esto anexe 3 iconos con una bandera respectivamente, pero no se como hacer para que el idioma se cambie al que se le de click, una manera que se me ocurre es ponerlo asi:

<%= link_to( images_tag('mexico.png), :locale => :es ) %>
<%= link_to( images_tag('usa.png'), :locale => :en ) %>

Pero no me lo cambia, ademas que quisiera que el cambio se mantenga para toda la aplicación. Si me pudieran ayudar un poco se los agradeceria.

Sin mas por el momento, gracias. Seguire investigando
__________________
Your Code as a Crime Scene...
  #2 (permalink)  
Antiguo 27/08/2014, 11:25
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años, 1 mes
Puntos: 58
Respuesta: Duda con I18n

Bueno pues ya di con lo que queria hacer. La solucion es la siguiente:

En el application_controller.rb se tiene que anexar lo siguiente:

before_action :set_locale ( Nombre para cambiar el idioma )

Código Ruby:
Ver original
  1. def set_locale
  2.   I18n.locale = params[:locale] || I18n.default_locale
  3. end

Y listo, con eso pueden cambiar el idioma.
__________________
Your Code as a Crime Scene...

Etiquetas: i18n, rails
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:05.