django-transmeta es una aplicación reusable que nos permite añadir traducciones a los campos de nuestros modelos. Es muy fácil de utilizar ya que crea automáticamente un campo en la base de datos por cada atributo traducible y cada idioma de nuestro setting LANGUAGES.
Así, si tenemos un campo llamado nombre y nuestro setting LANGUAGES son inglés y español django-transmeta creará los campos nombre_es, nombre_en en la base de datos y al acceder directamente a atributo nombre obtendremos la traducción correspondiente al idioma que esté activo en la petición.
Para usar django-transmeta tenemos que añadir un atributo __metaclass__ a los modelos que tengan campos con traducciones y en la clase Meta del modelo añadiremos el atributo translate en el que tendremos que incluir la lista de campos que permiten ser traducidos. Valga como ejemplo el siguiente modelo en el que los campos con traducción serán description y body:
from transmeta import TransMeta
class Book(models.Model):
__metaclass__ = TransMeta
title = models.CharField(max_length=200)
description = models.TextField()
body = models.TextField(default='')
price = models.FloatField()
class Meta:
translate = ('description', 'body', )
Al añadir nuevos idiomas o marcar nuevos campos como traducibles django-transmeta se ocupa de detectar qué tablas faltan en la base de datos para crearlas. Para ello basta utilizar el siguiente comando tras haber modificado cualquier modelo:
./manage.py sync_transmeta_db
Otra ventaja es que django-transmeta muestra todos los campos de idiomas en el sitio de administración de Django de forma transparente, permitiendo editar todos los idiomas desde el Admin.
Publicado por Antonio Melé el Lunes 14 de Febrero de 2011
Compártelo:
| Categorías:
aplicaciones,
internacionalización,
modelos,
pluggables
Desde Yaco nos traen las aplicaciones pluggables django-inlinetrans y django-inplaceedit que permiten editar traducciones de templates y objetos de nuestros modelos desde el frontend ...
Algo interesante que nos aporta django-command-extensions es poder crear una representación gráfica de nuestros modelos (o por decirlo de otro modo nuestro esquema de ...
Las migraciones o evoluciones de esquema son las modificaciones que hacemos a modelos ya creados y que afectan a la base de datos. Cuando ...
django-localeurl es una aplicación que permite el uso de códigos de idiomas en las URLs de nuestro proyecto. Esto trae la ventaja de que ...
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas