Ayer promovía la idea de castellanizar todos los temas posibles, pero hoy voy más allá, vamos a hacer las cosas bien. Vamos a hacerlos completamente idiomátizables.
Para ellos simplemente hemos de seguir unos pasos muy básicos, no tenía ni idea de como hacerlo y Gelo, en 15 líneas ha conseguido explicarmelo :D(Gracías).
Una introducción
Voy a intentar hacerlo lo más claro posible para que todos lo podamos entender, pero quizas me vaya por las ramas por que esto es algo lioso de entender si no has programado nunca.
A grandes rasgos, al igual que cuando traducimos nuestro WordPress al Castellano, simplemente subimos un fichero es_ES.mo a nuestro wp-includes/ para los themes se usa un sistema completamente igual. Basado un sistema llamado Gettext, que asi por encima es un sistema de ficheros donde le dices el texto y donde ha de ponerlo.
Luego desde nuestro fichero de configuración (wp-config.php) definimos una variable que indicará el idioma de nuestro WordPress.
define ('WPLANG', 'es_ES');
Con esta líneas tenemos todo lo que esté idiomátizado de nuestro WordPress en Castellano.
Esto es debido a 3 pasos que se realizan usando 3 ficheros.
POT (Portable Object Template)
Primer paso, lo usa para buscar en el código de WordPress todas las llamadas que producen la traducción.
PO (Portable Object)
Segundo paso, una el fichero pot como un template con la lista de mensajes a traducir.
MO (Machine Object)
Tercer paso, Fichero donde se encuentran las traducciones que casan con las posiciones recibidas en el PO (paso anterior)
¿Un poco espeso? Ya vereis como en la práctica no para tanto ;).
De esta forma lo que queremos hacer es generar los themes para que sean capaces de interpretar estos ficheros.
¿Como hacerlo?
Voy a intentar explicar de forma facil como podemos convertir un theme sin idiomátizar, osea con el texto a piñon entre el código, en un theme idiomatizable y con posibilidad de que otros se encarguen de adaptar el fichero .mo al su idioma de forma facil y rápida (lo explico más adelante).
Para empezar, despues de haber decidido que tema nos gusta y queremos idiomátizar, nos pondremos manos a la obra. Y para empezar vamos a añadir en la primera línea del fichero header.php el siguiente código.
<?php load_theme_textdomain('nombre_tema'); ?>
De esta forma estamos avisando al core (núcle de la aplicación) de WordPress que vamos a usar el fichero de idioma. Lo del ‘nombre_tema’ es el dominio que declaramos para el tema.
Ahora solo nos queda recorrer todos los ficheros del theme y vamos cambiando el texto que vayamos viendo una de estas posibilidades.
_e("texto","nombre_tema);
Busca la traducción y la envia al procedimiento echo de PHP. Sino la encuentra muestra el texto. Este va perfecto para mostrar por pantalla.
__("texto", "nombre_tema");
Busca la traducción y la envia por return. Sinó lo encuentra retorna el texto.
De esta forma ya podemos disfrutar de un tema completamente en castellano y no cerramos las puertas a otras lenguas que simplemente han de hacer lo que comentaré a continuación.
¿Como crear ficheros?
Para que todo esto funcione tedremos que generar el fichero PO, con la política de cadenas a sustituir, esto es realmente facil basta con seguir con los siguientes pasos..
1 .Añadir la siguiente cabecera al fichero (por ejemplo default.po)
# LANGUAGE (LOCALE) translation for WordPress. # Copyright (C) YEAR WordPress contributors. # This file is distributed under the same license as the WordPress package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: WordPress VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2005-02-27 17:11-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n"
Reemplazando el texto en negrita por el adecuado en nuestro caso.
Luego iremos definiendo las líneas que se han de reemplazar con la siguiente estructura.
#: fichero.php:linea
msgid «Cadena original»
msgstr «Cadena traducida»
Cambiaremos fichero, por el nombre del fichero en el que se encuentra el texto a idiomátizar, línea por la línea en la que se encuentra. Cadena original, se refiere al texto que hay en la línea del fichero. Y cadena traducida es el texto traducido.
Por ejemplo.
#: wp-comments-post.php:13 msgid "Sorry, comments are closed for this item." msgstr "Lo siento, los comentarios están cerrados para este post."
De esta forma usando aplicaciones como poEdit, KBabel, The Rosetta Project, GNU Gettext, que se encarga de leer este fichero y generarte los ficheros de Localización traducidos por ti, de forma cómoda y rápida.
Ale, a ponerse manos a la obra y a engrosar la lísta.
+Info
Felipe de Yukei, nos aporta la más información para completar esta informacion.
15 comentarios, 20 referencias
+
#