Quand on développe des outils personnels ou internes à une entreprise il est rare qu’on ait besoin de gérer plusieurs langues (même si ce n’est pas une mauvaise idée d’y penser dans le monde global dans lequel nous évoluons). Lorsqu’on vise l’international ou les plateformes mobiles c’est impératif de proposer un système de changement de langue au niveau de chaque logiciel.
Embarcadero fournit un assistant d’internationalisation avec les projets VCL mais a annoncé sa « deprecation » lors de la sortie de la 10.3 Rio. Un composant est également disponible pour les projets FireMonkey mais il n’est pas des plus pratiques sur de gros projets.
Il existe plusieurs autres solutions dans l’écosystème Delphi et C++ que l’on peut appliquer à nos projets. La plus connue semblant être TSILang, mais d'autres sont aussi disponibles dans le commerce ou en open source. Des liens sont disponibles sur la présentation de cette session, je vous invite à les consulter directement.
En seconde partie de cette conférence en ligne je vous propose de mettre en place une méthode simple pour rendre vos projets exploitables à l’international en utilisant une dose d’héritage et quelques boucles bien placées.
Les exemples sont développés en FireMonkey pour Delphi mais vous pourrez vous en inspirer sur vos autres types de projets en Delphi ou Lazarus comme en C++Builder.
Le PDF de la présentation est disponible en téléchargement.
Vous pouvez également accéder aux sources des exemples et vous en inspirer dans vos projets.
Et voici le replay de cette conférence en ligne :
Avec la rediffusion sur Serial Streameur vous pourrez également télécharger un ZIP contenant le module de traduction utilisé sur le projet FMX Button Generator :
- la fiche ancêtre de toutes les fiches du projet qui contient le module de traduction des composants (TPresentedControl) ayant une propriété Text
- le module de données qui contient la gestion des langues (import du fichier des langues dans le projet, lecture de son contenu, fonctions utilisées pour récupérer le texte traduit depuis la langue actuelle, modification de la langue actuelle)
- le projet Delphi FMX de création d'un fichier de langues utilisé par le module de données de traduction du projet