%% $Id: 

\documentclass{article}
%\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[spanish]{babel}
%\usepackage{epsfig}
\usepackage{verbatim}
\usepackage[openresources]{gsycdocmisc}
\input{gsycdocmisc.html}

\title{Internacionalización de programas en GNU/Linux.}
\author{Javier Fernández-Sanguino Peña <\htmailto{jfs@computer.org}> }
\date{25 de Junio de 1999}

\begin{document}

\gdtitle{Internacionalización de programas en GNU/Linux.}
{Javier Fernández-Sanguino Peña}
{25 de Junio de 1999}


\gdcolorbox{ 
% Resumen
  La internacionalización es el proceso que permite que un usuario haga uso
  de un entorno de computación adaptado a su propio país: lenguaje, símbolos
  monetarios, formatos de fecha y hora...
  En éste artículo se verán los distintos esfuerzos que se están llevando a cabo para hacer a Linux internacional, en todos sus aspectos: documentación y programas.
  }

% Posibles tags para usar:
% \htlink{nombre}{URL}.
%\gdsection{Sección}
% \gdname{ficheros/directorios}.
% {\ttfamily en fuente TT}
% {\em Resalte} 
% \htmlref{nombre}{lugar de ref}
% \label{referencia}
% Figuras
%\begin{figure}
%  \begin{makeimage}
%  \end{makeimage}
%  \begin{center}
%    \gdimg{nombre_fichero_eps}
%  \end{center}
%  \caption{título}
%  \label{etiqueta}
%\end{figure}
% Referencia figura (vea la figura~\ref{fig:etiqueta} )
% Lista:
% \begin{itemize}
% \item
% \end{itemize}
% Salida de programa:
%\htmlrule
%\begin{verbatim}
%\end{verbatim}
%\htmlrule


\gdsection{El objetivo de la Internacionalización}


\gdsection{Traducción de documentación}

La documentación en el mundo GNU/Linux, a pesar de ser un mundo
dinámivo y variable, ha sido la referencia más directa para usuarios y
administradores. Desde las páginas de manual provenientes del mundo
UNIX pasando por los HOWTOs (guías rápidas para temas específicos)
hasta los textos genéricos, más parecidos a libros. Los documentos más
espefícificos tienen generalmente un tratamiento más genérico e
independiente de la implementación particular usada (la distribución),
estos documentos, redactados por usuarios y desarrolladores son la más
rápida referencia para un usuario general.

Esta documentación se ha convertido en una ayuda utilizada ampliamente
y con formatos estándares: man, info, sgml o html. Muchas
distribuciones ofrecen un interfaz único a toda esta documentación,
simplificando así la tarea de búsqueda de ésta por parte del usuario.

Parece evidente, pues, que toda esta documentación dentro de un
sistema operativo internacionalizado, deba estar traducida de forma
que un usuario no tenga que dominar el idioma original en el que de
dichos documentos se escribieron. El hecho de tener manuales de
instalación y documentos de ayuda de partes vitales del sistema en el
idioma del usuario, favorece la introducción de nuevos usuarios en un
sistema para los cuales la barrera idiomática inicial pudiera ser
demasiado alta.

\gdsubsection{Introducción a los proyectos de documentación}

Dentro del mundo GNU/Linux hay una variedad de proyectos de
documentación que funcionan de manera independiente. El más grande y
más particular de Linux es, sin duda el
\htlink{LDP}{http://metalab.unc.edu/LDP} (Linux Documentation
Project, Proyecto de Documentación de Linux), actualmente dirigido por
XXXXX. Este proyecto abarca la realización de dos tipos distintos de
% buscar quien lo dirige
documentación: las guías rápidas o HOWTOs y los manuales, entre los
que se encuentran:

\begin{itemize}
\item Linux Installation and Guetting Started
\item Linux Systems and Administrations Guide
\item ...
\end {itemize}

En ambos tipos de documentación se utiliza como formato
linuxdoc-sgtml, que permite el paso de esta documentación a diferentes
formatos: html, postscript y otros.

Por otro lado, y más asociados a los programas con los que se
distribuyen están las páginas de manual (man) y de información
(info). Las primeras son una herencia del mundo UNIX, y constituyen
una referencia rápida a programas (documentando sus opciones en línea
de comandos, configuración y comportamiento), ficheros de
configuración, juegos, llamadas al sistema y funciones de librería
(para C y otros lenguajes). Los segundos son una documentación más
extensa de los programas y que surge en el seno del proyecto GNU como
sustituto a las página de manual. En ellas se documenta de una forma
más exhaustiva y haciendo uso de hiperenlaces, el comportamiento de un
programa, librería o conjunto de ambos, con ejemplos de uso y de
programación.

