Pasar al contenido principal

Traducir plugins para Squirrelmail

Enviado por drw el
Squirrelmail

Hace algún tiempo me encontraba implementando una solución de Webmail con software libre, para lo cual me encontré con squirrelmail, un software muy práctico al momento de satisfacer mi necesidad en ese momento.
Instale varios plugins para proporcionar a los usuarios mayor funcionalidad y usabilidad, sin embargo tenía serios problemas con el idioma de algunos de los plugins cargados, mucho más cuando mis usuarios son un tanto apáticos al idioma Inglés.

Es así que decidí buscar cómo generar archivos de traducción para los plugins, y no tener que realizar traducción embebida dentro de cada plugin, es decir que funcione solo para idioma español, una solución no ortodoxa.

Bueno basta de palabrería y empecemos con este tutorial de como traducir los plugins para squirrelmail, cabe recalcar que trabajo bajo la distribución Debian,quizas en otras distribuciones varia la ubicación de los archivos a los cuales me refiero, ademas ya tengo precargado el paquete gettext.


Lo que veremos esta enmarcado dentro del contexto de:

  • Obtener o crear un archivo PO
  • Traducir las cadenas o textos al español
  • Convertir el archivo PO a MO
  • Cargar la traducción para que la lea squirrelmail

Existen casos en que existen archivos del tipo POT, el cual podemos renombrarlo a PO y modificar una linea que explicaré mas adelante en una NOTA, sin en caso no disponemos de este tipo de archivo que lo acabo de mencionar procedemos a realizar la siguiente acción.

Lo primero que debemos hacer es ir hacia el directorio del plugin, dentro de este realizaremos la siguiente operación para obtener todas las cadenas de los archivos PHP

xgettext --keyword=_ -d <plugin_name> -s -C *.php

Ejm:

xgettext --keyword=_ -d miplugin -s -C *.php

Realizada la operación anterior obtendremos un archivo PO con todas las cadenas que se necesita traducir para el lenguaje que se necesite.

#: functions.php:94
msgid "(set to zero to turn off)"
msgstr "(Setear a cero para apagar)"

Como podemos observar la variable msgid es el lenguaje original seteado dentro de los archivos PHP, con la variable msgstr es lo que nosotros necesitamos traducir, como se puede ver en el código anterior.

Realizado este paso necesitas transformar este archivo PO a MO, para lo cual se debe realizar el siguiente comando:

msgfmt -o <nombre de tu plugin>.mo <nombre de tu plugin>.po

Ejm.

msgfmt -o miplugin.mo miplugin.po

NOTA: Una vez realizado este procedimiento necesitas cambiar dentro de este archivo la codificación para tu idioma, lo que se refiere a CHARSET, en mi caso utilizo el iso-8859-1, en caso de que no lo hagas recibirás un mensaje de error al intentar transformarlo a la extensión MO.


“El conjunto de caracteres "CHARSET" no es un nombre de codificación portátil.
La conversión de mensajes al conjunto de caracteres del usuario podría no funcionar.”

Tenemos listo nuestro archivo de traducción, ahora lo que necesitamos es poder cargarlo dentro del lenguaje que necesitamos, es decir en espanol, para esto debes copiar este archivo MO a /usr/share/squirrelmail/locale/es_ES/LC_MESSAGES

Refrescar nuevamente tu página de squirrelmail y podrás ver que ya cuentan con traducción a español.

Espero les sirva este pequeño pero práctico tutorial.

No olvides compartirlo a través de nuestros enlaces de redes sociales.

Saludos.
 

Secciones

Contenido Relacionado