Bonjour � tous
Je suis actuellement en train de rendre mon programme multilangue.
j'ai donc diff�rent fichier XML contenant les captions des boutons et autres affichages de mon application (un par langue).
Au d�marrage de mon application, je charge le document XML correspondant a la langue stock� dans un fichier ini et je renseigne tous les captions. L� pas de probl�me.
Je veux donn� la possibilit� a l'utilisateur de changer cette langue quand il le d�sire. J'ai donc un menu me permettant de faire cela, qui appelle les m�me fonctions que lors du premier chargement du programme et ainsi charger les captions de la langue correspondante.
Or, lors d'un changement de langue, j'ai une erreur EDomParseError
Est-ce que quelqu'un saurais d'o� peut venir le probl�me.
Voici mon code :
L'erreur se produit lorsque je veux r�cup�rer la racine.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // Méthode qui charge les Caption des composants bool __fastcall TMainForm::ChargerCaption(void) { // Chemin pour le fichier de langue AnsiString CheminFichierLang = ExtractFilePath(Application->ExeName) + "\Lang\\"; // On fini de construire le chemin pour le fichier de langue CheminFichierLang += Langue; CheminFichierLang += ".lang"; // On récupère le contenu du fichier XML DocumentXML->LoadFromFile(CheminFichierLang); // On active le document DocumentXML->Active = true; // On récupère la racine du document _di_IXMLNode Racine = DocumentXML->DocumentElement; .... }
Voici l'appel dans le constructeur de l'application pour le premier chargement
Merci d'avance pour votre aide.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 // On charge la langue Language(); // Méthode qui récupère la langue dans le fichier ini // On charge les captions if(!ChargerCaption()) { ShowMessage("Erreur dans le fichier de langue !"); // On vide le document XML DocumentXML->XML->Clear(); // On désactive le document DocumentXML->Active = false; Application->Terminate(); } // On vide le document XML DocumentXML->XML->Clear(); // On désactive le document DocumentXML->Active = false;
Partager