Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Traduce tus proyectos Django con Rosetta

django-rosetta es una aplicación que facilita enormemente el proceso de traducción de tus proyectos y aplicaciones que utilizan internacionalización. La aplicación ofrece un interfaz muy similar al sistema de administración de Django (de hecho hace uso de sus css). Permite visualizar todos los catálogos de traducción, porcentaje de términos traducidos, etc. y realizar traducciones de un modo realmente cómodo. Para cada término de traducción muestra un enlace para sugerir la traducción adecuada que funciona gracias a la AJAX Language API de Google y que nos ahorra mucho tiempo. django-rosetta busca todos los archivos .po de tu proyecto en los siguientes directorios:

  • /proyecto/locale/ para el proyecto en el que está instalada
  • /proyecto/app/locale/ para todas las aplicaciones en el setting INSTALLED_APPS
  • Todos los directotios definidos en el setting LOCALE_PATHS. Por lo que también podrás traducir archivos .po que no tengan nada que ver con tus proyectos.

Nota: Si añades directorios a LOCALE_PATHS recuerda escribirlos con el formato 'mi/directorio/locale' sin la barra / al final ya que django-rosetta la añade automáticamente.

screenshot django-rosetta funcionando en una aplicación Django

Añadir django-rosetta a nuestro proyecto

Incluir django-rosetta en nuestro proyecto es realmente sencillo. Una vez descargada en cualquier parte de nuestro python path añadimos 'rosetta' a nuestras INSTALLED_APPS y a continuación incluimos la entrada de la URL base para la aplicación en la URLconf de nuestro proyecto:

urlpatterns = patterns('',
    # ...
    url(r'^rosetta/', include('rosetta.urls')),
    # ...
)

Ya tenemos django-rosetta funcionando.

Traducir con django-rosetta

Por defecto django-rosetta permite acceder al sistema de traducción a los usuarios que son administradores. Para permitir que otros usuarios puedan realizar las traducciones crea el grupo 'translators' y añádelos al mismo.

Para que django-rosetta pueda guardar los cambios realizados en los catálogos de traducción (archivos .po) necesita que el servidor web tenga permisos de escritura en esos archivos. De no tenerlos django-rosetta permite descargar el catálogo editado para no perder las traducciones realizadas. Para cualquier tema referente a internacionalización echa un vistazo a la documentación oficial.

Publicado por Antonio Melé el Wednesday 3 de December de 2008 Compártelo: Facebook: Twitter: | Categorías: internacionalización, pluggables

Entradas similares

Snippet de vista para i18n

Una de las cosas que nos ofrece Django es vistas genéricas y soporte para localización (aka i10n) e internacionalización (aka i18n). Entonces una vez ...


Ejecutar tareas automáticas con django-chronograph

Django-chronograph es una aplicación que permite programar la ejecución de tareas automáticas de manage.py utilizando cron. Permite especificar las tareas a realizar y ...


 
oEmbed y Django: incrusta contenidos de servicios web con django-oembed

oEmbed es un formato que permite usar una representación embebida de una URL en sitios web de terceros. La API de oEmbed permite a ...


Slughifi: slugs a prueba de caracteres internacionales

Slughifi es un código que mejora las características de la función slugify de django.template.defaultfilters. Soporta muchos más caracteres internacionales con todo tipo ...


 
 

2 comentarios:

El Saturday 6 de December de 2008 aaloy dijo:

Por defecto Roseta considera que las claves de traducción están siempre en inglés.

En los tickets encontraréis un parche que permite personalizar el idioma.

Todavía estamos "discutiendo" con el autor sobre la mejor manera de tener esto en consideración, pero al menos temporalmente el parche permite tener un interfaz de traducción más lógico y hacer que el google translator funcione.

Saludos,

--
Antoni Aloy

El Monday 15 de December de 2008 Antonio Melé dijo:

Antoni, gracias por comentar lo del parche para personalizar el idioma. No lo había visto.

Un saludo!

Escribe un comentario: