![]() |
Re: Unicode Ersatz für Format
Zitat:
Delphi-Quellcode:
Ich muss zuerst einen String mit Platzhaltern übersetzt werden (_())! Dann die Variablen einsetzen (Format) und dann in WideString umwandeln!
Format(_('string %s'), [e.Message]);
Der letzte Schritt ist das Problem. :) |
Re: Unicode Ersatz für Format
Zitat:
Delphi-Quellcode:
Wie wärs, wenn die Formatfunktion auch noch C-Formatierungssymbole erkennen würde? z.b. \r\n für Windows Zeilenumbruch, statt #13#10.
MessageBoxW(hDPM, PWideChar(Format('Error while downloading and processing updateinformation.'
+ #13#10'Message: %S'#13#10'Errorclass: %S', [_(e.Message), _(e.ClassName_)])), '[Update Plugin] Downloading/Processingerror', MB_OK or MB_ICONERROR); MessageBoxW(hDPM, PWideChar(Format('Error while downloading and processing updateinformation.' + #13#10'Message: %s'#13#10'Errorclass: %s', [WideString(_(e.Message)), WideString(_(e.ClassName_))])), '[Update Plugin] Downloading/Processingerror', MB_OK or MB_ICONERROR); Der obige Code ist meiner Meinung nach nicht wirklich toll. |
Re: Unicode Ersatz für Format
Zitat:
aber dann wäre beides FormatString und das einzufügende wohl nicht schlecht.
Delphi-Quellcode:
aber mal 'ne Frage, diese _(...) arbeitet doch nur mit Strings/AnsiStrings?
Format(_('string %s'), [_(e.Message)]);
// oder alles zusammen _(Format('string %s', [e.Message])); da würde es doch eigentlih alle UnicodeInformationen zerstören, weshalb man gleich bei delphi's Format-Version (Ansi) bleiben könnte. :gruebel: |
Re: Unicode Ersatz für Format
Zitat:
Das scheint hier wohl noch ein paar Probleme zu geben! 1. _(<string>) übersetzt einen String (z.B. <string>="Hallo Welt"; Dann guckt er in der Datei nach "Hallo Welt" und würde die jetzt in "Hello World" übersetzten). 2. _() Arbeitet mit WideStrings! (Ein/Ausgabe) Zu den Ersten: Das kann er übersetzen: "Zahl: %d" => "Number %d" => Format(...) Erfolg Wenn ich aber das so wie dein zweiten Vorschlag machen würde: "Zahl: %d" => Format(...) => "Zahl: 123456789" => Kein Erfolg Deshalb muss ich irgendwie Format auf WideStrings anwenden. MfG xZise |
Re: Unicode Ersatz für Format
Also irgendwie will das nicht funktionieren!
Gibt es denn keine Möglichkeit dieses Format auch für WideStrings hinzubekommen? Irgendwie scheinen die Übergabeparameter nicht ganz zu stimmen:
Delphi-Quellcode:
Er übersetzt das zwar, setzt aber anstelle des Strings irgendwelche komischen (japanisch/chinesisch?) Zeichen ein.
Format(_(<string>), [<string>]);
Auch das die Bytereihenfolge falsch ist, stimmt nicht, da ein swapen der Reihenfolge des Strings nichts bringt! [edit=1]ICH HABE ES :) Es funktioniert wenn ich statt "<string>" als Variable "WideString(<string>)" einsetze.[/edit] MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz