Ficheros POT – MO

Por jcdelolmo • 23 Feb, 2007 • Sección: Profesional, Tecnología

Una vez comprobado lo que cuesta conseguir un fichero POT (fuente de aplicaciones GNU) para traducir los scripts de PHP, voy a explicar el procedimiento para generarlo y gestionarlo.

Estos ficheros, para quien no los conozca, son traducciones del lenguaje utilizado por aplicaciones PHP para habilitar la opción multilingüaje. Contienen las cadenas de texto originales que el desarrollador ha declarado en su código y las cadenas de texto que queremos presentar en el lenguaje que despues queramos utilizar.

Breve descripción de PHP.

Desde el código fuente de PHP, podemos utilizar una mezcla de HTML y PHP para escribir en pantalla.

línea 80: <p><strong><?php_e(‘Cadena a mostrar’);?></strong>

La función php_e busca en el fichero de lenguaje que utiliza la aplicación (que previamente se asigna normalmente en las opciones de cada usuario o del site) la cadena correspondiente y si existe traducción (* msgstr), muestra la cadena introducida, si no hay traducción (msgstr está en blanco) muestra la cadena original (* msgid).

* Más adelante explicare que son estas cadenas.

Ficheros POT – MO.

Un fichero POT es el que contiene la descripción de las cadenas que el software utiliza mientras está corriendo en un Site. Además de la descripción, también contiene las cadenas originales.

Formato del fichero POT:

Lo primero es la descripción del fichero…

# WordPress POT file.
# Copyright (C) 2007 WordPress
# This file is distributed under the same license as the WordPress package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid “”
msgstr “”
“Project-Id-Version: WordPress 2.2-bleeding\n”
“Report-Msgid-Bugs-To: wp-polyglots@lists.automattic.com\n”
“POT-Creation-Date: 2007-01-26 15:26+0200\n”
“PO-Revision-Date: 2007-02-23 12:57+0100\n”
“Last-Translator: Juan Carlos del Olmo <jcarlos.delolmo@gmail.com>\n”
“Language-Team: Ciberblog <webmaster@cibercom.es>\n”
“MIME-Version: 1.0\n”
“Content-Type: text/plain; charset=utf-8\n”
“Content-Transfer-Encoding: 8bit\n”
“X-Poedit-Language: Spanish\n”
“X-Poedit-Country: SPAIN\n”
“X-Poedit-Basepath: C:\\www-data\\ciberblog\\\n”

Creo que no es necesario explicar mucho de la descripción, ¿verdad?… bien, seguimos, y a partir de ahi, vienen las declaraciones de cadenas., lo más importante.

#: wp-admin/admin-ajax.php:22
#: wp-admin/admin-functions.php:955
msgid “Update”
msgstr “Actualizar”
#: wp-admin/admin-ajax.php:150
#, php-format
msgid “Category <a href=\”#%s\”>%s</a> added”
msgstr “Categoría <a href=\”#%s\”>%s</a> añadida.”

Aquí vemos dos bloques distintos, que corresponden a dos cadenas distintas que el programa utiliza. Veamos el primero.

Los ficheros admin-ajax.php (en su linea 22) y admin-functions.php (en la linea 955) utilizan una cadena “Update”, la que contiene msgid y mediante la función antes mencionada php_e la busca en el fichero de lenguaje y obtiene “Actualizar”, pero si msgstr hubiera estado vacio, habría obtenido “Update”.

Podemos encontrar cadenas que utlizan múltiples ficheros o solo uno y como veis en el segundo bloque, estas cadenas pueden incluir formato HTML para dar formato a la información.

A partir de ahí, el fichero contiene todas las entradas necesarias para la aplicación con el mismo formato explicado. Por tanto, si no encuentras el fichero POT de una aplicación, siempre puedes revisar el código y buscar las funciones php_e y creartelo tú, aunque también hay algunos programas que te ayudan a hacer esto, es decir, a buscar en los ficheros fuentes las cadenas y generarte el fichero POT.

Aunque nosotros cambiáramos todas las cadenas en el fichero POT con editor de texto cualquiera, no hemos terminado el trabajo, ya que las aplicaciones no utilizan este fichero, sino uno complilado a partir de éste, el fichero MO.

Ficheros MO.

A partir del fichero POT, como he dicho antes, se tiene que compilar un fichero MO que es el que utilizan las aplicaciones. ¿Como hago esto?, pues con programas específicos para ello. Existen varios, yo utilizo y aconsejo el POEDIT, ya que es muy intuitivo y facil de usar.

El fichero MO obtenido con alguna de estas aplicaciones, se colocara en nuestro Site en el directorio especifico y con el nombre correspondiente.

Normalmente, el fichero español se llama es_ES.mo, el ingles en_EN.mo, etc…. es decir, la nomenclatura estandar del software libre.

Finalmente decir que los ejemplos expuestos anteriormente pertenecen al fichero POT de WordPress MU y fueron esenciales para traducir este Blog.

Saludos a todos… seguiremos hablando.

Articulos relacionados:

  • No related posts
  • ETIQUETAS: ,

    3 comentarios »

    1. GRACIAS POR LA INFORMACION. PODRIAS COLGAR EL FICHERO POT DE MU O EL YA TRADUCIDO. TE LO AGRADECERIA ETERNAMENTE.

    2. Hola “Nadie”… Poco puedo hacer si no te identificas o si no dejas un mail de contacto.

      Saludos.

    3. [...] Este post ha sido movido a mi Blog Personal. Puedes leerlo en este link. [...]

    Escribe un comentario