Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   FMX: Sprache des Handys feststellen (https://www.delphipraxis.net/213207-fmx-sprache-des-handys-feststellen.html)

bcvs 15. Jun 2023 13:21

FMX: Sprache des Handys feststellen
 
Hallo zusammen,

ich möchte gerne herausfinden, welche Sprache auf dem Handy eingestellt ist, auf dem meine App läuft (IOS und Android).
Wie geht das? Hat das schon mal jemand gemacht.


Dementsprechend will ich dann die Sprache in meiner App einstellen. Das ist dann kein Problem mehr.

DeddyH 15. Jun 2023 14:12

AW: FMX: Sprache des Handys feststellen
 
Das hier klingt vielversprechend, aber zumindest bei mir wird der HTML-Code angezeigt, da müsste man noch Hand anlegen (I expected nothing and still got disappointed :mrgreen:): https://blogs.embarcadero.com/using-...n-ios-android/

jaenicke 15. Jun 2023 14:27

AW: FMX: Sprache des Handys feststellen
 
Wie wäre es so?
Delphi-Quellcode:
uses
  Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes;

function GetSystemLanguageAndroid: string;
var
  Res: JResources;
  Config: JConfiguration;
  Locale: JLocale;
begin
  Result := '';
  if Assigned(TAndroidHelper.Context) then
  begin
    Res := TAndroidHelper.Context.getResources;
    if Assigned(Res) then
    begin
      Config := Res.getConfiguration;
      if Assigned(Config) and not Config.getLocales.isEmpty then
      begin
        Locale := Config.getLocales.get(0);
        Result := JStringToString(Locale.getLanguage);
      end;
    end;
  end;
end;

philipp.hofmann 15. Jun 2023 14:41

AW: FMX: Sprache des Handys feststellen
 
Das geht auch in ganz kurz: PlatformUtilities.GetOSLangID(). Es kommt aber ein zusammengesetzter String zurück, d.h. nicht zwingend DE, sondern AT-de und solche Konstrukte.

bcvs 15. Jun 2023 16:34

AW: FMX: Sprache des Handys feststellen
 
Zitat:

Zitat von DeddyH (Beitrag 1523446)
Das hier klingt vielversprechend, aber zumindest bei mir wird der HTML-Code angezeigt, da müsste man noch Hand anlegen (I expected nothing and still got disappointed :mrgreen:): https://blogs.embarcadero.com/using-...n-ios-android/

Ich habe Hand angelegt.
Die für mich relevanten Zeilen sind einfach:
Delphi-Quellcode:
  OSLang:='';
  if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then
    OSLang := LocaleService.GetCurrentLangID();
Funktioniert. Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz