![]() |
Wie erkennt eine Delphi-Exe die Systemsprache?
Hi,
ich habe da mal eine grundsätzliche Frage (siehe Titel). Hintergrund/Erläuterung: Ich weiss wie ich lokalisiere, bzw. nutze ohnehin den ![]() :!: Nochmal: Es geht darum wie eine Delphi-Anwendung zur Laufzeit ohne weiteres Zutun des Entwicklers die Systemsprache ermittelt und dann die richtige Ressource zieht. Am besten noch als Gegenüberstellung prä 2010 und post 2010, damit ich weiss wo ich ansetzen muss ;) Ich wäre sehr dankbar für Erleuchtung. Grüße, Sherlock |
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
Naja, die .exe an sich gar nicht ;-)
Es gibt in der Win32 API die Funktion GetUserDefaultLCID ( ![]() Seit Windows Viste empfiehlt Microsoft allerdings eher die Verwendung von GetUserDefaultLocaleName ( ![]() |
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
Da ich das nicht selber in den Code transportiert habe, ist das ist doch offensichtlich irgendwo in der VCL vergraben. Vermutlich in der Unit Windows und passiert demnach ganz von alleine, sobald ich die einbinde. Und aus meiner Sicht damit eben doch in der EXE :D
Aber die MSDN Links helfen mir eventuell schon weiter. Vielen Dank dafür! Grüßle, Sherlock |
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
Schau einmal in der Unit SysUtils nach... da findest du unter initialization GetFormatSettings. Darin wiederum findest du InitSysLocale. ;-)
|
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
YEAH! Das ist es, da schau ich mal nach was sich zwischen D2007 und XE2 getan hat. Super! Danke!
Sherlock |
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
Zitat:
Mann kann aber, wie erwähnt, die verwendete Resource auch fest einstellen. Die entsprechenden Einträge findet man in der Registry unter verschiedenen Schlüsseln (in der Reihenfolge):
Delphi-Quellcode:
HKEY_CURRENT_USER\Software\Embarcadero\Locales
HKEY_LOCAL_MACHINE\Software\Embarcadero\Locales HKEY_CURRENT_USER\Software\CodeGear\Locales HKEY_LOCAL_MACHINE\Software\CodeGear\Locales HKEY_CURRENT_USER\Software\Borland\Locales HKEY_CURRENT_USER\Software\Borland\Delphi\Locales |
AW: Wie erkennt eine Delphi-Exe die Systemsprache?
Zitat:
Bei LOCALE_SABBREVLANGNAME bekommt man dann DEU, ENG usw. [edit] Bei GetUserDefaultLocaleName wurde auch GetLocaleInfoEx verlinkt, also kann es wohl nicht so falsch sein. :angle2: Da XP nun tot ist, kann/sollte ich mein GetLocaleInfo durch GetLocaleInfoEx upgraden, bzw. ich schau grade mal, was genau GetUserDefaultLocaleName für einen String liefert. [edit2] GetUserDefaultLocaleName ist im XE3 natürlich noch nichtmal deklariert. :roll: de-DE en-US ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz