Il y a une question que je me pose depuis un bout de temps...
Comment faire "proprement" un programme multi-lingue ?
Actuellement, j'ai utilisé deux systèmes (qui reviennent au même) au niveau de sites internet.
Le premier consiste à créer une page d'include contenant un "maxi-tableau" avec autant de lignes que de libéllés dans le site, et autant de colonnes que de langues gérer...
Avec plus de 800 labels et 5 langues, mon include est un peu monstrueux, et même si ça ne se fait pas sentir au niveau perfs, je ne suis pas certain que le serveur aime beaucoup se prendre dans la tête un tableau aussi énorme à chaque chargement de page...
La seconde solution, impossible avec un programme compilé, et non pas de gérer ce "tableau des libellés" dans une page, mais dans une base de données (clé langue/code label). Niveau perfs de base, c'est pas meilleur, mais niveau montée en charge c'est incomparable, niveau maintenance aussi.
Mais bon, mettons un programme en C. Pas de base de données. Totalement inconcevable de charger 25 Mo de textes en mémoire pour n'en afficher que 10 lignes à la fois... Donc je me demande comment faire pour que ce soit le plus performant possible (rapport rapidité/montée en charge/occupation mémoire/maintenance <- très important)
Souvent, on a une DLL "english.dll" et une autre "french.dll" et le programme charge la DLL qui correspond au langage choisi. J'en déduit que ces DLL contienent un tableau avec tous les labels localisés pour une seule langue. Comment se fait l'accès à ce tableau, afin d'éviter d'avoir à charger toute la DLL d'un coup (pour une petit appli, ok, mais pour un truc style ERP ou autre, là y'a 500 écrans à gérer, j'ai du mal à concevoir de charger 25 Mo de mémoire juste pour les libellés concernant 95% d'écran auxquels on n'a peut-être même pas accès !)
Bref... Vous utilisez quel système ? Y'a un comparatif des méthodes quelquepart ?
-- Edit : 5 langues pas 54 
Message édité par Arjuna le 07-05-2004 à 16:34:29