Publi

  • Traducciones para nuestras aplicaciones C/C++ con gettext

    4929705941_5cc3aca475_oHace un tiempo publiqué cómo traducir nuestras aplicaciones PHP con gettext, ahora le toca el turno a nuestras aplicaciones en C.

    El procedimiento es muy parecido, por lo que no voy a especificar la creación de ficheros po y mo en este artículo, os remito al anterior.

    El código fuente no es que varíe demasiado de PHP pero es interesante echarle un ojo. Si queremos traducir este programa:

    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>

    int main(int argc, char *argv[])
    {
      printf("Hello world\n");
     
      return 0;
    }

    Haremos algo parecido a lo siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <stdio.h>
    #include <libintl.h>
    #include <locale.h>

    int main(int argc, char *argv[])
    {
      char *locale="fr_FR.UTF-8";
      setlocale(LC_MESSAGES, locale);
      bindtextdomain("miProyecto", "locale/" );
      textdomain("miProyecto");

      printf(gettext("Hello world"));
     
      return 0;
    }

    Ahora, si tenemos el archivo locale/fr_FR/LC_MESSAGES/miProyecto.mo dentro, veremos el mensaje en francés.… Leer artículo completo