Also ich setze die Formatsettings ja auch zentral im initialization Teil meiner Typen-Sammel-
Unit...
So wie es aussieht müsste per marshalling ICUlib geladen werden, wenn man den Locale 'de-DE' angibt
das wird im falle von Android in 'de_DE' umgewandelt...
Und wenn der Code nicht in der ICU lib gefunden wird nimmt Sysutils die 'en_US' settings...
Ich habe das leider noch nicht debuggen können(habe kein Android 15) aber ich denke Delphi sollte das korrigieren und weiter funktionieren!
Da ich leider keinen Zugriff auf Quality central habe kann ich den Fehler auch nicht melden.
Ich habe außerdem bemerkt das Mein App als einzige nicht in der "App-Sprache" liste der Einstellungen auftritt. In dieser Liste werden Apps gelistet die eine Sprachauswahl unterstützen.
Ich unterstütze aber keine Sprachauswahl da ich keinen Support in anderen Sprachen liefern kann.
Würde der Locale Code wieder funktionieren wenn die App in der Sprachauswahl liste auftauchen würde? Und wo legt man fest das die App Sprachauswahl unterstützt ?
Hat jemand eine App die in der Liste ist und bei der trotzdem der Locale code nicht funktioniert?
Gemini meint ich soll die
locales_config.xml
vernünftig konfigurieren wtf???
An anderer Stelle heist es, dass seit Android 15 Setlocale nur noch innerhalb einer Activity funtioniert...und dann für alle Activities die davon abgehen gesetzt bleibt...
Ich rufe das Locale ja ab befor irgendeine activity (Form ???) erzeugt ist und ich brauche das ja auch schon vorher.
Im Moment sieht die Lösung so aus??? Wie machen das Firmen mit mehr als einer unterstützten Sprache?
Delphi-Quellcode:
{
CommonFormat := TFormatSettings.Create('de-DE');// Das wird schon alles initialisiert
CommonFormat.ShortDateFormat := 'DD.MM.YYYY';
}
CommonFormat.LongDateFormat := 'DD.MM.YYYY';
CommonFormat.CurrencyString := '€';
CommonFormat.CurrencyFormat := 3;
CommonFormat.NegCurrFormat := 8;
CommonFormat.CurrencyDecimals := 2;
CommonFormat.TimeAMString := '';
CommonFormat.TimePMString := '';
CommonFormat.ShortTimeFormat := 'hh:mm:ss';
CommonFormat.LongTimeFormat := 'hh:mm:ss,zzz';
CommonFormat.ThousandSeparator := '.';
CommonFormat.DecimalSeparator := ',';
CommonFormat.DateSeparator := '.';
CommonFormat.TimeSeparator := ':';
{
FormatSettings := TFormatSettings.Create('de-DE');// Das wird schon alles initialisiert
FormatSettings.ShortDateFormat := 'DD.MM.YYYY';
}
FormatSettings.LongDateFormat := 'DD.MM.YYYY';
FormatSettings.CurrencyString := '€';
FormatSettings.CurrencyFormat := 3;
FormatSettings.NegCurrFormat := 8;
FormatSettings.CurrencyDecimals := 2;
FormatSettings.TimeAMString := '';
FormatSettings.TimePMString := '';
FormatSettings.ShortTimeFormat := 'hh:mm:ss';
FormatSettings.LongTimeFormat := 'hh:mm:ss,zzz';
FormatSettings.ThousandSeparator := '.';
FormatSettings.DecimalSeparator := ',';
FormatSettings.DateSeparator := '.';
FormatSettings.TimeSeparator := ':';