Web multiidioma


#1

Voy a emprender mi tercer proyecto en rails en apenas 2 meses desde que
empecé, es increible, mi satisfacción por rails crece por momentos, y
todo gracias a vosotros por el apoyo que ofreceis en esta lista, cada
día aprendo más y más.
Ahora necesito hacer una web multiidioma? tengo alguna idea pero traida
de mis proyectos en PHP, seguro que en rails es mucho más fácil, qué me
recomiendan para hacerlo? muchísimas gracias


#2

Mira globalize y gettext. Aún no los he utilizado, pero creo que
básicamente esas son las alternativas más extendidas.

Miguel Angel Calleja Lázaro wrote:

Ahora necesito hacer una web multiidioma? tengo alguna idea pero traida
de mis proyectos en PHP, seguro que en rails es mucho m�s f�cil, qu� me
recomiendan para hacerlo? much�simas gracias


#3

Héctor escribió:

Puedes echarle un ojo a una de las ponencias que se hicieron en la
RailsConf Hispana del año pasado y hablaban respecto a este tema, seguro
que sacas algo interesante:

http://2006.conferenciarails.org/material/david-barral-soluciones-de-internacionalizacion-con-rails.pdf

Saludos,
Mauro.


#4

Héctor escribió:

Si, estaba viendo globalize, siguiendo los pasos de [1], lo estoy
probando en local, uso la versión 1.2.2 de rails, por lo cual instalo la
versión for-1.2, pero me falla y me sale este error:
Exec format error - rake -f
C:/ruby/trabajos/globalize/vendor/plugins/for-1.2/…/…/…/Rakefile
globalize:upgrade_schema_to_1_dot_2 && exit 1

* script/plugin install
  http://svn.globalize-rails.org/svn/globalize/branches/for-1.2
  (this is for Rails 1.2)
* script/plugin install
  http://svn.globalize-rails.org/svn/globalize/branches/for-1.1
  (this is for Rails 1.1)

He probado instalando la otra versión, for-1.1, que no debería si uso la
1.2.2, no?? y parece que lo ha instalado bien, pero luego al hacer rake
globalize:setup me salta el siguiente error de mysql
rake aborted!
Mysql::Error: Identifier name
‘index_globalize_translations_on_table_name_and_it
em_id_and_language_id’ is too long: CREATE INDEX
index_globalize_translations_ on_table_name_and_item_id_and_language_id ON globalize_translations
(table_nam e, item_id, language_id)

[1] http://wiki.globalize-rails.org/globalize/show/Example+Application

Debería instalar la for-1.2 si estoy usando rails 1.2.2, pero no
entiendo el error


#5

Mauro P. escribió:

Ahora necesito hacer una web multiidioma? tengo alguna idea pero traida
que sacas algo interesante:

He probado a usar Globalize siguiendo el ejemplo de [1], sigo paso a
paso, si entro en /admin/products me da una ruta inexistente del tipo
/es/admin/admin/products:
ActionController::RoutingError (Recognition failed for
"/es/admin/admin/products "):

