Guten Tag.
Zur Zeit bin ich dabei einen Teil unserer Software testweise nach Firemonkey zu portieren, um die Lauffähigkeit auf dem Mac zu untersuchen.
Nun stolpere ich ein wenig bei dem Auslesen der Systemsprache.
unter Windows wurde bisher
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SABBREVLANGNAME, LangDriver, $FF)
verwendet.
Dies lieferte bisher den Windows-Sprachcode zurück, von dem ich mich jetzt wahrscheinlich sowieso verabschieden darf, da ich jetzt eigentlich TLanguages wechseln wollte.
Delphi-Quellcode:
var
aString : string; // Ausgabe des gefundenen Locales in einem TText...
aIndex : integer;
aLanguages : TLanguages;
aLid : TLocaleID;
begin
aLanguages := TLanguages.Create;
aLid := aLanguages.UserDefaultLocale;
aIndex := aLanguages.IndexOf(aLid);
if aIndex <> -1 then
begin
try
aString := inttostr(aIndex) + ' ' + aLanguages.LocaleName[aIndex];
except
aString := inttostr(aIndex) + ' - Nicht gefunden!!!';
end;
end;
Mit diesem Code wird allerdings unter MacOS der aIndex immer -1. Ich habe mich auch schon etwas weiter durch die IndexOf-Funktion durchdebuggt - die von UserDefaultLocale gelieferte LocaleID habe ich in den aLanguages bisher nicht wieder gefunden.
Was habe ich übersehen? Gibt es irgendwelche Alternativen, die ich bisher nicht bedacht habe?