10.05.2013 Views

Revisión asistida por ordenador de traducciones - OpenTranslation

Revisión asistida por ordenador de traducciones - OpenTranslation

Revisión asistida por ordenador de traducciones - OpenTranslation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.2.5.1. Internacionalización con gettext<br />

<strong>Revisión</strong> <strong>asistida</strong> <strong>por</strong> <strong>or<strong>de</strong>nador</strong> <strong>de</strong> <strong>traducciones</strong><br />

Para escribir programas que puedan mostrar la interfaz en varios idiomas<br />

suele utilizarse la biblioteca <strong>de</strong> internacionalización GNU gettext. Para<br />

usar esta biblioteca, es necesario haber escrito el programa siguiendo<br />

ciertas normas que <strong>de</strong>spués permiten extraer <strong>de</strong>l programa todo el texto<br />

traducible. El ejemplo 64 muestra una línea <strong>de</strong> programación preparada<br />

para la extracción <strong>de</strong>l texto <strong>por</strong> traducir.<br />

printf(_("My name is %s.\n"), my_name);<br />

Ejemplo 64. Línea <strong>de</strong> un programa preparado para su<br />

internacionalización<br />

Al ejecutar el programa xgettext (que forma parte <strong>de</strong> esta biblioteca) sobre<br />

un archivo, se extraen todas las ca<strong>de</strong>nas como la anterior y se almacenan<br />

en un archivo .pot. A este archivo se le suele <strong>de</strong>nominar plantilla, ya que<br />

contiene el esqueleto común a todos los idiomas, al que cada traductor <strong>de</strong>be<br />

añadir sus <strong>traducciones</strong>. Por ejemplo, la ca<strong>de</strong>na <strong>de</strong>l ejemplo 61 da ocasión<br />

a la entrada en el archivo .pot resultante que consta en el ejemplo 65.<br />

#: src/name.c:36<br />

msgid "My name is %s.\n"<br />

msgstr ""<br />

Ejemplo 65. Entrada <strong>de</strong> un archivo .pot<br />

A partir <strong>de</strong>l archivo .pot, qué no está asociado a ningún idioma concreto,<br />

el traductor pue<strong>de</strong> utilizar el programa msginit –también parte <strong>de</strong> esta<br />

biblioteca– para crear un archivo .po para su idioma, en el que introduce<br />

la traducción. En el ejemplo 66, la entrada <strong>de</strong>l archivo .po que especifica la<br />

traducción al español podría ser la siguiente:<br />

#: src/name.c:36<br />

msgid "My name is %s.\n"<br />

msgstr "Me llamo %s.\n"<br />

Ejemplo 66. Línea <strong>de</strong> un programa con la<br />

traducción al español<br />

Cuando el traductor ha terminado <strong>de</strong> trabajar con el archivo .po, pue<strong>de</strong><br />

emplear el programa msgfmt para crear un archivo binario .mo con la<br />

traducción. Si el traductor dispone <strong>de</strong> este archivo para una <strong>de</strong>terminada<br />

aplicación, pue<strong>de</strong> ver la aplicación traducida. Para utilizar el archivo .po<br />

con una aplicación no es imprescindible que esté completamente<br />

135

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!