![]() |
ShortCuts in MenuItems übersetzen
Hallo zusammen,
meine Software kann zur Laufzeit von Deutsch auf Englisch umgeschaltet werden. Das funktioniert soweit ganz gut, bis auf die Shortcuts im Hauptmenu wie z.B. Kopieren Strg+C. Wie kann ich hier das Strg+C in Ctrl+C ändern? Lösungen wie das Patchen der Resource-Strings fallen raus, da die Umschaltung zur Laufzeit erfolgen soll. Dann habe ich das hier gefunden: ![]() Das kriege ich aber nicht zum Laufen. Mein Programm hängt sich dabei beim Start auf, und ich weiß nicht wo. Wie macht Ihr das denn? (D10.2) |
AW: ShortCuts in MenuItems übersetzen
Zitat:
|
AW: ShortCuts in MenuItems übersetzen
Für die Texte aus den Forms verwende ich den Korzh Localizer (
![]() Das Problem mit den Shortcuts in den Menüs ist aber, dass man da nicht ohne weiteres rankommt und dass Delphi einfach die Stringkonstanten aus Consts.pas da reinsetzt. Dazu gibt es in Vcl.Menus die Procedure ShortCutToText. Die müsste man überschreiben oder ersetzen können, um den Menüs eigene Bezeichungen der Shortcuts unterzujubeln. Dafür suche ich noch eine funktionierende Lösung. Wenn die Umschaltung nicht sofort, sondern erst beim nächsten Programmstart erfolgen würde, wäre auch kein Problem. Ich will nur nicht verschiedene Exen für verschiedene Sprachen vorhalten. |
AW: ShortCuts in MenuItems übersetzen
Zitat:
|
AW: ShortCuts in MenuItems übersetzen
Ich übersetze das so.
Da wo es dir passt deklarieren
Delphi-Quellcode:
TranslateShortCutText: TTranslateShortCutText;
Erzeugen
Delphi-Quellcode:
TranslateShortCutText := TTranslateShortCutText.Create(form);
Übersetzen
Delphi-Quellcode:
Freigeben
TranslateShortCutText.Key_Backspace := 'MyBackspace';
TranslateShortCutText.Key_Tabulator := 'Tab'; TranslateShortCutText.Key_Return := 'Enter'; TranslateShortCutText.Key_Escape := 'Esc'; TranslateShortCutText.Key_Space := 'Leertaste'; TranslateShortCutText.Key_Prior := 'BildAuf'; TranslateShortCutText.Key_Next := 'BildAb'; TranslateShortCutText.Key_End := 'Ende'; TranslateShortCutText.Key_Home := 'Home'; TranslateShortCutText.Key_Left := 'Links'; TranslateShortCutText.Key_Up := 'Oben'; TranslateShortCutText.Key_Right := 'Rechts'; TranslateShortCutText.Key_Down := 'Unten'; TranslateShortCutText.Key_Insert := 'Einfügen'; TranslateShortCutText.Key_Delete := 'Entfernen'; TranslateShortCutText.Key_Alt := 'Alt+'; TranslateShortCutText.Key_Ctrl := 'STRG+'; TranslateShortCutText.Key_Shift := 'Shift+'; TranslateShortCutText.RefreshMenuItems;
Delphi-Quellcode:
TranslateShortCutText.Free;
|
AW: ShortCuts in MenuItems übersetzen
Danke, jetzt habe ich sogar zwei Lösungen.
Bein Korzh Localizer kapiere ich allerdings nicht, wie ich die Systemunits damit übersetzen kann. Zitat:
![]() |
AW: ShortCuts in MenuItems übersetzen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: ShortCuts in MenuItems übersetzen
Die Vcl_Consts habe ich da nicht.
|
AW: ShortCuts in MenuItems übersetzen
Zitat:
|
AW: ShortCuts in MenuItems übersetzen
Zitat:
Code:
[Main]
PLOVersion=2 BaseLocale=1031 BaseEngName=German BaseLocName=Deutsch Edition=1 LangDir= ResUnitType=0 RSIDBase=-1000 MaxConstLen=32 TranslitMode=0 DRCConstProc=1 AddLocAPI=1 ProcessOnlyProjectUnits=1 AutoRemoveProperties=1 AutoRemoveResStrings=1 RebuildPrj=0 CompressLF=1 CreateNTV=0 AutoRefresh=0 MergeDupRS=0 LinkLangs=0 NoMapFile=0 IgnoreAsync=0 DumpDRC=0 ProcessFrc=0 ProcessFrf=0 FrfPath= ProcessRtm=0 RtmPath= UseLocrefresh=0 LocrefreshPath= LinkedLangs= ResUnitFileName=PrjConst.pas RSNamePrefix= RSPrefixWithUnitName=0 [PropRules] +.Caption +.Hint +.Header +.DisplayLabel +.ReportTitle +.Text +.Title.Caption +.Items.Strings +.Lines.Strings +.Hints.Strings +.EditLabel.Caption +.Values +.WideText [SubstProps] T*Field:FieldName-DisplayLabel TDBGrid.Columns[*]:FieldName-Title.Caption [ExcludeForms] [ExcludeRules] in FieldByName( application.title:= [ExcludeUnits] [AddUnits] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:04 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