Re: [gnome-hispano] Aprendiendo a traducir con gettext....no lo consigo : (



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 <tres 14159 gmail com> 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 ADDRESS>, 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 <md email com>\n"
"Language-Team: idioma <LL li org>\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.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]