Asimismo, dentro de los diversos proyectos en el mundo GNU/Linux, como
Debian, Beowulf, GNOME, etc.. existen diferentes proyectos de
documentación, no integrada en la LDP al
tratarse de documentos específicos útiles solamente a desarrolladores
o usuarios dentro de ellos. GNU también tiene su propio proyecto de
documentación. En general estos proyectos pueden estar, o no, financiados.
% TODO: traducir undocumented para manpage-es

Finalmente se puede encontrar otro tipo de documentación no asociada a
ninguno de los grupos anteriores, aunque los complemtente. Se trata de
las publicaciones relacionadas con el mundo GNU/Linux, de gran interés
divlgativo y también susceptibles de traducción. Más accesibles a los
usuarios de Linux en todo el mundo son las revistas electrónicas
(LinuxFocus, Linux Gazzette, OpenResources ...) y también son más susceptibles de
% TODO: poner URLs
ser traducidas si se encuentran dentro de un proyecto abierto, esquema
natural para este tipo de revistas no sólo porque surgen a raíz de un
proyecto abierto como GNU/Linux, sino porque carece sentido la
restricción de copia y acceso a las fuentes de un material
digitalizado que, por su naturaleza, es fácil de copiar y convertir a
otros formatos.


\gdsubsection{Servidores de web}

Los servidores de web se convierten frecuentemente en el portal de
aceso de los usuarios a muchos de los recursos de Linux, engloban
desde servidores genéricos como \htmllink{http://www.linux.com} a los
de proyectos específicos como Debian, o los dedicados a programas como
\htmllink{http://grn.linuxberg.com} o
\htmlink{http://www.freshmeat.org}.
Todos ellos deben formar parte del ejercicio de internacionalización
ya que, aunque el usuario tenga documentación en línea dentro de las
distribuciones y programas, en los servidores podrá encontrar siempre
nueva información y programas más actualizados, noticias y novedades
que puedan ser de interés.

Esta información quedará devaluada si el usuario no puede acceder a la
misma por las barreras idiomáticas.

% (esto se puede solucionar gracias a
%las tecnologías web, en el protocolo HTTP, como se verá \htmlref{más
%adelante}{content-type}).

\label{content-type}
La tecnología que premite realizar esto dentro de los diversos
servidores es la {\em Negociación de contenido}, definida en el
estándar HTTP 1.1.
% enlace al estandar

Los navegadores que soportan dicho estandar envían, al realizar la
solicitud de un documento a un servidor, una cabecera que indica al
servidor el idioma del usuario (Preferred-Language), el servidor puede
decidir, a la hora de remitir el documento al usuario, qué documento
envía basándose en el URL y el idioma indicado por el usuario.

El administrador del servidor puede, así, mantener varios conjuntos de
documentos, uno por idioma. Dado que las traducciones irán, por regla
general, a la zaga de los originales, en el caso de que no exista una
traducción el servidor enviará el documento original.

Esta es una manera sofisticada, aunque se logra también simplemente
ofreciendo al usuario la posibilidad de seleccionar un idioma dentro
del servidor y tener una jerarquía separada de páginas en diferentes
idiomas.

Las distribuciones más importantes dentro del mundo GNU/Linux tienen
su servidor disponible en más de un idioma. Así, el servidor de Debian
(\htlink{http://www.debian.org}) está parcialmente traducido a más de
diez idiomas (español, alemán, danés, chino, japonés...), SUSE tiene
su servidor disponible en dos idiomas: inglés y alemán.
% comprobar el número de idiomas


\gdsubsection{El inglés como idioma universal}

% Pasar a otro nivel?
El inglés es el idioma oficial por regla general en la práctica
totalidad de proyectos de documentación. Este idioma se ha convertido
en este siglo en el idioma internacional por excelencia, y es una
realidad que afecta, no sólo a los usuarios dentro del mundo GNU/Linux
sino a cualquier usuario de los sistemas de la información. Es po esto
que el inglés es el idioma en el que más documentación hay disponible.

\gdsubsection{Coordinación}

El modelo habitual de coordinación de los proyectos de traducción de
documentación es establecer grupos de trabajo por idiomas coordinados
por una o  varias personas a través de listas de distribución ya que
toda la comunicación se hace a través de correo electrónico. Los
documentos originales, así como las traducciones han de estar
disponibles para su revisión contínuamente. Así, se utilizan
herramientas de trabajo cooperativo como CVS, los ``activos''
(traducciones) se registran en un repositorio de forma que los cambios
se registren y controlen. Se ponen accesibles los documentos ya
traducidos así como aquellos en fase de traducción.

La traducción es una tarea difícil dentro de un grupo heterogeneo
aunque se utilize un mismo idioma, surgen conflictos en cuanto a la
traducción de diversos términos, la discusión de éste y otros temas se
realiza mediante correo electrónico. Es común al cabo de un tiempo
recoger en un glosario de términos traducidos todos aquellos que
puedan dar lugar a discusiones, aunque no se puede llegar siempre a un
acuerdo sobre todos los términos.
% referencia al glosario de Lucas.

\gdsubsection{Ejemplo: Castellanización}

Como ejemplo de un esfuerzo común de internacionalización de
documentos se puede poner la traducción de los documentos del LDP al
castellano.

Existen dos proyectos separados entre sí, por un lado está en proyecto
LuCAS (Linux en Castellano) encargado de coordinar la traducción de
los documentos genéricos del LDP: Linux Installation ... Actualmente
después de X años están traducidos de forma completa X documentos:
GLUP... y parcialmente los demás. También coordina la traducción de
las páginas de manual de programas del proyecto GNU.
% mirar web y poner fechas

Por otro lado está INSFLUG.
% contar historia.. fidonet.. poner web
INSFLUG coordina la traducción de los HOWTOs (COMOs) al castellano. Y
actualmente cuente con X documentos incluyendo algunos específicos de
paises hispanoparlantes (como el Infobia-COMO). 

Sin embargo el problema de INSFLUG es que se da poca difusión alos
COMOs que no están incluidos oficialmente dentro del proyecto y están
pendientes aún de revisión. Dichos documentos se pueden encontrar en 
\htlink{ftp://ftp.insflug.org/pub}
% revisar enlace y numeros
y asciende a un total de X documentos, algunos llevan incluso más de
un año en este repositorio.


\gdsubsection{Ejemplo: Dentro de una distribución}

Lista de correo de traducción en Debian, traducción del servidor de
WWW. Generalmente serán desarrolladores de la propia distribución, con
participación esporádica de usuarios de la misma.

\gdsection{Traducción de programas}

\gdsubsection{Por qué traducir los programas}

\gdsubsection{Cómo se sabe qué idioma es el del usuario}

Shell: variables de entorno. Ficheros de configuración.

\gdsubsection{Traducción estática}



De ficheros determinados (manuales incluidos en el programa, o leídos
por el mismo).

De ficheros incluido (headers) que en tiempo de compilación (y
mediante opción) ofrecen los mensajes, en los programas para los
mensajes se utilizan defines.

La traducción se realiza por selección del usuario o por ejecución de
un binario determinado (que está adapatado)


\gdsubsection{Ejemplo ficheros: xaos}

\gdsubsection{Ejemplo binarios: traducción de arranque  de Debian}

\gdsubsection{La traducción del kernel de Linux}

% mirar en LuCAS para el URL

\gdsubsection{Dificultades}

Los usuarios tienen difícil contribuir al esfuerzo inicial, serán en
la mayor parte desarrolladores.

\gdsubsection{Traducción dinámica}


En tiempo de ejecución el programa "adivina" el lenguaje del usuario y
le ofrece todos los mensajes/ayuda en su idioma (también implica uso
de formatos de fecha y formatos monetarios...)


\gdsubsection{Internacionalización en el proyecto GNU: gettext}


\gdsubsection{Prepara un programa para internacionalización}

\gdsubsection{Herramientas de gettext}

\gdsubsection{Ficheros pot}


Más fácil de traducir por cualquiera aunque en algunos casos es
necesario acceder a las fuentes.

\gdsubsection{Formas de coordinación (propuesto)}

\gdsection{¿Quién traduce?}


No es necesario ser desarrollador, objetivos del proyecto GNU. Aunque
a veces los mensajes están ligados al programa: necesario
conocimientos del lenguaje en que están hechos (generalmente C)

\gdsection{Ciclo de vida de una traducción}


\gdsubsection{Cómo generalmente es}


Usuario con experiencia que desea ver los programas en su
idioma. Modifica en una de las formas citadas y envía "parche" al
desarrollador. Una vez hecho no vuelve a mirarlo, no hay actualización
generalmente (hasta que llega otro usuario que está descontento porque
ve parte de los mensajes en un idioma y parte en otro)

\gdsubsection{Cómo debería ser}


Siempre necesario "primer empujón", la parte más difícil es terminar
todos los contenidos iniciales.

Los contenidos varían (necesario herramientas de seguimiento como CVS)
y hay que actualizar los cambios.

Revisión continuada.

Contar experiencia de traducción del www de Debian (aún no 100% traducido)






\gdsection{Acerca de este artículo}

\orlicensees
Este artículo fue escrito por Javier Fernández-Sanguino Peña
para la revista OpenResources. \orlicensees

La versión original de este artículo está disponible en
\hturl{http://www.openresources.com/es/magazine/internacionalizacion/},
en la \htlink{Revista~OR}{http://www.openresources.com/es/magazine/}

\end{document}
