Traducir plantillas de WordPress con Poedit

Si usas WordPress como gestor de contenidos te habrás encontrado con una plantilla que te gusta para tu web, pero que sus textos por defecto están en ingles u otro idioma y suele resultar poco elegante e incluso molesto para nuestros usuarios y visitantes dejarlo así.
La solución se llama Poedit, un programa libre con versiones disponibles para los principales sistemas operativos: WindowsMac OS XLinux y su código fuente que sirve para traducir nuestras plantillas de WordPress a tu idioma natal.

Poedit te facilita editar los archivos de extensión .PO, que son los archivos que contienen las traducciones en WordPress.
A pesar que los archivos .PO pueden ser editados con cualquier editor de texto plano, una vez editados debemos compilar ese archivo y generar un archivo con extensión .MO; Poedit nos genera automáticamente este archivo necesario cada vez que guardemos el .PO siempre que tengamos activa la opción correspondiente, tal como explico más adelante.

Supongo que ya habrás procedido a descargar Poedit desde el enlace anterior, una vez descargado e instalada la aplicación procedes a ejecutarla, verás que la interfaz gráfica es bastante sencilla, encontrarás el menú principal, las líneas a traducir, el texto original y el espacio para escribir la traducción así como los comentarios que como traductores creamos oportunos hacer para versiones posteriores que pudieran realizar otras personas.

Secciones Poedit

Antes de empezar a usar el programa verifica que en la configuración esté habilitada la opción “compilar archivo .mo al guardar”, está en Preferencias >Editor.

Poedit compilar mo al guardar

Ahora debemos abrir el archivo .PO de nuestra plantilla, que encontraras normalmente en la carpeta lang o languages dentro de la plantilla, el archivo debe tener un nombre parecido a en_GB.po  aunque OJO, no todas las plantillas de WordPress utilizan archivos .po y .mo para su traducción.

Por tu seguridad no trabajes directamente sobre el archivo original, primero hazte una copia y trabaja sobre la copia, por si surgen problemas (acuerdate de la Ley de Murphy); abrete el archivo .PO con el programa Poedit y comienza a traducir, una vez termines guardas el archivo .PO con el nombre es_ES.po si la traducción fue al español y automáticamente se generará en la misma carpeta donde lo guardes el archivo .MO correspondiente.

Una vez hecho debes subir estos dos archivos (es_ES.po y es_ES.mo) a la misma carpeta donde descargastes el primer .po (plantilla/languages) y ya tendrás traducida tu plantilla de WordPress a español.

Nota importante: el programa no permite emplear tildes, acentos ni eñes directamente, para ponerlas debemos usar las entidades HTML equivalentes, para los acentos ´ por ejemplo para poner la í debemos usar í una palabra quedaría así: aquí y para el caso de las ñ ˜ por ejemplo Espa˜a

Hay muchas más opciones, pero esas las dejo para que experimentes con el propio programa, espero tus comentarios al respecto.

Este tutorial lo publicó Javier Ampudia en su blog el pasado 10 de Febrero de 2012

