Rorra's blog Senior Developer

enero 9, 2010

Radiant y Globalize: Redirigiendo al usuario a su sitio con su lenguaje

Filed under: Ruby — admin @ 6:30 AM


Después de instalar Radiant 0.9 y Globalize, tenía que redirigir al usuario a su sitio con su lenguaje.
Si el usuario tenía asignado el locale en, al momento de visitar http://mysite.com, debería de ser redirigido a http://mysite.com/en
Todo este lío porque tenía un flash que funcionaba con archivos xml, entonces arme una estructura de ficheros y necesitaba que el usuario este parado en ese lugar, y no en la homepage, para que el flash funcione correctamente.
Estas son las modificaciones que hice al archivo vendor/extensions/globalize2/lib/globalize2/site_controller_extensions.rb, espero que les sirva

module Globalize2
  module SiteControllerExtensions
    def self.included(base)
      base.class_eval do
        alias_method_chain :find_page, :globalize

        alias_method :o riginal_show_page, :show_page
        alias_method :show_page, :check_homepage_redir

      end
    end

    def check_homepage_redir
      url = params[:url]
      if Array === url
        url = url.join('/')
      else
        url = url.to_s
      end

      if url == '/'
        locale = params[:locale] || cookies[:locale] || session[:locale] || Globalize2Extension.ip_lookup(request.remote_ip)
        redirect_to CGI.unescape('/' + locale + '/') and return
      end

      original_show_page
    end

    def find_page_with_globalize(url)
      globalized_url = '/' + I18n.locale + '/' + url
      find_page_without_globalize(globalized_url)
    end
  end
end

No hay comentarios »

Aún no hay comentarios.

RSS feed para los comentarios de esta entrada. TrackBack URL

Deja un comentario

Powered by WordPress