Ich hab eine Anwendung die Formulate in DLLs nachlädt.
(Eigentlich sind's ja
COM-Objekte, aber das kommt auf's gleiche raus).
Sowohl die Anwendung als auch die DLLs werden übersetzt. Wir verwenden die standard Borland Methode, also mit Sprach-DLLs. Es gibt also z.B. die Files
* App.exe
* App.DE
* Test.dll
* Test.DE
Um die Anwendung auf einem Rechner in Deutsch anzuzeigen trägt man einfach in die Registry unter HKEY_CURRENT_USER\Software\Borland\Locales ein
"C:\Programme\Pfad\App.exe"="DE"
und schon lädt die Anwendung und alle DLLs die von der Anwendung geladn werden die .DE-Sprachdateien nach.
Probleme gibt's allerdings wenn ich auf einem deutschen Rechner erzwingen will, dass die Anwendung englisch bleibt, also keine Sprach-DLLs geladen werden.
Trage ich in die Registry ein
"C:\Programme\Pfad\App.exe"="EXE"
lädt de Hauptanwendung in englisch (weil er die ressourcen aus der exe holt), für die
DLL's findet er aber keine gleichnamigen .exe-Dateien und lädt wieder die deutschen Ressourcen.
Schreibe ich
"C:\Programme\Pfad\App.exe"="
DLL"
läuft die Hauptanwendung deutsch und die DLLs englisch.
Um das Problem zu umgehen haben wir bisher - wenn ein Kunde unbedingt eine englische Version wollte - die Sprachdateien in einen Unterordner verschoben, da kann die Applikation nicht anders als die originalen englischen Ressourcen zu nehmen. Blöderweise geht das unter Vista nicht mehr weil die Anwendung Files in "C:\program files"-Unterordnern nicht mehr verschieben kann.
Wie könnte ich dieses Problem lösen?
Vielen Dank!
Ralf