Delphi-PRAXiS

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]

Uwe Raabe 13. Mai 2020 07:32

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

Zitat von bcvs (Beitrag 1464431)
Zitat:

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

Bitteschön:

Ist erstmal unauffällig. Ein neu erstelltes VCL-Projekt zeigt hier im Language Manager eine Struktur wie im Screenshot.

Besteht die Möglichkeit, die .ntv.lng Datei zu sehen? Muss ja auch nicht hier öffentlich sein.

bcvs 13. Mai 2020 09:11

AW: ShortCuts in MenuItems übersetzen
 
Bei einem neuen Projekt sieht das bei mir auch so aus.

Das besagte Delphi-Projekt ist allerdings schon etwas älter. Und das Localizer-Projekt wurde ursprünglich mit einer früheren Version mal angelegt, war dann lange Zeit inaktiv und wurde kürzlich wieder reaktiviert.

Vielleicht ist da ja entweder im Delphi-Projekt oder im Localizer-Projekt irgendwo eine Einstellung, die die Einbindung der System-Units verhindert.

Uwe Raabe 13. Mai 2020 09:23

AW: ShortCuts in MenuItems übersetzen
 
Hast du mal ein Refresh language files versucht?

bcvs 13. Mai 2020 10:15

AW: ShortCuts in MenuItems übersetzen
 
Ja, das mache ich ständig ...

Uwe Raabe 13. Mai 2020 10:36

AW: ShortCuts in MenuItems übersetzen
 
Zitat:

Zitat von bcvs (Beitrag 1464443)
Vielleicht ist da ja entweder im Delphi-Projekt oder im Localizer-Projekt irgendwo eine Einstellung, die die Einbindung der System-Units verhindert.

Das Localizer Projekt (plo) sieht soweit OK aus. Ansonsten habe ich jetzt auch keine Idee, warum das nicht geht.

bcvs 13. Mai 2020 10:43

AW: ShortCuts in MenuItems übersetzen
 
Macht nichts. Trotzdem danke.

Mein Ursprungsproblem löse ich jetzt mit diesem TTranslateShortCutText. Das reicht mir erst mal.

bcvs 15. Mai 2020 10:40

AW: ShortCuts in MenuItems übersetzen
 
Der Vollständigkeit halber:
Nach einer Supportanfrage bei Korzh ist herausgekommen, das ich die Vcl_Consts und die anderen Systemunits nicht sehe, weil ich das Projekt mit Runtime Packages kompiliere. Die Ressourcen stecken dann in der bpl und da kommt der Localizer nicht dran.

Aber wie gesagt: damit kann ich leben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 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