MainMenu Shortcuts Ctrl vs. Strg

Rund um die LCL und andere Komponenten
Antworten
kirchfritz
Beiträge: 169
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

MainMenu Shortcuts Ctrl vs. Strg

Beitrag von kirchfritz »

Hallo,
seit langem wollte ich mal wieder ein MainMenu in meinem Lazarus-Programm verwenden.
Wenn ich den MenuItems ShortCuts wie "Strg+S" oder "Strg+O" zuweise, dann sehe ich zur Laufzeit des Programms unter Win10 die Shortcuts "Ctrl+S" bzw "Ctrl+O".
Dies finde ich sehr seltsam, weil in der Lazarus IDE zum MenuItem explizit "Strg+S" bzw "Strg+O" zur Auswahl angeboten wird.
Kann man da an den LazarusEinstellung oder den Projekteinstellungen irgendwas ändern, damit ich "Strg" sehe, wenn ich "Strg" auswähle?
Mein TastaturLayout ist auf DEU eingestellt.
Ich arbeite unter WIN10 mit Lazarus 1.8.0 und FPC 3.0.4
Kann das jemand nachvollziehen?

Danke für Eure Hinweise

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von MacWomble »

Ctrl und Strg bedeuten das selbe, nur eben englisch (control) und deutsch (Steuerung).
Von diesem Standpunkt aus teile ich deine Meinung, dass bei deutschem Tastaturlayout Strg angezeigt werden sollte.
Allerdings ist mir ebenfalls nicht bekannt, wie man das lösen bzw. wo man das einstellen kann.
Ich habe mich hier nur angehängt, da ich es auch gerne wüsste.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von theo »

Naja, da muss man wohl flexibel bleiben.
Bei meinem Lazarus heißt es auch "Strg", dabei steht auf meiner deutsch-schweizerischen Tastatur "Ctrl".
https://de.wikipedia.org/wiki/Tastaturbelegung#Schweiz
Man weiß ja, was gemeint ist. ;-)

kirchfritz
Beiträge: 169
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von kirchfritz »

In meiner Lazarus IDE 1.8.0 sehe ich im Datei-Menü mehrere "Strg-.." Shortcuts angezeigt. Nirgends ist hier "Ctrl-..." zu sehen.
Und wenn die IDE das "Strg..." angezeigt bekommt, dann muss es doch auch mein mit der IDE erstelltes Programm können.
Also, ich kann mich nicht anfreunden mit den Beiträgen wie "Da muss man halt flexibel sein".

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von wp_xyz »

Da sich die Tastaturkürzel in meinem Lazarus von Ctrl auf Strg ändern, wenn ich von Englisch auf Deutsch umschalte, nehme ich an, dass das mit i18n, also der Mehrsprachlichkeit von Anwendungen ("i18n" = "Internationalization" = ein "i", 18 andere Buchstaben, ein "n"), zusammenhängt. Ungetestet könntest du folgendermaßen vorgehen
  • Ordner "languages" erstellen (Unter-Ordner des exe-Verzeichnisses)
  • die Datei lclstrconsts.de.po von (lazarus)/lcl/languages dort hin kopieren
  • Projekt-Optionen öffnen
  • zum Punkt "i18n" gehen
  • "i18n einschalten" markieren
  • im "PO-Ausgabeverzeichnis" den Pfad zu "languages" eingeben.
  • "OK"
  • In der uses-Zeile des Hauptformulars die Unit "DefaultTranslator" oder evtl "LCLTranslator" hinzufügen. Diese erkennt, dass deutsch deine Systemsprache ist und wählt aus den in "languages" vorhandenen Übersetzungs-Dateien (Endung ".po") die deutsche aus.
Wenn du mehr über das Übersetzungssystem von Lazarus wissen willst, schau dir http://wiki.lazarus.freepascal.org/Tran ... r_programs und http://wiki.lazarus.freepascal.org/Step ... plications an. Es gibt auch ein Beispiel im Ordner "examples/translation" der Lazarus-Installation.

kirchfritz
Beiträge: 169
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von kirchfritz »

