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: Windows, Mac OS X, Linux 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.
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.
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
Excelente sugerencia, en lo particular a mi me ha pasado. Por lo que ya hago download de esa aplicación. Gracias,
Me gustaMe gusta
hola, actualmente tengo un problema, necesito dejar en mi traduccion un hipervinculo para un correo electronico actualmente lo tengo asi
(<a href=’mailto:lopd@ahmediterraneo.com’> lopd@ahmediterraneo.com</a>) su equivalente seria asi
(lopd@ahmediterraneo.com)
y deberia verse asi:
lopd@ahmediterraneo.com
Me gustaMe gusta
Hola Ricardo
La verdad es que no sabria como hacerlo, quizás alguien más en los comentarios te pueda ayudar.
Gracias por preguntar
Me gustaMe gusta
ya lo solucionamos gracias,simplemente se dejo asi y en el codigo fuente se le hizo un cambio para que lo recibiera…gracias
Me gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Si, contaba con quitarlo. Muchas gracias por la ayuda!
Me gustaMe gusta
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 gustaMe gusta
Una pregunta cual es el plugin que usas para le me gusta y el no me gusta (la manito xd) lo quiero ocupar
Me gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Hola muchas gracias por el post. Me ha servido enormemente, me estaba volviendo loca.
Me gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
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 gustaMe gusta
Ya lo tengo, vas a Catalogue > Properties y poner el charset como utf-8 y ya no hay problema alguno de acentos :)
Me gustaMe gusta
Gracias por la aclaración Fernando.
Me gustaMe gusta
Gracias, la verdad que me salvaste el dia, no recordaba el nombre del programa
Me gustaMe gusta
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 gustaMe gusta
hice un video paso por paso para que me ayudes a encontrar mi error por que no logro solucionar la traduccion… que puedo estar haciendo mal?
http://screencast-o-matic.com/watch/cI13YqVxKK
Me gustaMe gusta
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 gustaMe gusta
A mi también me da problemas con la traducción.
Me gustaMe gusta
He estado usando otra herramienta de traducción y realmente lo recomiendo, como una alternativa a Poedit que no necesita ser descargado y tiene características muy útiles: https://poeditor.com/.
Me gustaMe gusta
Excelente aporte!!! Gracias por compartirlo. Esperamos más comentarios.
Me gustaMe gusta
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 gustaMe gusta
¡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 gustaMe gusta
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 gustaMe gusta