🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15418

Re: Internacionalizacion y todo eso...

#15418
From: rvm
Date: Sun, 25 Jun 2000 00:00
95 lines
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-mail
References: <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