MainMenu Shortcuts Ctrl vs. Strg

Rund um die LCL und andere Komponenten

MainMenu Shortcuts Ctrl vs. Strg

Beitragvon kirchfritz » 28. Jul 2018, 09:03 MainMenu Shortcuts Ctrl vs. Strg

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
kirchfritz
 
Beiträge: 49
Registriert: 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 1.7 FPC 3.1.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon MacWomble » 28. Jul 2018, 09:47 Re: MainMenu Shortcuts Ctrl vs. Strg

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.
MacWomble
 
Beiträge: 591
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon theo » 28. Jul 2018, 09:57 Re: MainMenu Shortcuts Ctrl vs. Strg

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. ;-)
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon kirchfritz » 28. Jul 2018, 10:58 Re: MainMenu Shortcuts Ctrl vs. Strg

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".
kirchfritz
 
Beiträge: 49
Registriert: 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 1.7 FPC 3.1.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon wp_xyz » 28. Jul 2018, 11:08 Re: MainMenu Shortcuts Ctrl vs. Strg

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.
wp_xyz
 
Beiträge: 2649
Registriert: 8. Apr 2011, 08:01

Beitragvon kirchfritz » 28. Jul 2018, 11:57 Re: MainMenu Shortcuts Ctrl vs. Strg

@wp_xyz: Habe alle Deine Anweisungen durchgeführt. Ergebnis: Ctrl bleibt beharrlich da. Keine Änderungen!
kirchfritz
 
Beiträge: 49
Registriert: 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win10 (L 1.7 FPC 3.1.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 28. Jul 2018, 16:04 Re: MainMenu Shortcuts Ctrl vs. Strg

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4327
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon wp_xyz » 28. Jul 2018, 17:16 Re: MainMenu Shortcuts Ctrl vs. Strg

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?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2649
Registriert: 8. Apr 2011, 08:01

Beitragvon wp_xyz » 28. Jul 2018, 18:00 Re: MainMenu Shortcuts Ctrl vs. Strg

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.
wp_xyz
 
Beiträge: 2649
Registriert: 8. Apr 2011, 08:01

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried