La mejor forma de cambiar layouts

Hola Amigos Roreros, como estan. yo aqui en una encrucijada, verán tengo
un
sitio en rails que en su mayoria son paginas estaticas y tengo que hacer
una
version en portugues y otra en ingles, el tema es que estoy buscando la
mejor manera de gestionar las vistas en español , portugues e ingles con
el
menos codigo posible, o de la manera mas elegante.

bueno , dado esto decidi hacer lo siguiente:

en routes hago lo siguiente:

#parametro para lenguage construimos la ruta asi
www.isitio.com/en/inicio/

map.connect ‘:lang/:controller/:action/:id’

entonces las url que tendrian que ser asi :
sitio.com/controller/accion/?lang=en, las convierto en:
sitio.com/en/controller/accion
hasta aqui no tengo problemas, mis dudas estan cuando en el controller
quiero definir las distintas acciones,


layout ‘inicio’

#aqui en la vista index le pregunto por el valor del parametro lang, y
asi
renderiar las vistas con sus layout correspondientes

def index
if params[‘lang’]== ‘en’
@title ="Welcome to the site "
@style = “home_en”
render :action=>‘inicio_en’,:layout=>‘inicio_en’

end
if params[‘lang’]== ‘pt’
@title =“lo mismo en portugues”
@style = “home_pt”
render :action=>‘inicio_pt’,:layout=>‘inicio_pt’
end
if params[‘lang’] == ‘es’ || !params[‘lang’]
@title ="Bienvenidos al sitio "
@style = “home_es”
render :action=>‘inicio’,:layout=>‘inicio’
end

ahora esta solucion funciona bien, pero antes de seguir implementando
esto,
tengo mis dudas si es la mejor manera de hacer lo que quiero hacer, asi
que
recurro a los gurús para que me aconsejen si estoy bien encaminado o que
mejor tome otro camino, tengo mis dudas si el render
:action=>‘inicio_pt’,:layout=>‘inicio_pt’, quita un poco de recursos que
el
render normal.

bueno quedo atento a sus respuestas, muchas gracias de antemano.

Saludos

On Jan 11, 2008 3:36 PM, Miguel M. [email protected]
wrote:

Hola Amigos Roreros, como estan. yo aqui en una encrucijada, verán tengo un
sitio en rails que en su mayoria son paginas estaticas y tengo que hacer una
version en portugues y otra en ingles, el tema es que estoy buscando la
mejor manera de gestionar las vistas en español , portugues e ingles con el
menos codigo posible, o de la manera mas elegante.

Dale una mirada al plugin Globalize, es bastante completo:

http://www.globalize-rails.org/globalize/show/How+to+use+Globalize

Si no me equivoco, en los videos de la reciente conferencia de Rails
hispana hay uno sobre internacionalización. No lo he visto
todavíapero le daría una mirada antes de seguir.

Hola,

Hola Amigos Roreros, como estan. yo aqui en una encrucijada, verán
tengo un sitio en rails que en su mayoria son paginas estaticas y
tengo que hacer una version en portugues y otra en ingles, el tema es
que estoy buscando la

veo que te han recomendado ya el plugin globalize, que está bastante
completo pero que realmente se ajusta más a las traducciones de campos
que vienen de base de datos y a algunos temas de localización. A cambio
es algo pesado.

Si, como parece, sólo tienes que traducir algunas cadenas, puede ser
mucho más práctico usar el plugin gibberish, que es de lo más ligero que
hay para estas cosas.

Saludos,

javier ramírez

Hola gracias por sus respuestas, la verdad como les dije , solo son
paginas estaticas, y necesito cambiar de css respecto a la version de
la vista, por eso no se si sea necesario tener todo un plugin de
traduccion , ademas como son vistas estaticas, no se si estos plugins
que me dicen pueden gestionar las vistas asi como lo necesito, que de
acuerdo a la variable lang que llegue , me muestre tal o cual vista,
con su css y layout propios. no se si se entiende

no me fijé en que cada vista tenía un layout diferente… en ese caso al
ser distintos layouts no necesitas compartir nada por lo que no te hace
falta tener ningún plugin para gestionar eso. Directamente cada idioma
lo podría servir un controller distinto.

de todos modos, si son páginas estáticas en las que el layout es
diferente para cada idioma, no necesitas rails para nada. Pones el html
directamente en tu webserver y listos.

saludos,
j

Hola gracias por sus respuestas, la verdad como les dije , solo son
paginas
estaticas, y necesito cambiar de css respecto a la version de la vista,
por
eso no se si sea necesario tener todo un plugin de traduccion , ademas
como
son vistas estaticas, no se si estos plugins que me dicen pueden
gestionar
las vistas asi como lo necesito, que de acuerdo a la variable lang que
llegue , me muestre tal o cual vista, con su css y layout propios. no se
si
se entiende mi duda.

Muchas gracias

2008/1/11 javier ramirez [email protected]:

Estoy de acuerdo con Javier, te estás complicando la vida. Haz una
aplicación en HTML con un directorio para cada idioma y tardarás mucho
menos.

El 11/01/2008, a las 22:29, javier ramirez
escribió:

.

2008/1/11 javier ramirez [email protected]:

no me fijé en que cada vista tenía un layout diferente… en ese caso al
ser distintos layouts no necesitas compartir nada por lo que no te hace
falta tener ningún plugin para gestionar eso. Directamente cada idioma
lo podría servir un controller distinto.

Asi es, pero la idea de codigo que puse al inicio del hilo no te parece
mejor idea???

de todos modos, si son páginas estáticas en las que el layout es
diferente para cada idioma, no necesitas rails para nada. Pones el html
directamente en tu webserver y listos.

el problema es que si tengo algunas paginas dinamicas , ademas la
estructura y manejo que hace rails para las vistas me parece fabuloso
por
eso estoy implementando el sitio en Rails

saludos,
j

Gracias

Si vas a tener alguna página dinámicas tendrás que instalar uno de los
plugins que te han recomendado. Si sabés seguro que las vas a tener,
guarda las página dinámicas en la BBDD con un modelo Content por
ejemplo y las podrás traducir con Globalize, además de poderlas
introducir desde el navegador y modificarlas cuando quieras.

El 11/01/2008, a las 22:41, Miguel M. escribió:

ok, entiendo, pero no me puedo arriesgar a traducir un texto entero con
un
plugin , que de seguro no va a dar una traduccion correcta, tengo
entendido
que estos plugins sirven para traducir pequeños parrafos, que se yo,
nombres
de botones, alertas cosas de ese tipo, y seguro que lo implementaré para
el
admin del sitio, pero no me puedo confiar en traducir el sitio completo,
para esos efectos, como dices podria utilizar un modelo content, y tener
content_es, content_pt, content_en etc… . Mi duda es mas como gestionar
de
forma inteligente las plantillas, ya que este proyecto en particular
tiene
mucho css y mucho boton como imagen etc… (requerimientos de mi
cliente).
entonces por eso debo cambiar layouts y css. quizas sea buena idea
utilizar
un controller para cada idioma aunque me parece , personalmente, un poco
reiterativo.

