Mehrsprachige Programme + standarddialoge wie CFileDialog,...
-
Guten Tag
Ich habe ein Projekt, dass ich mehrsprachig gestalte.
Damit sich jeder Benutzer die Sprache selbst anpassen kann, habe ich die Sprachedateien als ini-Dateien erstellt.
So weit, so gut.
Die normalen Dialog-/Menütexte mehrsprachig zu gestalten funktioniert sehr gut.
Doch wie kann ich die Sprache bei Standardfenstern wie CFileDialog oder CColorDialog ändern?
Ich möchte nicht jedes Fenster händisch nachprogrammieren.
Gibt es da eine einfachere Lösung?
Ich habe es schon über Hook's versucht, aber da bekomme ich Probleme bei CFileDialog mit der Laden/Speichern-Schaltfläche, da dort der Text zur Laufzeit immer wieder neu gesetzt wird.
-
Gar nicht. Es geht nicht.
Du kannst versuchen die Teile alle zu finden und zu ersetzen, aber spätestens bei den Tooltips wirst Du keinen Erfolg haben.
Derjenige der sein OS bedient wird nich überrascht sein, dass die Kompontenten, die er benutzt in der Sprache seines OS erscheinen.
-
Derjenige der sein OS bedient wird nich überrascht sein, dass die Kompontenten, die er benutzt in der Sprache seines OS erscheinen.
Willst du damit andeuten, dass die Standard-Dialogfelder in der Systemsrache angezeigt werden?
Etwa auch bei statisch gelinkten DLL's?
Wenn dass so ist, kann ich (und hoffentlich auch die Benutzer) damit leben.
-
So ist es.
Color-Dialog, Font-Dialog, Öffnen/Speichern-Dialog, MessageBoxen werden immer in der vom Benutzer gewählten Systemsprache angezeigt (Seit Vista haben wie echte MUI-Systeme).
-
Danke für die Information.
Ich dachte schon, dass bei statisch gelinkten DLL's wirklich alle DLL's in das Projekt gepackt werden und die Standarddialoge immer die Sprache der Programmierumgebung haben.
Aber wenn die Sprache des Benutzer-Betriebsystems verwendet wird, habe ich gleich eine Sorge weniger.
Vielen Dank nochmal.
-
Nein! Statisch wird nur das gelinkt, was Du auch an statischen Bibliotheken anbietest. Das ist meistens nur CRT/MFC.
Schau Dir mal Deine Software in Depends an. Dann wirst Du sehen was noch alles dynamisch geladen wird. Dazu gehört eben auch alles vom OS.
-
Danke für deine Hilfe.
Man lernt nie aus.