Quelle technique serait la moins efficace pour internationaliser (au moins plusieurs langues) les applications Delphi existantes?

StackOverflow https://stackoverflow.com/questions/233560

Question

J'ai développé environ 300 applications que je souhaite proposer avec des fonctionnalités multilingues indépendantes du système d'exploitation. J'ai écrit un traducteur juste à temps, mais cela est trop lent dans les applications comportant de nombreux composants. Que suggéreriez-vous que je fasse?

Était-ce utile?

La solution

J'ai entendu dire que les composants TsiLang sont bien, mais vous solution en place ...

J'ai utilisé le gettext GNU pour Delphi qui fait exactement ce que vous voulez, il charge les traductions depuis un fichier texte et remplace le texte dans vos composants. Il possède même un scanner pas / dfm pour générer automatiquement le fichier de traduction anglais.

Il est également possible de changer automatiquement votre code source Pascal pour injecter la procédure gettext à la place de vos chaînes statiques. Si je ne me trompe pas, il ajoute simplement un trait de soulignement comme fonction, comme indiqué ci-dessous.

ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

Je dois dire que cela fait 2 ans que j'ai utilisé cette méthode pour la dernière fois.

Une chose restera problématique, les composants Delphi ne sont pas compatibles Unicode (corrigé par D2009). Ainsi, lorsque vous ne modifiez pas les composants, la prise en charge des autres langues reste limitée.

Autres conseils

Nous utilisons TsiLang et nous en sommes très satisfaits.

L'un des meilleurs points est que vous pouvez prétraduire le projet avec un dictionnaire (que vous avez rempli à partir de traductions existantes).

Une bonne solution gratuite serait le gettext GNU pour Delphi . Il possède des fonctionnalités qui ne sont pas présentes dans TsiLang - par exemple, vous pouvez mettre les connaissances nécessaires pour compter les éléments (fins différentes pour un, deux, quatre, cent deux, plusieurs ...) dans le fichier de traduction de sorte que vous ne le fassiez pas. pas besoin d’enseigner à chaque programme pour connaître ce genre de choses.

La licence pour la partie Delphi est très permissive mais je ne sais pas dans quelle mesure le contenu GNU inclus affectera votre application.

Obtenez Multilizer . Il est fabriqué en Delphi et peut gérer des programmes Delphi comme aucun autre avec un support spécial pour VCL. Vous pouvez même refaire facilement vos écrans pour toutes les langues. Avec Multilizer, vous pouvez utiliser différentes techniques pour traduire et exécuter votre programme.

Delphi 2009 a ajouté un gestionnaire de traduction externe / environnement de traduction intégré. ITE et ETM sont maintenant disponibles pour Delphi et C ++ Builder.

Dans l'article de Codegear: Nouveautés de Delphi et de C ++ Builder 2009 , ils indiquent :

  

Environnement de traduction intégré   (ITE) fait partie de l'IDE que   simplifie la localisation de vos projets.   ITE peut créer un nouveau projet localisé   à partir d'un projet existant. ITE ne   traduire automatiquement le texte, mais   fournit une boîte de dialogue listant tout le texte   qui doit être localisé et les champs   dans lequel entrer le   texte traduit. Une fois que vous avez entré   le texte traduit et construit le   projet localisé, vous pouvez définir un autre   langue active et afficher un formulaire   le texte localisé; tu n'es pas obligé   changez de lieu et redémarrez votre système.   Cela vous permet d'effectuer   localisation sans nécessiter un   système localisé.

     

Le gestionnaire de traduction externe (ETM)   est une application autonome qui fonctionne   avec des fichiers DFM et des chaînes de texte dans le   code source. Bien que l'ETM ne   vous permettent de créer une nouvelle localisation   projet, il fournit un dialogue   liste du texte localisé et la   texte traduit, semblable à ITE.

C’est ce que je prévois d’essayer une fois que j’ai atteint le point où je veux internationaliser mon produit.

Cependant, pour moi, la partie facile est de traduire le programme. La partie difficile est de traduire le fichier d'aide.

Je dirais le gettext GNU pour Delphi en combinaison avec Pack de composants TMS Unicode (auparavant gratuit sous TntWare) pour obtenir la prise en charge de l'unicode dans les composants.

Pour utiliser ou faire fonctionner les traducteurs, les fichiers gettext, je vous recommande de consulter le Poedit pouvant éditer les fichiers .po.

Il suffit de mentionner cxLocalizer si vous possédez des composants DexExpress.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top