estoy pensando en algun metodo tipo before_filter, que me permita
switchiar
de layout dependiendo de el valor de la variable lang en vez de hacer
if`s
en cada accion , es posible que el codigo que estoy implementando
recargue
el servidor??

Bueno, muchas gracias por la ayuda.

Saludos cordiales

2008/1/11 Emili Parreño [email protected]:

a ha, gracias por la aclaracion Emili

me pondré a investigar entonces

Saludos

2008/1/11 Emili Parreño [email protected]:

El plugin no traduce nada, te da la posibilidad de guardar en la bd
tantas versiones de tus contenidos como idiomas tengas activos. La
traducción la realizas tu.

2008/1/11 Miguel M. [email protected]:

el problema es que si tengo algunas paginas dinamicas , ademas la estructura
y manejo que hace rails para las vistas me parece fabuloso por eso estoy
implementando el sitio en Rails

Disculpa por mi e-mail anterior, no leí muy bien lo que necesitabas,
cualquier plug-in en este caso sería un overkill.

Si vas a tener páginas dinámicas te recomiendo que sigas con la
sugerencia que te han dado previamente, inserta todo el texto en los
layouts y haz un render de estos dependiendo del idioma del usuario.

Habeis visto la cantidad de selects que se hacen en una vista cuando
se utiliza Globalize. Recientemente hable con uno de los
desarrolladores de Globalize y lo quieren rescribir totalmente porque
no estan nada contentos con el. Para traducir yo sin duda utilizaria
Gettext.

Un saludo,

Francesc

On Jan 11, 2008, at 11:04 PM, Emili Parreño wrote:

y seguro que lo implementaré para el admin del sitio, pero no me
switchiar de layout dependiendo de el valor de la variable lang en
2008/1/11 Emili Parreño [email protected]:

2008/1/11 javier ramirez < [email protected]>:

acuerdo a la variable lang que llegue , me muestre tal o cual
lo podría servir un controller distinto.
el problema es que si tengo algunas paginas dinamicas , ademas la


www.artenlinea.cl _______________________________________________

Miguel Michelson Martinez


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Eso Gettext lo permite … dependiendo del idioma te pinta un layout
diferente.

index_es.html.erb
index_us.html.erb

Sin duda “it’s the way to go …”

Un saludo,

Francesc

On Jan 12, 2008, at 12:17 AM, Federico B. wrote:

[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Mmmmm … que plugin es?

Un saludo,

Francesc

On Jan 12, 2008, at 8:14 AM, Emili Parreño wrote:

Habeis visto la cantidad de selects que se hacen en una vista cuando

puedo confiar en traducir el sitio completo, para esos efectos,
vez de hacer if`s en cada accion , es posible que el codigo que
Si vas a tener alguna página dinámicas tendrás que instalar uno de

vista,

estructura y manejo que hace rails para las vistas me parece
Ror-es mailing list




http://lists.simplelogica.net/mailman/listinfo/ror-es


Emili Parreño
http://www.abecedata.com


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

Lo desconocia … He mirado el readme y tiene buena pinta.

  1. Para strings, gettext.
  2. Para modelos, Translate Columns Plugin
  3. Para paginas completas gettext (index_es.html.erb)

Yo hice un pequeño plugin que traducia los modelos pero extrayendolos
a un fichero de Gettext. Mala solución, pero funcionaba de coña. Digo
mala solución porque a la que se introducia nuevo contenido tenia que
recompilar los po.

Un saludo,

Francesc

On Jan 12, 2008, at 8:32 AM, Emili Parreño wrote:

Un saludo,

para cosas pequeñas si. La ponencia que se hico en la conferencia

desarrolladores de Globalize y lo quieren rescribir totalmente

correcta,
cada idioma aunque me parece , personalmente, un poco
Saludos cordiales
por ejemplo y las podrás traducir con Globalize, además de

son

con su css y layout propios. no se si se entiende

el problema es que si tengo algunas paginas dinamicas , ademas



Ror-es mailing list


Emili Parreño
http://www.abecedata.com


Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es


name. Francesc E. i Martí
voice. +34 678.681.603

http://samlown.com/page/RailsTranslateColumnsPlugin

Podéis ver la presentacion que hizo en la conferencia rails. No se
explica muy bien, pero se entiende :slight_smile:

El 12/01/2008, a las 8:18, Francesc E.
escribió:

Para traducir literales la mejor opción es sin duda gettext, pero para
el contenido dinámico o te haces tu algo o usas globalize. Está claro
que para una aplicación grande globalize no sirve no de conya, pero
para cosas pequeñas si. La ponencia que se hico en la conferencia
sobre internacionalización propone otro plugin que tiene buen pinta y
es bastante más eficiente que globalize.

El 12/01/2008, a las 8:08, Francesc E.
escribió: