Article View: es.comp.os.linux.programacion
Article #15418Re: Internacionalizacion y todo eso...
From: rvm
Date: Sun, 25 Jun 2000 00:00
Date: Sun, 25 Jun 2000 00:00
95 lines
3733 bytes
3733 bytes
Santiago Romero escribi� en mensaje ...
>
> Enas...
> �Alguien me echaria una mano para aprender a usar las funciones
> que haya en linux para que mi programa salga en diferentes idiomas
> segun el valor de LANG? �Que funciones son? �Como se usan? �Algun
> ejemplillo? �A cuanto esta el euro?
Pego a continuaci�n un mensaje de Pablo Saratxaga que me ayud� a m�:
-----------------------------------------------------------------------
Kaixo!
on Sun, 03 Jan 1999 15:09:02 +0100,
Javier <javi@ctv.es> said:
J> NECESITO AYUDA DE PROGRAMACI�N PARA TRADUCCI�N EN GETTEXT - �D�nde
J> conseguir informaci�n?
Es ref�cil. solo necesitas poner un
#ifdef HAVE_LOCALE_H
#include <locale.h>
#include <libintl.h>
#define _(String) gettext((String))
#else
#define _(String) (String)
#endif
en alguno de tus *.h de manera a definir esas macros; luego en
el principio de tu main() pones:
#ifdef HAVE_LOCALE_H
/* set up the correct locale */
setlocale(LC_ALL, "" );
bindtextdomain(NLS_CAT_NAME, NLS_LOCALE_PATH);
textdomain(NLS_CAT_NAME);
#endif
Solo te queda definir las macros NLS_LOCALE_PATH
(en Linux es "/usr/share/locale") y NLS_CAT_NAME (el nombre para el
archivo
*.mo (sin la extensi�n), generalmente se usa el mismo nombre que el
programa)
y escribir todos los textos traducibles con _(...) (ej:
printf( _("bla bla %d %s\n"), 123, abs);
sprintf(xyz, _( variable ) );
etc).
Y para la traducci�n en si crear el *.pot y los varios *.po/*.mo; para
ello lo m�s simple es que copies un directorio po/ de alg�n programa que
ya usa gettext, cambias un poco el Makefile, y dem�s.
Si quieres que tu programa sea realmente portable puedes tambi�n
incluir le directorio intl/ que a�ade soporte en sistemas sin GNU
gettext;
pero creo que ello te obliga a usar la licencia GPL (ya que el c�digo de
intl/* est� bajo GPL) as� que quizas te convenga mejor no incluir ese
directorio y que los sistemas sin GNU gettext no tengan soporte i18n,
que curren en ingl�s :)
Mirate alg�n programit� simple para ver como funciona, otra de las
ventajas de tener las fuentes disponibles.
P/D: si tu programa hace comparaciones de cadenas de texto, usa
strcoll()
en vez de strcmp() si quieres que el usuario pueda decidir del orden
alfab�tico adecuado; 'man strcoll' para m�s info.
J> <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
J> <html>
No, por gavor ! :-(
--
Saludos,
Pablo Saratxaga PGP Key available, key ID: 0x8F0E4975
Glibc tradu�t al catal�: http://www4.uji.es/~al011097/glibc-2.0.7t.po.gz
-----------------------------------------------------------------------
--
Ricardo Villalba
rvm@XXlinuxfan.com (quita las XX)
http://members.xoom.com/rvmsoft
http://members.xoom.com/rvmsoft/linux
Linux registered user 90754
Technical Details
Message-ID:
<25p55.149$WK4.8097@m2newsread.uni2.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<slrn8kp90g.2eo.s.romero@compiler.linux.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,a7450f24eb824b72 X-Google-Attributes: gidf86c8,public From: "rvm" <rvm@XXlinuxfan.com> Subject: Re: Internacionalizacion y todo eso... Date: 2000/06/25 Message-ID: <25p55.149$WK4.8097@m2newsread.uni2.es> X-Deja-AN: 638765739 Content-Transfer-Encoding: 8bit References: <slrn8kp90g.2eo.s.romero@compiler.linux.es> Content-Type: text/plain; charset="iso-8859-1" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 X-Complaints-To: abuse@wanadoo.es X-Trace: m2newsread.uni2.es 961945022 62.36.40.161 (Sun, 25 Jun 2000 16:57:02 MET DST) Organization: Wanadoo Usenet News - Visita http://www.wanadoo.es/ MIME-Version: 1.0 NNTP-Posting-Date: Sun, 25 Jun 2000 16:57:02 MET DST Newsgroups: es.comp.os.linux.programacion