Vale usando la táctica de prueba y error, he llegado a ver un poco el
comportamiento del gettext (que supongo que vendrá de manera critica
en la documentación en gnu.org), el mamoncete de el le gusta la var de
entorno (ahora si lo recorde xD) $LANG bien maquetadita y cumpliendo
estándares (que algo leído en la wikipedia de estos mirando sobre
UTF-8) 2letrasIdioma_2letrasPais.codificacion .
Es decir que no es "en_UK.UTF-8" si no "en_GB.UTF-8" al igual que no
puede ser "es_KK.UTF-8" porque son combinaciones no reconocidas ni UK
ni KK sino la oficial GB, es decir hay que mirar el
/usr/share/locale/ para ver cual es el correcto ( a no ser que se sepa
de memoria) , lo de utf-8 no se que mas puede tragar salvo UTF8 todo
junto (casualidad me salio por error) pero "es_ES.pepito" no traga,
pero en principio se supone que en un futuro UTF-8 reinara así que
para que preocuparnos.
Todo esto lo he hecho renombrado y exportando $LANG en plan:
mv locale/es_ES locale/en_GB
export $LANG=en_GB
...
así con varias combinaciones hasta que descubrí los deseos del gettext.
Otra cosa que me olía y que comprobé insitu es que puedes tener el
directorio es a secas locale/es/ y después le das var a $LANG
es_AR.UTF-8 o es_ES.UTF-8 que si no lo encuentra tirada del .mo de
locale/es/ .
Así que bueno ya me autorespondido ;) de mi duda, y ya de paso he
dejado la solución...empírica por supuesto de esta, por si alguien se
atasca con lo mismo o si el google u otro le da por indexar el hilo en
sus resultado...que por cierto últimamente en las búsquedas del google
salen pocos enlaces a hilos de listas de correo archivadas en web con
lo útiles que eran estos resultados.
Y si alguno quiere aclarar y darle quitarle la cosa empírica a la
solución dándonos los porques técnicos y tal pues encantado.
Saludos.
El día 18 de octubre de 2008 4:15, MD or MD <[EMAIL PROTECTED]> escribió:
> Bueno algo he avanzado aunque no acaba de funcionar correctamente.
>
> Con el siguiente codigo fuente:
> #include <stdio.h>
> #include <libintl.h>
> #include <locale.h>
>
> #define _(string) gettext(string)
>
> int main(void)
> {
> setlocale(LC_ALL,"");
> bindtextdomain("hola","./locale/");
> textdomain("hola");
>
> printf(_("Hello World\n"));
>
> return 0;
> }
>
> Que se diferencia del anterior en que la ruta es relativa.
>
> Y siguiendo el proceso de siempre:
> xgettext -k_ hola.c -o hola.po
> poedit hola.po
> metiendo como cadena traducida "TRADUCIDA\n" mas claro agua ;) .
>
> Pero ahora llevando el archivo hola.mo a ./locale/es_ES/LC_MESSAGES/ funciona.
>
> ¿Parece que el problema ha terminado no? Pues si renombro el
> directorio de locale es_ES por en_UK y hago un env LANG=en_UK ./hola
> falla y muestra el helloword de siempre.
>
> ¿Porque no lo se, voy a ver si estudio mas el tema? Pa' mi que ahora
> esta en el tema de las variables de globales/ambiente (environment var
> en ingles...¿pero en español?) voy a ver si hago pruebas.
>
> Saludos.
>
> El día 17 de octubre de 2008 0:49, MD or MD <[EMAIL PROTECTED]> escribió:
>> Buenas noches.
>>
>> Llevo varios días en mis tiempos libres trasteando con el código
>> fuente de http://nesqi.homeip.net/hexxagon/ y aunque el juego es
>> imposible de ganar al ordenador, es bastante divertido. Y
>> casualidades de la vida salto la noticia en barrapunto de "Las
>> comunidades de software libre en la actualidad ".
>>
>> Así que paso la duda a la comunidad, ya que la ultima versión del
>> juego es del 2005 y no esta en ingles, quería meterle las traducciones
>> mediante el clásico gettext, pero como uno siempre lo había conocido
>> de oídas, me puse manos a la obra a aprenderlo...cosa que es un poco
>> complicada por los pocos tutoriales que hay, pero bueno me eche la
>> toalla a la cabeza y dije vamos a probar (despues de haber leido un
>> poco pero sin profundizar (asi que posiblemente me pasado algo basico
>> que no lo consiga) porque hay poco en español...o encontrado poco) con
>> un ejemplito simple y no me lo traduce...por supuesto algo estare
>> haciendo mal, explico el proceso:
>>
>> -he hecho el tipico hola.c
>>
>> #include <stdio.h>
>> #include <libintl.h>
>> #include <locale.h>
>>
>> #define _(string) gettext(string)
>>
>> int main(void)
>> {
>> setlocale(LC_ALL,"");
>> bindtextdomain("hola","/home/md/proyectos/pruebas/dprueba00/");
>> //probe a meter "./" para tener el .mo cerquita
>> textdomain("hola");
>>
>> printf(_("Hello World\n"));
>>
>> return 0;
>> }
>>
>> -despues le pasado el xgettext -k_ hola.c -o hola.po (si se que lo
>> suyo es sacar el .pot de plantilla pero es mejor pasito a pasito)
>> -edite el hola.po con el poedi que es muy comodo, no se si algo afecta
>> en que le puse a todas las codificaciones utf-8 en opcines del
>> "proyecto", guarde y genera ya el .mo, quedando algo tal que asi
>>
>> # SOME DESCRIPTIVE TITLE.
>> # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
>> # This file is distributed under the same license as the PACKAGE package.
>> # FIRST AUTHOR <[EMAIL PROTECTED]>, YEAR.
>> #
>> msgid ""
>> msgstr ""
>> "Project-Id-Version: paquete\n"
>> "Report-Msgid-Bugs-To: \n"
>> "POT-Creation-Date: 2008-10-17 00:01+0200\n"
>> "PO-Revision-Date: 2008-10-17 00:05+0100\n"
>> "Last-Translator: Miguel <[EMAIL PROTECTED]>\n"
>> "Language-Team: idioma <[EMAIL PROTECTED]>\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-SourceCharset: utf-8\n"
>>
>> #: hola.c:13
>> #, c-format
>> msgid "Hello World\n"
>> msgstr "TRADUCIDO\n"
>>
>> Me huelo que los X-Poedit son parametros extendidos que no son básicos
>> que mete el poedit.
>>
>> -y ya con el .mo he probado mil sitios para meterlo
>> ./ del prueba
>> ./es/ de la prueba
>> ./locale/es/LC_MESSAGE que he visto en algun tutorial
>>
>> Y nada despues he hecho un env LANG=es ./hola y no rula...¿En que he fallado?
>>
>> Saludos, y nada rompiendo la vergüenza porque como dice el refran "el
>> tonto duda y el sabio pregunta"...o algo asi :P.
>>
>
_______________________________________________
Gnome-hispano-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gnome-hispano-list