Traducción de Interfaz en Drupal
Carlos — Dom, 21/09/2008 - 13:40
K74 me pregunta cómo traducir el interfaz de Drupal, específicamente el título de "Similar Entries" (que yo no había traducido aún).
En php para imprimir un texto se pueden usar varias funciones, echo, print y muchas otras pero de esta manera resulta imposible reemplazar el texto por otro según el idioma.
Para eso en Drupal existe la funcion t() que se usaría de la siguiente forma:
<?php
echo t("Similar entries");
?>
Lo que hace la función es comprobar si el idioma actual no es el por defecto si existe un string que reemplace al que hemos introducido y devolver ese. Si no encuentra ninguno devolverá el introducido cómo parámetro en la función (por eso salen algunas cosas en Inglés cuando no está del todo traducido) Estas relaciones entre strings se determinan con la página de administracion "Interfaz de traducción" (admin/build/translate) o subiendo un .po para un lenguaje en "Idiomas" (admin/settings/language).
Así para traducir "Similar entries" hemos de ir al buscar de la Interfaz de traducción (admin/build/translate/search) darle al editar de los resultados que nos salgan que nos interese y luego traducir el string en cada uno de los idiomas que tengamos y nos interese.
La función t() permite también introducir variables pero os dejo que os leáis el API para saber cómo van.
Pro último comentar que también existe una función equivalente para Javascript aunque sólo a partir de Drupal 6: Drupal.t()
alert(Drupal.t("Texto disponible para traducir");
Muchas gracias, había mirado
k74 (no verificado) — Dom, 21/09/2008 - 21:08Muchas gracias, había mirado algo el "Translate interface", pero no me acordaba que era tan sencillo jeje
Por cierto estas traducciones que metemos a mano se guardan en archivo del idioma correspondiente? entonces si subimos una actualización las perdemos o se mantienen? aún no me ha tocado actualizar el idioma.
saludos!
De nada :) Las traducciones
admin — Dom, 21/09/2008 - 21:50De nada :)
Las traducciones se guardan en la base de datos así que no hay problema a no ser que cambien los strings. Es decir que si antes en un modúlo había un echo t("Hello") y en la actualización por lo que sea ponen t("Hi") tendrás que traducirlo otra vez pero no es lo normal.
De la misma manera si ya has traducido "Hello" si otro módulo lo usa (el string ha de coincidir exactamente, no vale "Hello friend" por ejemplo) no tendrás que traducirlo.
Perfecto!! gracias!
k74 (no verificado) — Lun, 22/09/2008 - 21:41Perfecto!! gracias!