Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS TLang arbeitet nicht korrekt (https://www.delphipraxis.net/177207-tlang-arbeitet-nicht-korrekt.html)

Union 24. Okt 2013 13:13

TLang arbeitet nicht korrekt
 
Wenn man unter Firemonkey (iOS) die TLang-Komponente verwendet, so erfolgt die automatische Sprachumstellung nicht abghängig von der Spracheinstellung in iOS, sondern abhängig von der Sprache der Regionaleinstellung. Die Sprache auf "English" zu stellen bewirkt überhaupt nichts, sondern man muß als Regionsformat auch noch "United States" oder "United Kingdom" einstellen. Das weicht total von dem Verhalten aller anderen Apps ab. Wahrscheinlich kriege ich so eine App auch nicht in den Store.

In TPlatformCocoaTouch.GetCurrentLangID ist die abgefragte Eigenschaft falsch. Verwendet wurde currentLocaleanstelle von preferredLanguages.

eddie11 24. Okt 2013 17:17

AW: TLang arbeitet nicht korrekt
 
Das Problem mit Platformservice und der Sprache hatte ich auch, da kommt anscheinend die Sprache raus, die Apple für den momentanen Aufenthaltsort für richtig hält.

Ich habe nach einigem Suchen dann das gefunden:
Delphi-Quellcode:
var
   Languages: NSArray;
   LanguageISO: NSString;
begin
  // Sprache
  Languages := TNSLocale.OCClass.preferredLanguages;
  LanguageISO := TNSString.Wrap(Languages.objectAtIndex(0));
  Sprache := UTF8ToString(LanguageISO.UTF8String);
  if Length(Sprache) > 2 then
    Delete(Sprache, 3, MaxInt);
end
Damit kriege ich die Sprache lt. Einstellungen raus. Aber das wird Dir bei Deinem TLang-Problem auch nicht unbedingt weiterhelfen. Ich habe ohnehin was eigenes gebastelt, ich habe die Texte,Captions etc. in einer ini-Date und lade sie zur Laufzeit in die Controls.

Union 24. Okt 2013 17:35

AW: TLang arbeitet nicht korrekt
 
Ja, so habe ich das inzwischen auch gelöst. Aber das ist komplett unbrauchbar, da die Konstanten (abhängig von der Sprache der IDE-Installation!) ja nicht mit eingelesen werden. Bei Ja/Nein-Abfragen mittels der Standarddialoge wird das dann besonders ulkig. "Really delete? [Ja] [Nein]". Ausserdem gibt es auch noch Style-Elemente die ja mit-upgedated werden (müssen), besonders schick ist hier TSwitch, wo die Texte als Bitmap-Ausschnitte in einem jpg hinterlegt sind.

Aber von Embarcadero lernen heißt siegen lernen. Ich geb das jetzt einfach in dieser Qualität in den Shop :twisted: Mal sehen was die Review ergibt. Hab sowieso schon eine Woche länger gebraucht als geplant.

RWarnecke 24. Okt 2013 18:00

AW: TLang arbeitet nicht korrekt
 
Sind nicht die Strings für die Zeichendialoge in eine der PAS-Dateien von Delphi hinterlegt ? Dann könnte ich ja damit die Sprache auch entsprechend umstellen.

Edit:
Ich habe die Datei für FMX rausgesucht. Die Datei heißt FMX.Consts.pas. Darin stehen alle Strings für die Standarddialoge. Hatte das mal bei einem VCL-Projekt gesehen, welches ich übernommen hatte, wo mein Vorgänger eine deutsche Entwicklungsumgebung installiert hatte und musste die Dialoge im Programm auf English anzeigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 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