lunes, 31 de marzo de 2008

Controlar cambio de idioma en Plone 3.0.6

Llevába un tiempo intentando dar con el control del idioma en Plone3


Lo que he hecho es hacer dos carpetas para tener los contenidos separados por idioma. En este caso carpeta /es para español y /en para inglés.


En la carpeta raiz / he creado un script en python que se carga por defecto


front-page.py



#Coge la variable de lenguage de la sesión de plone, solo me quedo con los 2 primeros caracteres
idiom=context.REQUEST.get('LANGUAGE')[:2]
#Si queda en blanco selecciona los contenidos en español
if idiom=="":
idiom="es"
#si es cualquier otro idioma selecciona inglés
if idiom not in ["es", "en"]:
idiom="en"
container.REQUEST.RESPONSE.redirect(container.absolute_url()+"/"+idiom)

Ahora hay que tocar en el ZMI, vamos a la dirección: http://localhost:8080/mi_site/portal_languages/manage_configForm y ahí activamos lo siguiente:



  • Allow combined language codes

  • Display flags for language selection

  • Use cookie for manual override


Si no queremos usar las banderitas las ocultamos con css con:



#portal-languageselector {
display:none;
}

Por último, si hemos ocultado las banderitas, en nuestra plantilla o en los portal_actions hacemos las entradas para los selecctores de idioma con por ejemplo (lo importante es :(/mi_site/es?set_language=es&cl=es)



<a href="http://127.0.0.1:8080/mi_site/es?set_language=es&cl=es">Español</a>
<a href="http://127.0.0.1:8080/mi_site/en?set_language=en&cl=en">English</a>

No hay comentarios: