AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hilfe beim Test eines GnuGetText Patches

Ein Thema von dummzeuch · begonnen am 7. Apr 2019 · letzter Beitrag vom 15. Apr 2019
Antwort Antwort
Seite 1 von 3  1 23   
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
409 Beiträge
 
Delphi 2007 Professional
 
#1

Hilfe beim Test eines GnuGetText Patches

  Alt 7. Apr 2019, 12:30
Hi,

ich habe einen Patch für gnugettext.pas bekommen, der folgendes Problem lösen soll:

Wenn ein Programm mit einer deutschsprachigen IDE compiliert wird, werden Shortcut-Tasten z.B. "Ctrl+C" auf Deutsch eingebunden ("Strg+C") und bei der Übersetzung nicht korrekt berücksichtigt.

Der Patch funktioniert wohl mit aktuellen Delphi Versionen (10.x), aber da gnugettext rückwärtskompatibel bis zu Delphi 6 sein soll, musste ich einige Änderungen vornehmen, damit er kompiliert.

Jetzt habe ich das Problem, dass ich die IDE immer nur auf Englisch installiere und deshalb gar nicht testen kann, ob der Patch funktioniert.

Also: Ich bräuchte für diverse ältere Delphi-Versionen (mindestens Delphi 6, 2007, 2009, 2010, XE und XE2) jemanden, der diese Tests für mich durchführen kann. Idealerweise jemand, der sowieso gnugettext verwendet und einfach eines seiner existierenden Programme mit der geänderten Unit compileren kann.

Die erweiterte gnugettext.pas Unit habe ich angehängt.

Der Patch ist aktiv, wenn man im Sourcecode den Define dx_German_Delphi_fix setzt:

Delphi-Quellcode:
// Programs that are compiled with German Delphi will always show the German shortcut
// keys in menus and hints because the German RTL resourcestrings are not translated.
// This results in German menu shortcuts 'Strg+<X>', 'Umsch+<X>' to be shown instead of
// 'Ctrl+<X>', 'Shift+<X>', even if the applications language is not German.
//
// This function hooks into Vcl.Menus.ShortCutToText and replaces the German consts with
// their English counterparts if the current application language is *not* German.
// Tested with Rad Studio 10.2 Tokyo and 10.3.1 Rio
{$define dx_German_Delphi_fix}
Und ensprechend ausgeschaltet, wenn man ihn nicht setzt:

Delphi-Quellcode:

{.$define dx_German_Delphi_fix}
Bitte beides testen und vergleichen, ohne, sollten die Shortcuts falsch sein, mit korrekt.
Angehängte Dateien
Dateityp: zip gnugettext.zip (32,8 KB, 7x aufgerufen)
Thomas Mueller
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
409 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 09:19
Keine Antwort bisher.

Heisst das, niemand benutzt mehr gnugettext? Oder niemand benutzt mehr alte Delphi-Versionen? Oder will keiner die paar Minuten in eine Open Source Unit investieren?

Wenn das so ist, brauche ich mir ja zukünftig keine Sorgen mehr um deutsche User von älteren Delphi-Versionen machen und kann mich auf das konzentrieren, was ich selbst brauche. Dann würde ich einfach den neuen Sourcecode einchecken, denn er betrifft mich nicht, und nach mir die Sintflut.
Thomas Mueller
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
4.878 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 09:32
Das ist aber auch eine ganz schöne Erwartungshaltung dass sich innerhalb von weniger als 24 Stunden die Leute alle gleich draufstürzen.

Um aber ganz schonungslos ehrlich zu sein: Mein ganz persönliches Interesse an Rückwärtskompatibilität zu Delphi-Versionen aus meiner Grundschulzeit ist wirklich sehr gering, auch für so großartige Sachen wie dxGetText
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.708 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 09:46
Heisst das, niemand benutzt mehr gnugettext? Oder niemand benutzt mehr alte Delphi-Versionen? Oder will keiner die paar Minuten in eine Open Source Unit investieren?
Die Bedingung wäre dann ja <benutzt gnugettext> AND <benutzt alte Delphi-Versionen> AND <will ein paar Minuten in eine Open Source Unit investieren>. Da kann die Schnittmenge schon mal recht klein ausfallen. Deine drei OR-Folgerungen lassen sich daraus aber nicht direkt ableiten (können allerdings trotzdem zutreffen).

Ich habe aber auch den Eindruck, daß tatsächlich seit Erscheinen von Delphi 10.2 Tokyo der Anteil der alten Delphi-Versionen schlagartig abgenommen hat.

Seitdem MMX nur noch Delphi 10 Seattle und aufwärts unterstützt, ist die aktuell älteste Delphi Version bei einem Kunden-Projekt XE2 und die wird diesen Monat noch durch Tokyo ersetzt. Damit ist z.B. für mich alles unter Seattle mehr oder weniger Geschichte. Die Versionen sind zwar noch auf dem Build-Server installiert, fallen aber nur noch unangenehm auf, wenn sie beim Compilieren eines meiner Plugins mal wieder ein Sprachfeature nicht unterstützen. Da kommt dann immer wieder der Gedanke, den Support für diese Versionen einfach einzustellen.

Übrigens, bei mir schlägt die obige Bedingung schon im ersten Teil fehl.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
421 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 11:16
Ich benutze gnugettext noch sehr aktiv (siehe meine Mail neulich in der Mailingliste wegen Problemen mit Linux), allerdings nur mit aktuellen Delphi-Versionen (10.2.3 und 10.3.1). Ich habe hier noch ein Delphi 2009 mit deutscher IDE installiert, allerdings nur für ein Alt-Projekt, in dem ich kein gnugettext benutzt habe.

Wenn es hilft, kann ich aber später darin gerne mal ein Mini-Projekt zum Testen deines Patches erstellen.
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
409 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 12:41
Ich benutze gnugettext noch sehr aktiv (siehe meine Mail neulich in der Mailingliste wegen Problemen mit Linux), allerdings nur mit aktuellen Delphi-Versionen (10.2.3 und 10.3.1). Ich habe hier noch ein Delphi 2009 mit deutscher IDE installiert, allerdings nur für ein Alt-Projekt, in dem ich kein gnugettext benutzt habe.

Wenn es hilft, kann ich aber später darin gerne mal ein Mini-Projekt zum Testen deines Patches erstellen.
Ich nehme jede Hilfe, die ich kriegen kann.
Thomas Mueller
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
421 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 9. Apr 2019, 16:44
Funktioniert prinzipiell unter Delphi 2009.

Ein Problem, das aber wahrscheinlich nichts mit der Delphi-Version zu tun hat, ist mir aber noch aufgefallen. Auf der Seite von Lars gab es früher für verschiedene Sprachen eine system.po herunterzuladen, welche dafür gesorgt hat, diverse Meldungen, die aus den Tiefen der RTL/VCL kommen, auf Englisch auszugeben. Wenn ich die mit einbinde, dann funktioniert der Patch nicht mehr:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  AddDomainForResourceString('system');
  UseLanguage('en');
  TranslateComponent(Self);
end;
Ohne die Zeile "AddDomainForResourceString" klappt alles, wie von dir beschrieben, und ein Strg+O wird zu einem Crtl+O in der gepatchten Variante. Mit dieser ersten Zeile aber ist der Patch wirkungslos.
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
506 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 10. Apr 2019, 05:54
Moment. Bei mir stimmt die Schnittmenge. Ich benutze aktiv Delphi 6 mit Gnugettext.

Ich werde es mal testen und mich zurückmelden


Ich habe jetzt noch einmal durchgelesen was Du wolltest und
UseLanguage('en');
TranslateComponent(Self);

durchgeführt. Ich sehe keinen Unterschied ob dx_German_Delphi_fix gesetzt ist oder nicht.
Es ist in beiden Versionen richtig
Angehängte Dateien
Dateityp: zip gettexttest.zip (440,4 KB, 1x aufgerufen)

Geändert von v2afrank (10. Apr 2019 um 06:33 Uhr)
  Mit Zitat antworten Zitat
luebbe

Registriert seit: 17. Mär 2005
Ort: Stutensee
9 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 10. Apr 2019, 14:58
Ich habe jetzt noch einmal durchgelesen was Du wolltest und
UseLanguage('en');
TranslateComponent(Self);

durchgeführt. Ich sehe keinen Unterschied ob dx_German_Delphi_fix gesetzt ist oder nicht.
Es ist in beiden Versionen richtig
Hallo, da der ursprüngliche Patch von mir stammt, ich aber ebenfalls nichts vor Toyko zum Testen habe, folgende Info:

Wichtig ist, dass mit einer deutschen IDE übersetzt wird, damit die deutschen Hotkeys verwendet werden.

ohne {$define dx_German_Delphi_fix}:
UseLanguage('en') -> Die Hotkeys in Menüs oder Hints werden als 'Strg/Umsch/Alt' angezeigt.
UseLanguage('de') -> Die Hotkeys in Menüs oder Hints werden als 'Strg/Umsch/Alt' angezeigt.

mit {$define dx_German_Delphi_fix}:
UseLanguage('en') -> Die Hotkeys in Menüs oder Hints müssen als 'Ctrl/Shift/Alt' angezeigt werden.
UseLanguage('de') -> Die Hotkeys in Menüs oder Hints müssen als 'Strg/Umsch/Alt' angezeigt werden.

Wenn dem so ist, wäre alles in Ordnung.

Es werden auch andere Tasten übersetzt, aber das sind die auffälligsten.
Lübbe
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
409 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Hilfe beim Test eines GnuGetText Patches

  Alt 10. Apr 2019, 16:09
Funktioniert prinzipiell unter Delphi 2009.

Ein Problem, das aber wahrscheinlich nichts mit der Delphi-Version zu tun hat, ist mir aber noch aufgefallen. Auf der Seite von Lars gab es früher für verschiedene Sprachen eine system.po herunterzuladen, welche dafür gesorgt hat, diverse Meldungen, die aus den Tiefen der RTL/VCL kommen, auf Englisch auszugeben.
Die kenne ich gar nicht. Ich kenne nur die DelphiXxxx.po-Dateien, um die Systemmeldungen in die jeweilige Zielsprache zu übersetzen (und die gibt es nur bis Delphi2011 aka XE).

Wenn ich die mit einbinde, dann funktioniert der Patch nicht mehr:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  AddDomainForResourceString('system');
  UseLanguage('en');
  TranslateComponent(Self);
end;
Ohne die Zeile "AddDomainForResourceString" klappt alles, wie von dir beschrieben, und ein Strg+O wird zu einem Crtl+O in der gepatchten Variante. Mit dieser ersten Zeile aber ist der Patch wirkungslos.
D.h. dann wird "Strg+O" nicht mehr umgesetzt sondern bleibt "Strg+O"?

Kannst Du mir diese system.po bitte mal zukommen lassen?
Thomas Mueller
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf