Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Hilfe beim Test eines GnuGetText Patches (https://www.delphipraxis.net/200299-hilfe-beim-test-eines-gnugettext-patches.html)

dummzeuch 13. Apr 2019 11:24

AW: Hilfe beim Test eines GnuGetText Patches
 
Zitat:

Zitat von v2afrank (Beitrag 1430106)
Zitat:

Achtung, in gnugettext ist auch ein {$define dx_German_Delphi_fix}. Nicht, dass der bei dir immer aktiv war und dein {$define dx_German_Delphi_fix} oder {$.define dx_German_Delphi_fix} im Hauptformular unwirksam ist.

Treffer versenkt.
Ich kann Vollzug melden. Ohne dass define steht da STRG mit Ctrl

Danke, aber irgendwie habe ich überlesen (oder Du hast es nicht geschrieben), mit welcher Delphi-Version Du getestet hast. Ist es XE2 wie es in Deinem Profil steht?

Edit: Ich bin ein blinder Fisch! Delphi 6 war's. Also genau die Version, die am dringendsten getestet werden musste, weil der Code von mir angepasst wurde (Lübbe's code benutzte TStringBuilder). Danke nochmal!

twm

dummzeuch 13. Apr 2019 11:45

AW: Hilfe beim Test eines GnuGetText Patches
 
Zitat:

Zitat von Bbommel (Beitrag 1430038)
Zitat:

Zitat von dummzeuch (Beitrag 1430010)
Kannst Du mir diese system.po bitte mal zukommen lassen?

Ist per E-Mail an dich raus.

Danke, ist angekommen. Das scheint eine umgedrehte deutsche Delphi7.po zu sein, wo MSGID und MSGSTR vertauscht wurden.

Aber nochmal zum eigentlichen Problem:

Habe ich das richtig verstanden: Wenn Du diese Datei mit AddDomainForResourceString('system'); einbindest, werden die Shortcuts trotz Patch mit "Strg+ ..." etc. ausgegeben? Sind noch andere mo-Dateien eingebunden?

Meine Vermutung ist, dass der Patch "Strg+" nach "Ctrl+" konvertiert, und es dann dafür keine Übersetzung gibt. Könntest Du bitte testen, ob eine zusätzliche Pseudo-Übersetzung
"Ctrl+" -> "Ctrl+" das Problem behebt? Oder, wenn das nicht funktioniert "Ctrl+" -> "Control+" (damit die Übersetzung <> dem Original ist).

twm

dummzeuch 13. Apr 2019 11:55

AW: Hilfe beim Test eines GnuGetText Patches
 
Zitat:

Zitat von old7 (Beitrag 1430046)
ich programmiere hier (aktuell W10 1809 v17763.437) mit D7personal seit vielen Jahren (seit XP), mit der dt. Version von D7pe.

Und würde Dir auch gerne helfen. Aber wie?

Wenn Du bisher kein gnugettext einsetzt, ist das aufwändig zu erklären.

Danke für das Angebot, aber der erfolgreiche Test von v2afrank mit Delphi 6DE reicht mir schon. Da brauche ich kein Delphi 7 mehr, weil sich diese beiden Versionen kaum unterscheiden. Compilefehler hatte ich schon durch meine englische Version ausgschlossen.

Interessant wären noch Delphi 2005 bis XE. Bei neueren Versionen erwarte ich keine Probleme mehr.

twm

Bbommel 15. Apr 2019 13:36

AW: Hilfe beim Test eines GnuGetText Patches
 
Zitat:

Zitat von dummzeuch (Beitrag 1430212)
Meine Vermutung ist, dass der Patch "Strg+" nach "Ctrl+" konvertiert, und es dann dafür keine Übersetzung gibt. Könntest Du bitte testen, ob eine zusätzliche Pseudo-Übersetzung
"Ctrl+" -> "Ctrl+" das Problem behebt? Oder, wenn das nicht funktioniert "Ctrl+" -> "Control+" (damit die Übersetzung <> dem Original ist).

Also, noch mal zur Sicherheit ganz ausführlich:

Deutsches Delphi 2009, das heißt mit deutschsprachiger IDE. Darin habe ich ein neues Projekt erstelt mit einem Hauptmenü mit zwei Menüpunkten, diese auch auf deutsch beschriftet. Dann habe ich für das Projekt eine normale default.po/mo erstellt mit Deutsch->Englisch-Übersetzungen. Im Ordner locale\en\LC_MESSAGES gibt es also die besagte system.mo und die projektspezfische default.mo.

Der einzige echte Code im Projekt ist das erwähnte:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  AddDomainForResourceString('system');
  UseLanguage('en');
  TranslateComponent(Self);
end;
Mit der Zeile AddDomain... werden also zwei mo-Dateien benutzt: die default.mo für das normale Zeug auf dem Formular und die system.mo. In dem Fall funktioniert der Patch nicht. Kommentiere ich diese erste Zeile aus, so funktioniert der Patch.

Deine Lösungsvorschläge haben so nicht geholfen. In der system.po gibt es aber auch den Eintrag Strg+ -> Ctrl+. Entferne ich diesen Eintrag aus der system.po, so funktioniert der Patch auch bei aktivierter AddDomainForResourceString. Andererseits ist es auch so, dass auch mit aktivierter system.po und ohne Patch das Strg nicht korrekt nach Ctrl übersetzt wird, insofern bringt das ohne Patch eh nix.

Fazit also: Durch den Patch wird es nicht schlechter als vorher, weil der Eintrag Strg+->Ctrl+ aus der system.po ohnehin keine sichtbare Wirkung hat. Man kann den Eintrag in der system.po aber entfernen, dann funktioniert auch der Patch.

luebbe 15. Apr 2019 14:07

AW: Hilfe beim Test eines GnuGetText Patches
 
Ob das mit der system.po so mal funktioniert hat? Das scheint ja der ursprüngliche Ansatz gewesen zu sein, dieses Problem zu lösen. Meine erste Lösung, für mit deutscher IDE übersetze Anwendungen, hat, ohne Kenntnis der system.po, genau so funktioniert. Ich wollte aber die zweite .po Datei loswerden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 3 von 3     123   

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