@wp_xyz: Habe alle Deine Anweisungen durchgeführt. Ergebnis: Ctrl bleibt beharrlich da. Keine Änderungen!

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von Mathias »

In meiner Lazarus IDE 1.8.0 sehe ich im Datei-Menü mehrere "Strg-.." Shortcuts angezeigt. Nirgends ist hier "Ctrl-..." zu sehen.

Sobald man Lazarus auf englisch einstellt, kommt Ctrl, wie man es erwartet.
Irgendwie ist Lazarus in gewissen Sachen zu viel verdeutscht.

Wen man im Objectinspektor ShortCut beim Menu einstellen will, gibt es ein paar recht merkwürdige Kürzel.
ZB. "Schluss", "Pos1", "Auszug", "Ende", "Ausführen", "Steuerelement", etc.. Da muss man zuerst einen Kurs machen, was da alles gemeint ist.
Umgekehrt, as muss ich für PgUp und PgDn nehmen ?
Solche Sachen wären wohl besser, wen man sie auf Englisch belassen würde.


Und wenn die IDE das "Strg..." angezeigt bekommt, dann muss es doch auch mein mit der IDE erstelltes Programm können.
Ich denke mal, in der IDE von Lazarus wurde, da selbst etwas gemacht. Lazarus hat auch doppel ShutCuts, zB. "Ctrl+Q, O", welche man selbst nicht erzeugen kann.
In deiner Anwendung, macht dies das OS.

In der IDE habe ich noch einen komischen ShortCut gefunden "Strg+OEM2", (Kommentare umschalten)
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von wp_xyz »

kirchfritz hat geschrieben:@wp_xyz: Habe alle Deine Anweisungen durchgeführt. Ergebnis: Ctrl bleibt beharrlich da. Keine Änderungen!

Ja, mit beigefügter Demo sehe ich das auch.

Wenn man den Code mit dem Debugger verfolgt, gelangt man (unter Windows) in die WidgetSet-Funktion

Code: Alles auswählen

function CompleteMenuItemStringCaption(const AMenuItem: TMenuItem; ACaption: String; Spacing: String): string;
begin
  Result := ACaption;
  if AMenuItem.ShortCut <> scNone then
    Result := Result + Spacing + MenuItemShortCut(AMenuItem);
end

wo der Menuitem-String aus Caption und dem "MenuItemShortCut" zusammengesetzt wird. Letzteres wiederum ruft die LCLProc-Funktion "ShortCutToText(Shortcut: TShortcut)" auf, die mit dem Kommentar "//untranslated" versehen ist. Warum das? Und wie macht es die IDE, die die Shortcuts erwiesenermaßen trotzdem übersetzt?
Dateianhänge
translated_keymodifiers.zip
(22.26 KiB) 74-mal heruntergeladen

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: MainMenu Shortcuts Ctrl vs. Strg

Beitrag von wp_xyz »

wp_xyz hat geschrieben:
kirchfritz hat geschrieben:@wp_xyz: Habe alle Deine Anweisungen durchgeführt. Ergebnis: Ctrl bleibt beharrlich da. Keine Änderungen!

Ja, mit beigefügter Demo sehe ich das auch.

Nö - was sag ich denn? Das Ctrl wird doch übersetzt, nur Shift nicht. Aber das ist einfach: In der lclstrconsts.de.po fehlt die deutsche Übersetzung für den den String "Shift+". Wenn man da mit poedit den Text "Umsch+" einträgt, werden beide übersetzt.

Aber nun kommt das nächste Problem: Wenn ich in der Demo auf Englisch umschalte, werden "Strg+" und "Umsch+" nicht zurückübersetzt. Das liegt m.E. daran, dass "ShortcutToText" die "InitializeMenuKeyCaps" genau 1x aufruft - in dieser werden die Tasten-Kürzel zusammengebaut, und das wird nach der Sprachumstellung nicht neu gemacht...

[EDIT] Hab's im BugTracker angemeldet: https://bugs.freepascal.org/view.php?id=34045
[EDIT2] Wurde inzwischen von Michael van Canneyt behoben.

Antworten