Traducción (o internacionalización) básica de aplicaciones con Rails 2.2
Con las nuevas características de Ruby on Rails 2.2 es posible traducir aplicaciones sin necesidad de usar ningún plugin para ello.
La forma de hacerlo es muy fácil.
Lo primero es añadir un filtro a ApplicationController para que se aplique en cada controlador de nuestra aplicación.
class ApplicationController < ActionController::Base
before_filter :set_locale
También añadimos un método para que use la localización especificada por parámetro o la de por defecto.
private
def set_locale
locale = params[:locale] || 'es-ES'
I18n.locale = locale
I18n.load_path += Dir[ File.join(RAILS_ROOT, 'config', 'locales', '*.{rb,yml}') ]
end
En el directorio config/locales introducimos las traducciones de la página. Por ejemplo, para la traducción "es-ES" crearíamos el fichero "es-ES.rb" en el directorio config/locales con el siguiente contenido:
{
:'es-ES' => {
:hello_world => "Hola mundo",
:texto1 => "Texto 1 en castellano"
}
}
Luego por ejemplo, para usar la cadena ":hello_world" en el idioma actual, la llamamos dentro de nuestra vista con
t(:hello_world)
Podemos crear un enlace para cada traucción de la página de forma fácil, por ejemplo si tenemos traducciones de "es-ES" (castellano) y "en-US" (inglés):
<%= link_to 'en-US', :locale => 'en-US' %> || <%= link_to 'es-ES', :locale => 'es-ES' %>
Más información sobre el tema:
http://almosteffortless.com/2008/07/21/simple-localization-in-rails-22/http://i18n-demo.phusion.nl/pages/setup
