Bonjour,
Je suis en train de développer une application C++ sous Visual Studio 2010 que je prévoie de faire traduire en plusieurs langues par la suite. Seulement voilà, l'internationalisation, c'est un peu la jungle, et moi, je suis un débutant. Après une recherche laborieuse, j'ai réunis quelques informations, mais j'aurais besoin de l'avis de personnes expérimentées pour compléter certains points ou en corriger d'autres si nécessaire.
Pour commencer, voici mes objectifs :
-Packs de langues indépendants interchangeables à la volée au sein de l'application, sans qu'il soit nécessaire de la recompiler ou de la redémarrer.
-Packs de langues faciles à fournir au public afin que n'importe qui puisse participer aux traductions.
-Langues minimum à supporter : Anglais, Chinois, Français, Espagnol, Italien, Allemand, Portugais, Russe, Japonais, Arabe, Coréen. Je me suis basé sur la liste des 10 langages les plus utilisés sur internet.
Pour remplir ces objectifs, je me suis fixé les règles suivantes :
-Support de l'Unicode et utilisation exclusive des wide char. Apparemment, Windows tournant en Unicode nativement, les char sont de toutes façon convertis en wchar_t, rendant leur utilisation inutile, voire contreproductive (pas sûr de ça).
-Interface non dépendante de la taille des chaînes qu'elle contient.
-Interface visuellement "inversable" avec support de l'écriture de droite à gauche pour la langue Arabe.
-Informations basées sur la couleur modifiables facilement pour s'adapter aux différentes cultures à supporter.
-Utilisation des .rc de Visual Studio pour isoler les chaînes à traduire. Sur ce point j'hésite beaucoup, sachant que j'aimerais que les packs de langues ne soient pas dépendants d'un IDE (pour que ça puisse être traduit par n'importe qui). Devrais-je plutôt utiliser un système propre à mon application?
Voilà en gros je ce que pense savoir pour pouvoir internationaliser mon application. Tout avis/complément/correction est le bienvenue.
[Edit] : Finalement, je pense que je vais oublier l'utilisation des .rc pour stocker les chaînes à traduire, parce qu’apparemment il faudrait recompiler l'application dans chaque langue pour que ça fonctionne. Je pense faire un système perso simple comme je l'ai déjà vu sur pas mal d'applis. Les chaînes seront associées à un ID et contenues dans des fichiers textes qui seront parsés au lancement du programme. En fonction de la langue paramétrée, on parse des fichiers différents et on se retrouve donc avec les chaînes dans la langue voulue. Je ne vois pas comment faire plus simple.
Partager