Un Comentario

  1. Pingback: Traducir plantillas de WordPress con Poedit « Aqua2webs: consejos ... | Puro "Social Media" | Scoop.it
  2. ricardo

    ya lo solucionamos gracias,simplemente se dejo asi y en el codigo fuente se le hizo un cambio para que lo recibiera…gracias

    Me gusta

  3. robemc

    Buenas, he utilizado un theme llamado Yin&Yang para hacer mi portfolio y está sólo en inglés. En el documento de ayuda pone lo siguiente:

    «The theme doesn’t contain the .pot, .po, or .mo files, but all the text that needs to be translated is properly wrapped in the following translation functions: __, _e, _x, and _n, so you can easily translate the theme using a tool like poEdit.

    Here’s a link to a post that explains how to translate your WordPress theme: http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/. Follow its instructions, and you should have the translation files for your theme ready in no time. »

    He estado dándole vueltas, mirando blogs (así he llegado a este) y he usado el CodeStyling Localization, traduzco lo que me interesa, ok, genero el MO, etc. pero no se cambia cuando actualizo y yo de informático tengo poco… ¿Me puedes ayudar? Gracias!

    Me gusta

  4. aqua2webs

    Hola Roberto.

    Lo primero es darte las gracias por comentar.
    Yendo a tu caso en cuestión parece ser que tras actualizar el .po y generar el .mo no te hace caso la plantilla, ¿no es así?.
    Lo que no comentas es si has subido vía FTP ambos archivos .po y .mo al subdirectorio lang o languages que debería estar dentro del de la plantilla. Si no lo tienes o en la plantilla no existe dicho directorio deberias crearlo para ver si la plantilla lo soporta. Otro detalle importante es el nombre de dichos archivos al guardarlos, en tu caso los archivos se deberian llamar es_ES.po y es_ES.mo. Prueba a ver si con eso damos con la solución. Si no te funciona pasame la plantilla (con un enlace de Dropbox, por ejemplo) y trato de darte una solución específica.

    Me gusta

  5. robemc

    Gracias por responder tan rápido! Especifico más, que antes no quería extenderme.

    Primeramente estoy probando con una versión en mi servidor local usando wamp, no he probado con la que ya tengo subida porque entiendo que debe ser igual y no quiero toquetear mucho ahí.

    Esta plantilla no tenía ninguna carpeta «language» así que creé una y con el plugin CodeStyling Localization generé el .po y el .mo tras traducir algunos de los textos más visibles. No se si en algún sitio le tengo que decir al theme que use ese idioma (aunque el resto del texto, el de wordpress no específico del tema, sí está en español)

    Los nombres los crea el plugin y sí son «es_ES.po» y «es_ES.mo».

    Te pongo el tema un momentín para que lo veas.

    Me gusta

  6. aqua2webs

    Hola Roberto.

    Vi que me habias puesto eso ahí (he quitado el enlace por razones obvias) pero no he podido mirartelo.
    En cuanto tenga un hueco le echo un ojo, si ves que se me va no te importe darme un toque de nuevo.
    Gracias

    Me gusta

  7. Luiso

    Lo traduje con Poedit Y ocupe y acentos y no hubo ningún problema los sube bien sin necesidad de colocar los acentos en codigo html :) Solo es necesario subir el archivo que se crea _Es.mo a la carpeta languages del tema a traducir (pruebas en local aun no lo subo a ninguno de mis sitios ) Se agradece me sirvió mucho su tema ya que no tenía idea de como traducir un tema :) y con el poedit es relativamente fácil .

    Me gusta

  8. aqua2webs

    Lo lleva el propio WordPress.com ;-), si tu tienes el WordPress instalado en tu servidor no sé si la nueva versión del plugin Jetpack lleva esa función. Pruebalo y nos cuentas.

    Me gusta

  9. carlos

    Hola, mi duda es, tengo el wordpress traducido al español y como tuve problemas para ponerlo al español, tuve que añadir los archivos po y mo, a una carpeta para que se tradujese.
    Ahora, he traducido mi plantilla con Poedit, pero en wp-config.php del directorio de instalación ya tengo definido (‘WPLANG’, ‘es_ES’);
    ¿Cómo hago para que sepa que es el archivo de la plantilla y no de la traducción del wordpress?

    Gracias y saludos.

    Me gusta

  10. aqua2webs

    Hola Carlos

    Fácil, tienes una pequeña confusión con las rutas de archivo.
    Lo que comentas es trabajastes sobre la traducción propia del nucleo de WordPress, que se situa dentro de la carpeta languages que a su vez está dentro de wp-content.
    Si tu plantilla se sigue viendo en inglés es que no has traducido o creado los archivos po y mo que van dentro de la carpeta languages, pero esta vez dentro del directorio del nombre de la plantilla, es decir, la ruta sería:
    wp-content/themes/nombre-de-tu-plantilla/languages/
    Espero haberte ayudado, si no dame más detalles como el nombre de la plantilla para ver si soporta o no de manera nativa la traducción.
    Un saludo

    Me gusta

  11. Carlos

    Hola, he encontrado el error.
    Ya había hecho la traducción y puesto en su sitio los archivos po y mo, lo que pasaba era que el archivo es_ES, tenía un hueco en blanco, es_» «ES, así que no me leía el archivo.

    Gracias por todo.

    Me gusta

  12. Leopoldo Jose Brines Riera

    Al traducir mi plantilla no tomaba los cambios, despues de varias lecturas y darle vueltas al asunto me di cuenta que tenia un problema de permisos de lectura en el archivo, hay que estar pendiente que el .mo tenga permiso 644 en caso de servidores con Linux u otro tipo Unix.

    Me gusta

  13. aqua2webs

    Gracias por compartir tu experiencia Leopoldo. Es cierto, los permisos mínimos de archivo para que funcione son 644, aunque en algún caso concreto podría ser 666. Pero ojo, eso solo en caso de ser estrictamente necesario, porque podría provocar problemas de seguridad.

    Me gusta

  14. A. V

    Buenas! Tu artículo es de gran ayuda. Pero no consigo traducir mi blog y no sé qué hago mal…He puesto los archivos .po y .mo tanto en la ruta wp-content/themes/nombre-de-tu-plantilla/languages/ y tampoco creando la carpeta «languages» dentro de las carptetas del theme…No sé qué hago mal! :P Me podrías echar una mano??

    Me gusta

  15. aqua2webs

    Hola Alba, es un placer ayudarte.
    Lo primero es saber si tu blog está hecho con WordPress. Si es asi manda por aquí tu dirección y revisamos la ruta a tu theme ya que donde indico «nombre-de-tu-plantilla» no es literal, hay que sustituirlo por el nombre de tu plantilla. Una vez tengamos claro eso en ese directorio del FTP hay que crear la carpeta «languages» aqui si que exactamente con ese nombre. Y ahí es donde hay que subir los archivos .po y .mo llamandoles default.mo y default.po o es_ES.mo y es_ES.po, eso lo dejo a tu elección.
    Espero haberte ayudado, si te lias vuelve por aquí.
    Un saludo

    Me gusta

  16. Alex Dyplos

    Muchísimas gracias por tu ayuda amigo, cuando llegué a tu blog al fin resolví la duda de cambiar el «botoncito» con READ MORE gracias a esta edición del .po y .mo
    Uffff llevaba todo el día y gracias a ti hoy podré dormir tranquilo jajaja.
    Un saludo, gracias por todo!!

    Me gusta

  17. aqua2webs

    Gracias a ti Alex por darnos el feedback. Es un placer ayudar y contribuir a la mejora de la comunidad web y blogger.
    Si te podemos ayudar en algo más no dudes en comentarlo. Hasta pronto.

    Me gusta

  18. Fernando

    No lo entiendo… ¿Por qué en la plantilla original que te descargas de es.wordpress.org, si miras el fichero es_ES.po si que funciona con los acentos normales sin poner nada de ´?

    Me gusta

  19. aqua2webs

    Gracias a ti por comentar Jhoedram, por cierto genial tu site ;) Potente y muy útil, desarrollaste tu la plantilla?
    Como siempre un placer ayudar, hasta pronto.

    Me gusta

  20. aqua2webs

    Hola Ramiro
    Lo primero de todo es darte las gracias por comentar y hacerlo mediante un screencast, creo que asi es mucho más claro para poder ver donde tienes el problema. La primera parte la has hecho bien, lo que hace el Poedit es editar los literales de texto visibles en la web, es decir, todo aquello que es publico y visible desde las propias secciones de la web. La parte que comentas en el screencast de los menus de administración se edita directamente sobre los archivos del propio template, en este caso functions.php y alguno más y no queda más remedio que hacerlo con un editor de código php como puede ser Dreamweaver o Aptana o con cualquier editor de texto plano como Ultra Edit o Notepad ++. Para darte más detalles tendria que ver exactamente el template y asi te podria ayudar.
    Ya nos comentas si te sirvió esto que te dije. Gracias y hasta pronto.

    Me gusta

  21. Hernan Bensasson

    Hola, hace poco que estoy utilizando Poedit y es una muy buena herramienta.
    Actualmente estoy traduciendo un theme y venía todo bien hasta que algunas traducciones parecen no surtir efecto. No es el caso de que no aparezca la línea en inglés, que a veces pasa que buscas un texto que queres traducir y no aparece en el .po
    Hay muchas traducciones que no las esta tomando! Supongo que es algo que pasa a veces, como puedo solucionarlo?

    Me gusta

  22. Pingback: Cambio de cara Traxxo nuevo rediseño
  23. Olivia

    ¡Hola!:
    Me parece muy interesante tu artículo y me ha servido de gran ayuda. Sin embargo, tengo un problema: aunque la plantilla se ha traducido, hay algunas partes que no, a pesar de haber realizado la traducción de manera completa. He usado Poedit y he seguido los pasos.
    Como ejemplo, dejo un enlace, de este modo se puede ver qué hay palabra sin traducir como «says», «2 thoughts on», «at»…
    http://oliviavicente.com/2014/03/el-nino-que-queria-escribir-un-cuento/
    Muchas gracias de antemano.
    Un saludo.

    Me gusta

  24. aqua2webs

    Hola Olivia, eso que no se ha traducido es porque el template tiene partes en las que el Poedit no es capaz de entrar y no queda más remedio que hacerlo «a pelo». El mundo WordPress es muy amplio y pueden ocurrir casos como el tuyo, no hay una solución universal ;). De cualquier forma gracias por comentar.

    Me gusta

Deja tu comentario, no te cortes