![]() |
dxgettext und Application.ShowMessage:WideString->PAnsiCh
Hallo zusammen,
heute bin ich beim Einbau der Lokalisierungen auf eine Codestelle gestossen, wo eine Messagebox mit zu lokalisierenden Texten und entsprechenden Buttons angezeigt wird. Vorher (vereinfacht):
Delphi-Quellcode:
Laut Doku sind die ersten beiden Parameter PAnsiChar, mit dxgettext komme ich da nicht direkt auf nen passenden Datentyp, auch mit Casting nicht. Wie macht man das am elegantesten?
intUserAntwort=Application.MessageBox('Sind Sie sicher?', 'Bestätigung', MB_YESNO + MB_ICONINFORMATION + MB_TASKMODAL);
|
Re: dxgettext und Application.ShowMessage:WideString->PAn
Dann wirst Du auf die Win32-Funktion MessageBoxW zurückgreifen müssen.
Nur so als Tipp: 'Bestätigung' solltest Du dann so schreiben _('Bestaetigung') |
Re: dxgettext und Application.ShowMessage:WideString->PAn
Hallo,
da ich GetText wohl auch verwenden werden, habe ich eine Frage an OldGrumpy. Muss das nicht erst alles "eingeenglischt" werden, oder benutzt die diese neue Beta, die auch deutsch als Ausgangspunkt haben kann? Heiko |
Re: dxgettext und Application.ShowMessage:WideString->PAn
ich würde Dir das auch beantworten ;-)
der grund, warum gesagt wird, man solle erst alles in Englisch schreiben, ist der, dass eben solche Sonderbuchstaben (ä,ö,...) von den jeweiligen Übersetzerprogrammen / Übersetzern unter Umständen nicht richtig gelesen werden können. Wenn man also beim Deutsch bleibt und Sonderbuchstaben vermeidet, ist das kein Problem (wird beim Französischen schon schwerer). Zumindest sehe ich keinen Grund, meine Anwendung in Englisch zu entwickeln, wenn mein Zielmarkt Deutschland und Polen ist. |
Re: dxgettext und Application.ShowMessage:WideString->PAn
Zitat:
|
Re: dxgettext und Application.ShowMessage:WideString->PAn
Aua, aua, an MessageBoxW hab ich ja gar nicht gedacht :wall: :wall: :wall:
Manchmal sieht man den Wald vor lauter Bäumen nicht :) Alternativ kann man natürlich auch selber einen Castingwald bauen:
Delphi-Quellcode:
Kommt halt darauf an, welche Zielplattformen man im Auge hat. Ich benutze für mein Projekt jetzt lieber MessageBoxW, da bleibt der Code übersichtlicher. Und Mehrfachcasting ist eh hässlich (auch wenn einem manchmal nix anderes übrig bleibt) und fehlerträchtig :stupid:
Application.MessageBox(PAnsiChar(string(_('blablabla'))), PAnsiChar(string(_('Überschrift'))), MB_OK);
Welche Sprache man als Basis nimmt, ist eigentlich egal. Ich entwickel momentan an mehrsprachigen Projekten, daher sind bei mir alle Texte erstmal englisch. Dann können die Übersetzungen nämlich schon raus, während ich noch etwas Zeit für die deutschen Texte und GUI-Anpassungen hab (Text zu lang, o.ä., kennt man ja). @sh17: Nö, mach ich nicht :D Die deutschen Umlaute seh eh nur ich, ich hatte jetzt aus reiner Faulheit keine englischen Texte reingeschrieben :) Basissprache für die Programme ist hier aus Gewohnheit immer Englisch, da gibts am wenigsten Probleme mit den Übersetzern :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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