Documentation de la bibliothèque :

C_IniFile-v3




Sommaire






Auteur et Version


Auteur:
HECHT Franck
Version de la bibliothèque:
1.0
Version de la documentation:
1.0


Présentation


C_Lang est une bibliothèque d'internationalisation d'applications pour le langage C. Elle permet d'avoir un seul fichier pour toutes les langues du d'un programme, son fichier fonctionne à peu près de la même manière qu'un fichier de configuration de la forme clé/valeur.



Exemple


Voici un exemple minimaliste d'un fichier de langue avec du francais et de l'anglais :

# <program_name> language file.

[TRANSLATORS]
{
   # One translator informations block. Only one per translator !
   TRANSLATOR
   {
      LangID:fr
      Name:HECHT Franck
      Date:24/11/2007
      Language:Francais
      Mail:franhec@gmail.com
      Website:http://franckh.developpez.com
   }

   TRANSLATOR
   {
      LangID:en
      Name:HECHT Franck
      Date:24/11/2007
      Language:Anglais
      Mail:franhec@gmail.com
      Website:http://franckh.developpez.com
   }
}

[LANGUAGES]
{
   # Format: <language_name>:<language_id>
   Francais:fr
   Anglais:en
}

# Strings list.
[SENTENCES]
{
   # String about the program.
   ABOUT
   {
      fr:A propos de C_Lang.
      en:About C_Lang.
   }
}

Dans le premier bloc se trouve la liste des différents traducteurs dont un bloc par traducteur à l'intérieur du bloc principal. Le second bloc est la liste des langues avec en plus l'id de chacune d'entre elles. L'id permettra à la bibliothèque de retrouver les bonnes lignes de texte à charger. Le dernier bloc permet quant à lui de stocker toutes les phrases dans toutes les langues dont vos projets seront pourvus. Chaque sous-bloc correspond à une phrase dans toutes les langues que le fichier contient. Le titre de chaque bloc correspond à l'id des phrases qui vous seront utiles pour les retrouver avec les fonctions adéquates.

Voici un exemple de code :

#include <stdio.h>
#include <stdlib.h>

#include "c_lang.h"


int main (void)
{
   /* Ouverture du module avec la langue Anglaise */
   lang_infos * p_self = c_lang_init ("language.lang", "Anglais");

   if (p_self != NULL)
   {
      printf ("========== Informations de la langue ==========\n\n");

      printf ("> Filename = %s\n", c_lang_get_filename (p_self));
      printf ("> Language = %s\n", c_lang_get_language (p_self));
      printf ("> ID = %s\n", c_lang_get_id (p_self));

      printf ("\n\n========== Phrases dans le fichier de test ==========\n\n");

      printf ("ABOUT = %s\n", c_lang_get_string (p_self, "ABOUT"));

      printf ("\n\n========== Informations du traducteur ==========\n\n");

      printf ("> Nom de l'auteur : %s\n", c_lang_get_translator_name (p_self));
      printf ("> Date d'ajout : %s\n", c_lang_get_translator_date (p_self));
      printf ("> Langue : %s\n", c_lang_get_translator_language (p_self));
      printf ("> Adresse mail : %s\n", c_lang_get_translator_mail (p_self));
      printf ("> Site internet : %s\n", c_lang_get_translator_website (p_self));

      /* Fermeture du module */
      c_lang_close (& p_self);
   }

   return EXIT_SUCCESS;
}

L'extension du fichier de langue est facultative mais par convention l'extension pour la bibliothèque est *.lang. Voici la sortie sur la console pour le programme ci-dessus :

========== Informations de la langue ==========

> Filename = language.lang
> Language = Anglais
> ID = en


========== Phrases dans le fichier de test ==========

ABOUT = About C_Lang.


========== Informations du traducteur ==========

> Nom de l'auteur : HECHT Franck
> Date d'ajout : 24/11/2007
> Langue : Anglais
> Adresse mail : franhec@gmail.com
> Site internet : http://franckh.developpez.com


Définition de type


typedef struct _lang_infos lang_infos


Fonctions


const char * c_lang_get_product_id (void)
const char * c_lang_get_version (void)
int c_lang_get_major (void)
int c_lang_get_minor (void)
int c_lang_get_revision (void)
const char * c_lang_get_filename (const lang_infos *self)
const char * c_lang_get_language (const lang_infos *self)
const char * c_lang_get_id (const lang_infos *self)
size_t c_lang_get_nb_string (const lang_infos *self)
const char * c_lang_get_string (const lang_infos *self, const char *id)
const char * c_lang_get_translator_name (const lang_infos *self)
const char * c_lang_get_translator_date (const lang_infos *self)
const char * c_lang_get_translator_language (const lang_infos *self)
const char * c_lang_get_translator_mail (const lang_infos *self)
const char * c_lang_get_translator_website (const lang_infos *self)
lang_infosc_lang_init (const char *filename, const char *lang)
void c_lang_close (lang_infos **self)



Documentation des définitions de type


typedef struct _lang_infos lang_infos

Type opaque contenant toutes les informations de la langue et les phrases par rapport à la langue choisie ainsi que les informations sur le traducteur.



Documentation des fonctions


const char* c_lang_get_product_id ( void   ) 

Renvoie l'ID de la bibliothèque.

Renvoie:
Pointeur constant sur l'ID sous forme de chaîne de caractères.

const char* c_lang_get_version ( void   ) 

Renvoie la version de la bibliothèque.

Renvoie:
Pointeur constant sur la version sous forme de chaîne de caractères.

int c_lang_get_major ( void   ) 

Renvoie la version majeur de la bibliothèque.

Renvoie:
Version majeur.

int c_lang_get_minor ( void   ) 

Renvoie la version mineur de la bibliothèque.

Renvoie:
Version mineur.

int c_lang_get_revision ( void   ) 

Renvoie la version revision de la bibliothèque.

Renvoie:
Version revision.

const char* c_lang_get_filename ( const lang_infos self  ) 

Renvoie le nom du fichier de langue en cours d'utilisation.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur le nom du fichier ou NULL.

const char* c_lang_get_language ( const lang_infos self  ) 

Renvoie le nom de la langue en cours d'utilisation.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur le nom de la langue ou NULL.

const char* c_lang_get_id ( const lang_infos self  ) 

Renvoie l'id de la langue en cours d'utilisation.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur l'id de la langue ou NULL.

size_t c_lang_get_nb_string ( const lang_infos self  ) 

Renvoie le nombre de phrases de la langue en cours d'utilisation.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Nombre de phrases ou 0.

const char* c_lang_get_string ( const lang_infos self,
const char *  id 
)

Renvoie la phrase par rapport a son ID.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
id ID de la phrase a retrouver dans le tableau.
Renvoie:
Pointeur constant sur la phrase ou NULL.

const char* c_lang_get_translator_name ( const lang_infos self  ) 

Renvoie le nom du traducteur de la langue courante.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur le nom du traducteur ou NULL.

const char* c_lang_get_translator_date ( const lang_infos self  ) 

Renvoie la date d'ajout de la langue du traducteur de la langue courante.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur la date d'ajout de la langue ou NULL. La date est sous forme de chaîne de caractères.

const char* c_lang_get_translator_language ( const lang_infos self  ) 

Renvoie le nom complet de la langue ajoutee par le traducteur de la langue courante.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur le nom de la langue ou NULL.

const char* c_lang_get_translator_mail ( const lang_infos self  ) 

Renvoie l'adresse mail du traduteur de la langue courante.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur l'adresse mail ou NULL.

const char* c_lang_get_translator_website ( const lang_infos self  ) 

Renvoie l'adresse du site internet du traducteur de la langue courante.

Paramètres:
self Pointeur sur la structure d'informations du fichier de langue en cours.
Renvoie:
Pointeur constant sur l'adresse du site internet du traducteur ou NULL.

lang_infos* c_lang_init ( const char *  filename,
const char *  lang 
)

Initialisation du module de gestion de langues.

Paramètres:
filename Nom complet du fichier de langue a utiliser.
lang Nom de la langue a charger.
Renvoie:
Pointeur sur une structure de type lang_info, NULL en cas d'erreurs.

void c_lang_close ( lang_infos **  self  ) 

Fermeture du module de gestion de langues.

Paramètres:
self Adresse de la structure d'informations du fichier de langue en cours.


Généré le Mon Jan 14 19:50:12 2008 pour C Lang par  doxygen 1.5.4