Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   ShortCuts in MenuItems übersetzen (https://www.delphipraxis.net/204260-shortcuts-menuitems-uebersetzen.html)

bcvs 12. Mai 2020 10:06

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:
https://www.sicomponents.com/forum/viewtopic.php?p=372

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)

Uwe Raabe 12. Mai 2020 10:16

AW: ShortCuts in MenuItems übersetzen
 
Zitat:

Zitat von bcvs (Beitrag 1464337)
meine Software kann zur Laufzeit von Deutsch auf Englisch umgeschaltet werden.

Da müsste man jetzt schon wissen, wie du das genau machst.

bcvs 12. Mai 2020 11:40

AW: ShortCuts in MenuItems übersetzen
 
Für die Texte aus den Forms verwende ich den Korzh Localizer (https://korzh.com/localizer) und zusätzlich für sonstige Texte noch eine selbstgestrickte Lösung auf der Basis von Textdateien.

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.

Uwe Raabe 12. Mai 2020 11:50

AW: ShortCuts in MenuItems übersetzen
 
Zitat:

Zitat von bcvs (Beitrag 1464356)
Für die Texte aus den Forms verwende ich den Korzh Localizer (https://korzh.com/localizer)

Der bietet das aber von Haus aus an, solange du die entsprechenden Units nicht in den Resource Strings Settings unter Exclude Units eingetragen hast.

DieDolly 12. Mai 2020 11:59

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:
 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;
Freigeben
Delphi-Quellcode:
TranslateShortCutText.Free;

bcvs 12. Mai 2020 15:40

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:

Ich übersetze das so.
Da wo es dir passt deklarieren
TranslateShortCutText: TTranslateShortCutText;
Das funktioniert und das nehme ich dann auch. Den entsprechenden Thread hatte ich hier in der DP auch schon gefunden, nur die fertige Komponente auf der 2. Seite übersehen.
https://www.delphipraxis.net/120614-...-aber-wie.html

Uwe Raabe 12. Mai 2020 15:57

AW: ShortCuts in MenuItems übersetzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von bcvs (Beitrag 1464389)
Bein Korzh Localizer kapiere ich allerdings nicht, wie ich die Systemunits damit übersetzen kann.

Wie alle anderen Resourcestrings auch. Anbei ein Screenshot des Language Managers mit einem simplen VCL-Projekt (noch nicht übersetzt).

bcvs 12. Mai 2020 17:01

AW: ShortCuts in MenuItems übersetzen
 
Die Vcl_Consts habe ich da nicht.

Uwe Raabe 12. Mai 2020 21:31

AW: ShortCuts in MenuItems übersetzen
 
Zitat:

Zitat von bcvs (Beitrag 1464404)
Die Vcl_Consts habe ich da nicht.

Dann zeig doch mal deine .plo Datei zu dem Projekt.

bcvs 13. Mai 2020 06:53

AW: ShortCuts in MenuItems übersetzen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1464417)
Dann zeig doch mal deine .plo Datei zu dem Projekt.

Bitteschön:
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 07:41 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz