1. projet Il y avait de l'échantillon (livré avec Delphi) appelé RichEdit
qui avait le changement d'exécution du langage. Pour y parvenir, Reinit
unité a été utilisée (vous pouvez le prendre à partir de là) qui recharge réellement toutes les ressources. Il fonctionne normalement sur des programmes simples comme celui-ci, mais peut être très pénible à implémenter dans quelque chose de plus complexe, puisque tous les contrôles sur la forme sont retournés à l'état initial dans lequel ils ont été au démarrage, donc c'est votre responsabilité pour garder vos données cohérentes. Bien que dans une implémentation correcte où toute la logique d'application est séparée de l'interface graphique (donc il n'y a pas de variables sur TForm
, pas de stockage de données utilisateur dans les boîtes d'édition, etc.), cela devrait fonctionner normalement.
Voir le code source de RichEdit
exemple pour comprendre comment utiliser Reinit.pas
2. L'approche classique consiste à utiliser ResourceString
. Dans la section d'interface de l'appareil ou mieux dans l'unité séparée, écrivez:
ResourceString
ChangeLanguageStr = 'Zmieniłeś język';
//another strings here
et pour montrer un message:
ShowMessage(ChangeLanguageStr);
Ces chaînes seront affichés dans le gestionnaire de traduction.
Êtes-vous sous firemonkey ou VCL? –
VCL. Delphi 10 Seattle Enterprise. – InnerWorld
Vous pouvez essayer d'utiliser le composant TLang, mais il est buggé et ne fonctionne pas avec tous les composants. J'ai écrit mon propre composant pour localiser les applications Android et ios et les programmes Windows, je vous suggère de faire la même chose. Sinon, vous pouvez vérifier ceci: https://yktoo.com/en/software/dklang –