Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Delphi kommt mit bestimmten Format-Strings nicht zurecht

  Alt 9. Aug 2017, 16:21
Es geht um Lokalisierung einer Oberfläche. Viele Strings beinhalten Format-Bezeichner wie "Last updated %d minutes ago".

Die entsprechenden Übersetzer haben oft unsinnige Leerzeichen eingefügt sodass daraus "Zuletzt aktualisiert vor % d Minuten" wurde. In einem C-Programm ist das kein Problem oder sogar gewünscht(siehe Doku), deshalb fiel das bislang nicht auf:
Code:
   std::printf("Das ist ein \"%   s\"", "Test");
   std::cout << std::endl;
   std::printf("Die Zahlen sind \"% d\" und \"% d\"", 42, -99);
ergibt
Zitat:
Das ist ein "Test"
Die Zahlen sind " 42" und "-99"


Bei Delphi kommt mit
Delphi-Quellcode:
   WriteLn( String.Format('Das ist ein "% s"', ['Test']));
   WriteLn( String.Format('Die Zahlen sind "% d" und "% d"', [42, -99]));
leider ein völlig unsinniges
Zitat:
Das ist ein "
Die Zahlen sind "
heraus. Es wird keine Exception geworfen. Die Doku kennt Leerzeichen auch nicht.


Wie komme ich aus der Nummer am besten raus?
  Mit Zitat antworten Zitat