Transposh: El mejor sistema de traducción para WordPress


10 julio, 2012
52 comentarios
por Héctor Garrofé

Llevo un año entero trabajando con Transposh y solo tengo una cosa que decir: Es una auténtica maravilla.

No sé por donde empezar a explicar sus virtudes, pero sin dudarlo, la que a mi me ha convencido y nunca me ha hecho buscar otro sistema de traducción, es su sencillez y su absoluta compatibilidad con todo tipo de plugins o contenido hardcodeado  en nuestras propias plantillas.

Al contrario que los plugins más conocidos para traducir nuestro WordPress, este no crea pestañas en la administración ni nos añade nada en el Dashboard, sino que nos permite trabajar desde el front end.

Al principio puede parecer demasiado sencillo, pero os aseguro que es muy potente y cuenta con todo un sistema de shortcodes para realizar funciones avanzadas.

Tranposh tiene una manera completamente diferente de trabajar con lo que yo había visto anteriormente. Todos los plugins que había probado se limitan a mostrar contenido diferente para cada idioma, con la evidente carga de trabajo que ello conlleva al tener que introducir el mismo contenido uno a uno por cada lengua.

Por el contrario, Transposh trabaja siempre sobre el contenido original recogiendo cadenas de texto y traduciéndolas a los distintos idiomas. Lo bueno del plugin es que no se centra solo en el contenido, sino que nos permite traducir absolutamente toda la página. Y cuando digo toda, me refiero a toda, incluso la etiqueta title o el atributo alt de las fotografías.

Por defecto, el plugin crea las cadenas de texto tomando como separadores los signos de puntuación (punto, coma y paréntesis), los números y las entidades HTML.

Personalmente, no me gusta mucho esta manera de separar las cadenas, ya que en muchos casos quedan demasiado pequeñas y me dan problemas con algunos idiomas. También me ocurre que al realizar la traducción a algunas lenguas como el alemán, el orden de las palabras no es el mismo. La frase está en un orden diferente respecto al castellano. Así que contra más grande sea la cadena mejor, así vamos a tener más texto sobre el que rectificar y hacer la traducción.

Para modificar la forma que tiene el plugin de crear cadenas. Solo tendremos que editar unas constantes del archivo parser.php del propio plugin. Los desarrolladores ya lo tienen programado para que podamos modificarlo a nuestro antojo, pero todavía no lo han integrado en la administración visual del plugin. Así que la única manera de modificarlo (por el momento) es editando este archivo del plugin.

Como he comentado, es el archivo parser.php, y lo podéis encontrar en la siguiente ruta de vuestra instalación:
/wp-content/plugins/transposh-translation-filter-for-wordpress/core/parser.php

Los valores por defecto son estos:

[php]
define(‘PUNCT_BREAKS’, TRUE); // Will punctiations such as , . ( and such will break a phrase
define(‘NUM_BREAKS’, TRUE); // Will a number break a phrase
define(‘ENT_BREAKS’, TRUE); // Will an HTML entity break a phrase
[/php]

En los propios comentarios está anotado lo que hace cada constante. Podéis jugar con ellas para ver como os va mejor en cada proyecto. Yo, en el 99% de los casos las dejo así:

[php]
define(‘PUNCT_BREAKS’, FALSE); // Will punctiations such as , . ( and such will break a phrase
define(‘NUM_BREAKS’, FALSE); // Will a number break a phrase
define(‘ENT_BREAKS’, TRUE); // Will an HTML entity break a phrase
[/php]

De esta manera consigo prácticamente siempre que me reconozca párrafos enteros.

Solo hay que tener en cuenta que al actualizar el plugin, perderemos estos parámetros y tendremos que volver a actualizarlos a mano. Tras la actualización, parecerá que hemos perdido todas las traducciones, pero no hay que preocuparse. Lo que realmente está pasando es que el plugin está buscando las equivalencias de las cadenas con un parser.php diferente al que hemos modificado nosotros y no las encuentra. Tras editarlo de nuevo, todas las traducciones volverán a aparecer correctamente. No sufráis, las equivalencias están guardadas en la base de datos, no se pueden perder fácilmente.

¿Puntos negativos del plugin? Pocos, pero bastante graves si no pensamos bien las cosas desde el principio. Una de las mejores cosas de Transposh es que al trabajar con cadenas, las traducciones equivalentes se van guardando en la base de datos. Esto significa, por ejemplo, que si la cadena “Bienvenidos a mi página web” ha sido traducida al inglés por “Wellcome to my website”, esta equivalencia ya está creada. Si esta frase aparece 500 veces más en nuestra web, en cualquier página, indiferentemente de si es contenido estático o dinámico, ya estará traducida correcta y automáticamente en todas las demás páginas porque la equivalencia es la misma.

Pero… Si nos damos cuenta de que en la cadena original había un error ortográfico o simplemente queremos modificar “Bienvenidos a mi página web” por el singular “Bienvenido a mi página web”, todas las traducciones de esta cadena se perderán. Al modificar ni que sea un solo carácter, ya estamos creando una cadena diferente que todavía no tiene traducción o equivalencia.

De todas maneras… Bajo mi opinión, es el mejor plugin de traducción para WordPress que podéis encontrar actualmente.

Comentarios

  1. jpw dice:

    El plugin parece interesante, pero tengo alguna duda.

    Si como dices no se duplican las entradas, es un ahorro considerable de tiempo porque no tienes que volver a cargar imágenes, formatear texto, etc.

    Pero, ¿cómo se elige entre un idioma u otro?. ¿Se ven los 2 a la vez o hay un widget?

    Algo importante, ¿los motores de búsqueda detectan los dos idiomas?, ¿tiene urls sepadas?

    Muchas gracias

    1. hector dice:

      No se ven los dos a la vez. Cuenta con un widget que muestra el selector de idiomas, con el cual puedes cambiar de un idioma a otro.

      En el panel de opciones de Transposh puedes activar que separe los idiomas en diferentes URLs, cosa que recomiendo, de tal manera que las URLs quedarían algo parecido a esto:

      http://www.tudominio.com/cualquier_url
      http://www.tudominio.com/en/cualquier_url
      http://www.tudominio.com/fr/cualquier_url

      Y los buscadores lo detectan claro.

  2. ronald dice:

    amigo tengo una pregunta me gusta mucho el plugin pero tengo un problema en la parte del sitio web donde quiero ubicar el widget no es en un sidebar y no puedo ubicarlo por medio del widget mi pregunta es no existirá el código del widget para copiarlo y pegar dentro de mi plantilla en la parte donde quiero que aparezca

    espero tu respuesta 🙂 gracias

    1. hector dice:

      Puedes introducirlo manualmente en tu tema usando el siguiente código:

      < ?php if(function_exists("transposh_widget")) { transposh_widget(); }?>

      1. Buenas tardes, hay alguna forma que pueda colocar mi Transposh en un sidebar de mi tema? y si puedo editar de una vez un parrafo completo?

  3. Sergio dice:

    He visto que el plugin permite corregir una cadena de texto, si esta mal traducida.
    Pero no se como hacerlo.

    1. hector dice:

      La gracia del plugin es corregir todas las cadenas que se han generado tras la traducción automática, ya que esta no es perfecta.

      Para ello, has de hacer click en icono que aparece al final de cada cadena de texto. Entonces se abrirá un dialogo en el que podrás introducir tu corrección.

      1. Sergio dice:

        No me funciona y con el depurador me sale un error de javascript.

        ncaught TypeError: Object [object Object] has no method ‘uniqueId’ jquery-ui.min.js:5
        e.widget._create jquery-ui.min.js:5
        (anonymous function) jquery-ui.min.js:5
        e.Widget._createWidget jquery-ui.min.js:5
        e.(anonymous function).(anonymous function) jquery-ui.min.js:5
        (anonymous function) jquery-ui.min.js:5
        e.extend.each jquery.min.js:2
        e.fn.e.each jquery.min.js:2
        e.fn.(anonymous function) jquery-ui.min.js:5
        s
        i
        (anonymous function)
        n transposh.js:17
        e.click.css.border
        f.event.handle jquery.min.js:3
        i.handle.k

        ¿Sabes si hay alguna otra interfaz para editar las traducciones?

        Gracias

        1. hector dice:

          Difícil saber que pasa solo viendo el error.

          ¿Puedes proporcionar URL?

          Aunque yo no he tenido problemas, algún compañero me ha comentado que la última versión les da problemas.

          Quizás te toque esperar a que corrijan ellos algún error.

          No hay otra interfaz para modificar las traducciones, solo esta que se carga en el frontend.

          Saludos.

          1. hector dice:

            No veo el selector de idioma. De todas maneras, parece ser un error de jQueryUI, que es lo que te comentaba que falla en algunos WordPress con la última versión del plugin.

            Mira en los foros del plugin y encontrarás alguna solución temporal.

  4. Sergio dice:

    ¿Hay alguna forma para que Transposh “traduzca” imágenes? Es decir, que aparezca una imagen u otra dependiendo del idioma que se seleccione…

    muchas gracias!

    1. hector dice:

      Hola Sergio,

      Para lo que pides puedes usar los shortcodes de Transposh, aquí los tienes.

      Evidentemente no traduce imágenes, pero puedes usarlos para mostrar una imagen diferente para cada idioma.

      Por ejemplo:

      [tp lang=”es” only=”y”]< img src="imagen_es.jpg">[/tp]
      [tp lang=”en” only=”y”]< img src="image_en.jpg">[/tp]

      ¿Me he explicado bien?

      1. Hebert dice:

        Hola Hector, me prodias orientar donde se coloca el shortcode para las imagenes en un sitio de wordpress?

        1. hector dice:

          Muy sencillo Hebert, tienes que ponerlo en el editor de cualquier página o entrada, como cualquier shortcode de WordPress.

          1. Carlos dice:

            Al poner el shortcode [tp lang=”en” only=”y”] porque me aparece en el idioma predeterminado tanto lo incluido en el shortcode con lang “es” como con el lang “en”. En los demás idiomas si me lo respeta, pero en el predeterminado aparece todo.
            Un saludo

          2. Carlos dice:

            Ya lo he conseguido solucionar, para que no aparezca en otro idioma tenemos que poner en el shortcode [tp lang=”es” not_in=”en”]

            Un saludo y gracias!

          3. hector dice:

            Gracias a ti Carlos, por compartir tu respuesta.

            ¡Saludos!

      2. tengo una pregunta sobre esa funcion, estoy intentando hacer lo mismo pero con una URL que cambie de una URL a otra pero no via los post sino mas bien haciendo via php fuera de los posts o pages si no mas bien dentro de un template, llevo semanas buscando como hacerle pero nada

        1. hector dice:

          Puedes hacerlo como si fueran shortcodes normales. Simplemente usa la función < ?php echo do_shortcode( $content ) ?> de WordPress.

  5. Nicolás dice:

    Hector, necesito saber si me puedes ayudar urgente para resolver este error..

    Problem saving translation, contact support.

    Server’s message: Failed to update language database Got error -1 from storage engine

    muchas gracias Hector

    1. hector dice:

      Puede ser simplemente que el sistema de traducción esté caído. ¿Todavía persiste el error?

      Si es así házmelo saber e investigaré sobre el tema. 😉

      1. Nicolás dice:

        Hector, el error persiste lamentablemente..

        Problem saving translation, contact support.

        Server’s message: Failed to update language database Got error -1 from storage engine

        🙁

        1. Nicolás dice:

          estuve hablando con OFER WALD, y me dice algo de que revise las tablas en phpmyadmin.. tu sabes como hacer eso?.. creo que hay que manejar la pagina desde una base de datos, algo asi..

          que será? jaja..

          saludos

          1. hector dice:

            Hola Nicolás,

            Si no sabes como funciona PHPMyAdmin mal lo tenemos… 😉

            Pásame el link de la conversación que estás teniendo con Ofer, que supongo que será en los foros, para continuarla desde allí.

            De todas maneras busca algún tutorial sobre PHPMyAdmin en Google. Es una herramienta web para gestionar bases de datos muy sencilla de utilizar.

            Supongo que Ofer te habrá dicho que compruebes las tablas del plugin en la BD.

            Saludos.

  6. Nicolás dice:

    Hector, la conversación fue asi.. (via mail)

    Hi,

    Go to the utilities tab and try to run the database fix

    Best,

    Ofer Wald, Founder
    Transposh

    Can you check manually that the tables are there?

    Ofer Wald, Founder
    Transposh

    Look in your database, see that you have two tables wp_translations and wp_translationslog

    Best,

    Ofer Wald, Founder
    Transposh

    Not in your folder, in your database, do you have access to phpmyadmin? did you install wordpress by yourself?

    Best,

    Ofer Wald, Founder
    Transposh

    You need a tool for that, such as phpmyadmin, of even the mysql prompt,
    I assume that there are wordpress plugins for that, but haven’t tried any

    I can’t really help much more if you are unable to check this.

    Best,

    Ofer Wald, Founder
    Transposh

    First, do check that those tables I asked you about exist,

    Best,

    Ofer Wald, Founder
    Transposh

    Eso fue!!

    Ayudame porfavor!!!
    saludos!!

    1. hector dice:

      ¿Los has solucionado?

      Si no es así envíame un correo mediante el formulario de contacto y seguimos la conversación vía mail.

  7. viverural dice:

    Hola Héctor,

    Estupenda entrada, estábamos buscando un plugin para traducir el sitio en varios idiomas. Ya habíamos oido hablar de transposh y su potencial, pero no sabemos nada acerca del impacto que puede tener de cara al SEO. La instalación del plugin perjudicaría en algo al SEO?

    Gracias!

    1. hector dice:

      Mi experiencia con el SEO ha sido genial. Solo he tenido algún problemilla al activar las traducciones automáticas. Este problema ya está arreglado en las actuales versiones del plugin, así que no hace falta preocuparse. Si Google detecta que la traducción es automática, no idexa los direfentes idiomas, solo el original. Pero repito que está arreglado.

  8. Selena dice:

    Yo recommendo la herramienta de localización http://poeditor.com/ para la traduccion de WordPress.

    1. hector dice:

      La respuesta llega un poco tarde… pero este plugin es para un uso completamente diferente al que se le puede dar a lo .po y los .mo.

      Con PO Editor no puedes traducir entradas. Está pensado para traducir temas o plugins, no el propio contenido de WordPress.

  9. David dice:

    Héctor,

    Enhorabuena por el artículo y gracias por el soporte!
    teníamos algunas dudas y han sido resueltas gracias a este post y las respuestas a comentarios,

    Gracias, un saludo,

    David

    1. hector dice:

      Para eso estamos. 🙂

  10. Nicolás dice:

    Hector, luego de que estaba todo bien.. ahora ya se borro todo lo que ya habia traducido.. apreto la bandera para ingles y sigue todo igual.. creo que se borro todo y nose porque.. y trato de agregar traducciones y me sale este error ” failed to update language database table `skiworld_chile2013.wp_translations`doesn’t exist..

    Que paso?.. que hago?? .. perdí todo lo que ya habia hecho..

    Saludos

  11. Hola Hector, tengo una duda. He añadido una nueva posición de widget a mi plantilla pero no me aparece el icono de traducción, solamente es un número de teléfono por lo que pensé que quizás sería por ser números
    ¿qué puede ser?

    1. hector dice:

      No te acabo de entender… Añades una posición nueva de widget, ¿para que?.

      Simplemente añade el widget de transposh a cualquier sidebar para poder traducir la pàgina. Los números no se pueden traducir a no ser que te los detecte dentro de una frase. 😉

      1. Lo de la posición de widget es de modo interno puesto que necesitaba otro sitio donde añadir widgets en el theme. Dió la casualidad de que en esa nueva posición no me salía el icono de la traducción manual, pero si me comentas que los números no se pueden traducir a no ser que los detecte en una frase ya me quedo más tranquilo!

        Lo que tengo ahora es otra duda pero esta vez con respecto a las banderas de idiomas, ¿existe algún shortcode con el que poder añadirlas donde lo necesite?

        1. Me auto respondo. En las FAQ he encontrado el código php para implementar las banderas donde necesitemos dentro del theme, pero no me aparecían puesto que no tenía descargado el widget llamado “flags”, solamente tenía el “default” y por ello me mostraba los idiomas en un desplegable solamente.

          1. hector dice:

            Gracias Carlos por responder tu mismo tu pregunta.

            Ten en cuenta que debido a problemas con las políticas del repositorio de plugins de WordPress, Transposh cambió hace un tiempo su funcionamiento.

            A día de hoy, al descargar el plugin desde el repositorio de WordPress, no descargas la versión completa de Transposh, sino una versión “Lite”.

            Dentro del panel de administración del plugin debes marcar los permisos para obtener la versión completa. Una vez hecho este paso, Worpress te dejarà actualizar a la versión completa sin tener que hacer ningún extra.

            En su documentación lo explican paso a paso, pero es bueno hacer el apunte para todos aquellos que lo empiecen a utilizar a partir de ahora…

            ¡Saludos Carlos!

          2. antonio dice:

            Buenas yo no consigo darle solución al tema de las banderas solo me sale el desplegable, el codigo que he puesto es <?php if(function_exists(“transposh_widget”)) { transposh_widget(array(), array(‘title’ => ‘Elegir Idioma’, ‘widget_file’ => ‘wp-content\plugins\transposh-translation-filter-for-wordpress\widgets\flags\tpw_flags_css.php’)); }?> , y he copiado la carpeta flags de otra web que tengo en la ubicacion donde esta la default, pero aun asi no consigo que se vea las banderas

  12. Jose Antonio dice:

    A mi me gustaria que salieran las banderitas en la parte derecha del header, pero no lo consigo, me sale un desplegable. Alguien sabe como resolverlo?.

     

    Gracias

    1. hector dice:

      Perdón por tardar tanto en la respuesta.

      Simplemente crea un sidebar en el lugar que quieras que aparezca el widget.

      También puedes insertarlo de manera manual como se ha comentado en anteriores comentarios. De forma manual.

  13. Edorta dice:

    Yo lo he utilizado en un par de proyectos y la verdad es que funciona genial. Super fácil de configurar y muy buenos resultados. Aún así con un poco más de tiempo (y de presupuesto) el utilizar el plugin WPML resulta una mejor opción.

    Thanks por el post! 😉

    1. hector dice:

      Te doy toda la razón.

      Desde hace tiempo, ya lo he comentado alguna tras publicar este post, aunque conlleve más trabajo y dedicación, WPML es una solución más seria, fiable y profesional.

      A mis clientes ya no les planteo utilizar Transposh en casi ningún caso. Pese a que en sus inicios fue uno de los mejores plugins, WPML es una mejor solución a día de hoy para webs medianamente complejas. 😉

  14. Hola Hector,

    Primero que todo gracias por tu articulo. Aunque sé que este post es bastante antiguo me gustaria preguntarte al respecto. En efecto estoy buscando un plugin para traducir mi sitio web a dos idiomas (ingles y frances), pero no quisiera un plugin de pago, ya que mi sitio web es nuevo y realmente de momento lo quiero hacer solo para que amigos y familiares puedan seguir mis aventuras :).

    He estado leyendo tu post y me preguntaba si a la fecha, conocias otro pluggin mejor o si me recomendarias utilizar el polylang (gratis). Agradezco mucho tu tiempo e informacion que me puedas brindar 🙂

    Un saludo grande 🙂

    1. hector dice:

      Hola Liliana,

      A día de hoy recomiendo WPML, pero como bien dices es de pago, así que sigo recomendando Transposh si WPML no es una opción viable.

      Todavía lo utilizo para proyectos pequeños y el resultado es bueno. Es menos profesional que WPML pero sigue funcionando a las mil maravillas para proyectos como el tuyo. Creo que para tu proyecto es perfecto, ya que es fácil de utilizar y rápido. Tampoco estamos hablando de un proyecto profesional en el que el SEO sea el principal enfoque. ¿Cierto?

      ¡Espero que tengas suerte con tus aventuras! 😉

  15. Rocío dice:

    Hola Héctor,

    Me pregunto como puedo traducir las url. He usado este plugin en varisas ocasiones y siempre marco esta opción, pero no siempre se lleva a cabo. ¿Sabes por qué en algunas web si traduce la url y en otras no?

     

    Gracias de antemano, un saludo

     

    1. hector dice:

      Es por el mismo motivo por el que aveces no traduce todas las palabras de la web. El traductor automático no siempre funciona y se queda parado, pero siempre puedes hacerlo de forma manual.

  16. Javier dice:

    Primero felicidades a los desarrolladores por este plugin, lo estoy implementando en mis trabajos y me parece fantástico todo lo que nos dá y mas siendo gratuito, pero tengo una consulta, cuando estoy en cualquier parte de la web y clico la banderita para realizar la traducción, me recarga desde la pagina inicial, existe alguna forma que traduzca desde la página donde nos encontramos, gracias de antemano.

    1. hector dice:

      El funcionamiento debería ser el que comentas sin configurar nada extra.

  17. Rosa dice:

    Hola Héctor:

    He instalado Transposh en una web que acabo de hacer http://www.xploraapps.com y no funciona. Me explico por partes.

    El plugin se ha instalado perfectamente en sobre el footer de la web. En el dashboard me dicen que se han traducido 1500 frases. Todo funciona bien excepto la tradaducción. Únicamente en la home en francés se han traducido algunos párrafos. Me vendría de gran ayuda que me dijeras qué puedo hacer.

    Gracias de antemano por tu ayuda.

    Saludos,

    Rosa

    1. hector dice:

      Hola Rosa,

      El plugin tiene un límite de traducción automática, tras un tiempo de espera continuará traduciendo siempre que alguien entre en la web.

      Veo que lo tienes solucionado, pero la clave es traducirlo de manera manual. Una revisión la tienes que hacer de todas maneras ya que la traducción automática no es muy profesional.

      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *