joshua a écrit :tiens j'ai retrouvé le truc que je cherchais. Ca s'appelle gettext.
Je te laisse regarder sur le net ^^
Gettext c'est pas mal, c'est un module à rajouter à php qui gère des fichier de langue en les "compilant" ce qui est sensé être plus rapide qu'une base de donnée et prendre moins de place en mémoire, ensuite c'est une simple fonction qui te permet de récupérer la traduction d'un mot... Cependant la documentation sur ce module est assez limité... Faut bien chercher...
Enfin j'ai fait différents test pour l'internationalisation sur plusieur façon de stocker et récupérer des données pour les langues...
La méthode consiste à avoir fichier de langue par page/objet (au sens de caractéristique pas objet au sens programmation)/action, ca dépend de comment on veut l'utiliser...
L'architecture ressemblerai à :
-Lang/
|-french.php contient des variables de langue général au site/jeu
|-english.php idem mais en anglais
|--french/ dossier contenant plusieur fichier de langue
|--english/ idem mais en anglais
Ensuite dans chaque fichier on peut utiliser:
- soit define('TITLE', 'Le titre du jeu');
- soit $lang['TITLE'=> 'Le titre du jeu', etc];
- soit $TITLE = 'Le titre du jeu';
- soit on utilise gettext et l'arhitecture du dessu devient inutile evidement
Donc des test sur plusieurs centaine de mots, avec des appels aléatoires (dans le sens ou on prend une donnée au début du tableau $lang, au milieu et à la fin)
Les résultat du plus rapide au plus lent :
- define
- $lang[]
- gettext()
- $TITLE
Je pense que gettext utile moin de mémoire quand même vu que c'est unfichier ou il vire tous les espace inutile etc... et qu'il réduit etc...
Cependant j'ai pu voir bon nombre de developpement se tourné vers define... En tous cas pour toute la partie fixe. Par exemple pour un site ou il y a des catégorie dynamique, le mieux est de faire des jointure sur une table lang Mais pour mon jeu, moi j'utiliserai des define ^^
A noter quand même qu'il y a quelqu'un qui m'a dit (je crois que c'est sur ce forum), que le tableau lang peut être interessant si on modifie la valeur...
Imaginons un "bonjour %s" à stocker aussi en "Hello %s" ou on veut remplacer %s par le nom du joueur, avec les tableaux ou les variables d'ailleurs on pourrait faire le remplacement et le stocker directement dans le tableaux ce qui permettrai de ne plus re faire ce remplacement... Aprés ça reste limité mais ça peut être bien
++
Edit : Les fichier "compilé" par gettext son utilisable avec d'autre langage notament le C et le c++ (gettext étant écrit en c....)
Bientôt un jeu unique sur le thème de Battlestar Galactica :
http://www.battlestar.fr
http://www.battlestar.fr