Drupal

Vistes a Drupal de contingut traduïble amb Entity Translation

Cómo crear una vista con Drupal que muestre el contenido sólo si la traducción es de ese idioma, gestionado con Entity Translation.

Drauta agencia digitalDrauta

Vistas en Drupal de contenido traducible con Entity Translation

Módulo Drupal Entity Transaltion: cómo configurarlo

Entity Translation es un módulo de Drupal que nos permite traducir entidades en Drupal 7. Con Entity Translation, a diferencia que con Content Translation, podemos traducir sólo los campos que tienen que ser traducibles. De esta forma tenemos un único nid y los diferentes campos traducibles asociados a este nid.

Hasta aquí todo perfecto, pero ¿qué pasa si queremos crear una vista que muestre el contenido sólo si la traducción a ese idioma existe?

La respuesta a esta pregunta es usando Content Translation. Es muy sencillo si añadimos a la vista un filtro de Content: Language y seleccionamos Current user’s language.

Con Entity Translation en una vista de contenido tenemos que jugar un poco más. El punto de partida es que si usamos Entity Translation para gestionar nuestras traducciones de contenido, el idioma del contenido será el idioma original, con lo cuál, las traducciones tendrán ese mismo idioma por la razón que es el mismo nid. De esta forma, si añadimos la opción de Content: Language y seleccionamos Current user’s language sólo nos mostrará el contenido escrito originalmente en el idioma en cuestión pero nunca sus traducciones.

Partiendo de la pregunta inicial y con ésta explicación en un supuesto que todos los contenidos tuvieran traducciones realmente no tendríamos que tocar nada en la vista y se nos mostrarían los contenidos traducidos.

Teniendo en cuenta que es muy normal un requerimiento de “Si el contenido no está traducido no lo muestres” o “Este contenido sólo tiene que estar disponible en Chino, pero no en Ruso” podemos configurar la vista de la siguiente manera:

  1. Añadimos una relación: Content: Entity translation: translations.
  2. Añadimos un filtro: Entity translation: Language y Current user’s language.
  3. Es importante desactivar la opción de configuración de entity translation: Enable language fallback.

De esta forma sólo se nos va a mostrar el contenido en una vista si está traducido.

¿Quieres empezar un nuevo proyecto con nosotros?

¿Necesitas servicios para tu web? Descubre como te podemos ayudar y no dudes en contactar con nosotros.