Einzelnen Beitrag anzeigen

peter_chen

Registriert seit: 25. Nov 2009
3 Beiträge
 
Delphi 2010 Professional
 
#1

Locale unter MacOS auslesen

  Alt 23. Feb 2012, 09:30
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?
  Mit Zitat antworten Zitat