
Durante la instalación de Wordpress 2.3 para uno de los blog’s de mi instituto (IES Luna de la Sierra) me he topado con que una vez terminada la instalación y confirurarlo, el blog se resistía a ponerse en español.
Para aquellos que no hayan instalado nunca wordpress les explico el proceso que hay que seguir para “españolizarlo“:
Necesitaremos bajarnos el fichero de la traducción wp-2.3es_ES.zip (versión 2.3) o wp-2.3.1es_ES-rk1.zip (versión 2.3.1) y seguir las siguientes instrucciones (si vuestro wordpress es una versión anterior habrá que buscar el fichero de traducción para la versión en cuestión, pero el proceso a seguir será el mismo):
- Descomprimir el archivo .zip con lo que obtendrás el archivo de traducción “es_ES.mo“
- Crear una carpeta “languages” dentro de “wp-content” en tu instalación de wordpress.
- Subir el archivo “es_ES.mo” a “wp-content/languages/” (la carpeta recién creada).
- Editar el archivo “wp-config.php”, donde dice define (’WPLANG’, ”); debes poner define (’WPLANG’, ‘es_ES’);
Con esto debería funcionar la traducción, pero ese no fue mi caso, es decir, después de hacer esto más de dos veces (por si acaso) el blog seguía en inglés (eso sí, en un correctísimo inglés). Bueno pues nuevamente a buscar el problema en google (¡que pedazo de herramienta!).
En el caso de servidores de 64 bits (como resulta ser en el tenemos alojado el wordpress), existe un problema conocido entre ciertas versiones de wordpress y php/mysql. En estos casos habrá que seguir el procedimiento siguiente después de haber configurado nuestra instalación tal y como se describe en párrafos anteriores:
1. Hacer una copia de seguridad del archivo “gettext.php” que se encuentra en “wp-includes/gettext.php” buscar el contenido que empieza en la línea 117 y termina en la 119 (para la versión 2.3 y 2.3.1, en otras versiones los números de línea son distintos aunque cercanos a estos):
if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
$this->BYTEORDER = 0;
} elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) {
Reemplazar con:
if (($magic & 0xFFFFFFFF) == ($MAGIC1 & 0xFFFFFFFF) || ($magic & 0xFFFFFFFF) == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
$this->BYTEORDER = 0;
} elseif (($magic & 0xFFFFFFFF) == ($MAGIC2 & 0xFFFFFFFF)) {
2. Si esto no funciona, reemplaza el archivo “gettext.php” que modificaste por el archivo de seguridad y …
3. Puede ser que vuestro servidor no tenga configurado o instalado el módulo Gettext (usado para escribir programas con interfaz en múltiples idiomas), así que habrá que comprobarlos con los pasos siguientes:
- Abrir el block de notas, escribir el siguiente código y guardarlo con el nombre de info.php en el directorio raíz de vuestro hosting
<?php
phpinfo();
?>
- Escribir en el navegador la dirección “http://tudominio.com/info.php“, en la página devuelta usar el buscador del navegador y encontrar la palabra “gettext”, si no la encuentra o el modulo aparece configurado en “disable“, esto querrá decir que nuestra versión de PHP no tiene activado este módulo y por lo tanto no podrá usarse la traducción.
- En tal caso tendremos que ponernos en contacto con el servicio de atención de nuestro hosting para pedir que nos lo activen.
4. En caso de que tengamos activado el módulo, tendrás que buscar otra solución por la web, porque hasta aquí es donde yo he llegado.
Espero haber sido útil. Si alguien tiene otras soluciones puede aportarlas en los comentarios a este post.
Actualización (2 de marzo de 2008): gracias al comentario de zanguanga y a pruebas mías, las versiones con las que parace ser que funciona van desde la 2.1 hasta la última en este momento 2.3.3