/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.
rb:522:in `recognition_failed’

/usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.
rb:512:in recognize!' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:indispatch’
dispatch.cgi:10

y si entro en /product miro el log y está todo el rato haciendo un bucle
hasta que se peta el navegador, está procesando y redirigiendo, así todo
el rato:
Processing ProductController#index (for … at 2007-05-28 11:34:51)
[GET]
Session ID: 5986ceaea1fcbcd5ebc26c9f95c0f6b5
Parameters: {“action”=>“index”, “controller”=>“product”}
Globalize::Language Columns (0.000517) SHOW FIELDS FROM
globalize_languages
Globalize::Language Load (0.000220) SELECT * FROM
globalize_languages WHERE (globalize_languages.rfc_3066 = ‘es-ES’ )
LIMIT 1
Globalize::Language Load (0.000162) SELECT * FROM
globalize_languages WHERE (globalize_languages.iso_639_1 = ‘es’ )
LIMIT 1
Redirected to http://url/es/product
Completed in 0.03645 (27 reqs/sec) | DB: 0.00090 (2%) | 302 Found
[http://url/product]

No se, he puesto exactamente lo mismo que en el ejemplo, no se qué tengo
mal

[1] http://wiki.globalize-rails.org/globalize/show/Example+Application


#6

Revisa este plugin, :smiley:

http://wiki.rubyonrails.org/rails/pages/Localization+Plugin


#7

On 5/29/07, Miguel Angel Calleja Lázaro removed_email_address@domain.invalid wrote:

Sigo probando globalize [1], alguien sabe por qué me da esta url?
Recognition failed for “/es/admin/admin/products”

¿Qué url estás metiendo en el navegador? ¿has probado a ir
directamente a es/admin/products?

No se si podrá ser que no estás incluyendo es-ES en environment:

include Globalize
Locale.set_base_language(‘es-ES’)
LOCALES = {‘en’=>‘en-US’, ‘es’ => ‘es-ES’}.freeze

Yo también añadiría esta ruta, aunque no te puedo jurar que se lo que
estoy haciendo:

map.connect ‘:locale/admin’, :controller => ‘admin/products’, :action =>
‘index’
map.connect ‘admin’, :controller => ‘admin/products’, :action => ‘index’

Mi triste experiencia es que Globalize es un dolor, y no es el típico
plugin que si no funciona bien puedes prescindir de él, toda tu
aplicación termina enchufada con él de una forma casi obscena y luego
si algo falla termina cascando todo.

include Globalize
Locale.set_base_language(‘es-ES’)
LOCALES = {‘en’=>‘en-US’}.freeze


David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman
Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo

Cuando no hago otra cosa escribo en mildiez.net


#8

David A.
escribió:

map.connect ‘admin’, :controller => ‘admin/products’, :action => ‘index’

Mi triste experiencia es que Globalize es un dolor, y no es el típico
plugin que si no funciona bien puedes prescindir de él, toda tu
aplicación termina enchufada con él de una forma casi obscena y luego
si algo falla termina cascando todo.

Si, incluía el set_base_language en environtment y la variable LOCALES
también.
Tal como lo tenía configurado sin tocar nada he tratado de cambiar mi
set_locale, y ahora si me funciona.

class ApplicationController < ActionController::Base
before_filter :set_locale

def set_locale
begin
Locale.set LOCALES[params[:locale]]
rescue ArgumentError
redirect_to params.merge( ‘locale’ => Locale.base_language.code
)
end
end
end

Antes tenía este otro y no hacía nada o me daba urls raras, no se por
qué:def set_locale
if !params[:locale].nil? && LOCALES.keys.include?(params[:locale])
Locale.set LOCALES[params[:locale]]
else
redirect_to params.merge( ‘locale’ => Locale.base_language.code )
end
end


#9

Session ID: 5986ceaea1fcbcd5ebc26c9f95c0f6b5
[http://url/product]

No se, he puesto exactamente lo mismo que en el ejemplo, no se qué tengo mal

[1] http://wiki.globalize-rails.org/globalize/show/Example+Application


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es

Sigo probando globalize [1], alguien sabe por qué me da esta url?
Recognition failed for “/es/admin/admin/products”

Mi routes.rb

map.connect ‘:locale/:controller/:action/:id’
map.connect ‘:controller/:action/:id’
map.connect ‘’, :controller => ‘product’, :action => ‘index’
map.connect ‘admin’, :controller => ‘admin/products’, :action => ‘index’

El application:
class ApplicationController < ActionController::Base
before_filter :set_locale

def set_locale
if !params[:locale].nil? && LOCALES.keys.include?(params[:locale])
Locale.set LOCALES[params[:locale]]
else
redirect_to params.merge( ‘locale’ => Locale.base_language.code )
end
end
end

El environtment:

include Globalize
Locale.set_base_language(‘es-ES’)
LOCALES = {‘en’=>‘en-US’}.freeze

Usando la consola he comprobado que funciona globalize, pero no entiendo
por qué me hace esa url, alguien sabe por qué? Gracias

[1] http://wiki.globalize-rails.org/globalize/show/Example+Application