AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ShortCuts in MenuItems übersetzen

Ein Thema von bcvs · begonnen am 12. Mai 2020 · letzter Beitrag vom 15. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2      
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#1

ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 11:06
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)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#2

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 11:16
meine Software kann zur Laufzeit von Deutsch auf Englisch umgeschaltet werden.
Da müsste man jetzt schon wissen, wie du das genau machst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#3

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 12:40
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#4

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 12:50
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 12:59
Ich übersetze das so.
Da wo es dir passt deklarieren
 TranslateShortCutText: TTranslateShortCutText;

Erzeugen
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
TranslateShortCutText.Free;
  Mit Zitat antworten Zitat
Alt 12. Mai 2020, 15:14     Erstellt von mihirmane
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#6

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 16:40
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
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#7

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 16:57
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).
Miniaturansicht angehängter Grafiken
12-05-_2020_16-54-31.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#8

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 18:01
Die Vcl_Consts habe ich da nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.462 Beiträge
 
Delphi 12 Athens
 
#9

AW: ShortCuts in MenuItems übersetzen

  Alt 12. Mai 2020, 22:31
Die Vcl_Consts habe ich da nicht.
Dann zeig doch mal deine .plo Datei zu dem Projekt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#10

AW: ShortCuts in MenuItems übersetzen

  Alt 13. Mai 2020, 07:53
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]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 Uhr.
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