![]() |
Mehrsprachig mit GNU Gettext
Hi,
ich möchte eine Anwendung mehrsprachig machen. Dabei wird hier von viele auf GNU GetText verwiesen. Beim Informieren im Internet bin ich auf ![]() Ist das so noch aktuell und unter Tokyo einsetzbar? Gibt es nützliche Tools, die mir bei meinem Vorhaben helfen können? |
AW: Mehrsprachig mit GNU Gettext
Und was ist damit
![]() |
AW: Mehrsprachig mit GNU Gettext
Die gleiche Frage habe ich 2016 auch schon einmal angestoßen:
![]() Es ist super, es funktioniert prächtig. Viele nutzen es (ich auch). Aber keiner betreut es. Es ist einfach nur da, seit vielen Jahren. Niemand nimmt sich der Sache an. Erst wenn es eines Tages nicht mehr richtig gehen sollte werden alle aufwachen. |
AW: Mehrsprachig mit GNU Gettext
Wir verwenden es auch in mehreren Projekten.
Bisher scheint noch alles gut zu funktionieren. Mir graut es auch vor dem Tag, wo etwas nicht mehr geht. Ich verwenden aktuell folgende Version
Code:
Mich würde mal interessieren, ob ihr Änderungen an der gnugettext.pas vorgenommen habt?
// Information about this file:
// $LastChangedDate: 2010-08-25 15:40:17 +0200 (on, 25 aug 2010) $ // $LastChangedRevision: 220 $ Es exisitieren ja verschiedene Compiler-Schalter bis zu Delphi XE5:
Delphi-Quellcode:
Macht es Sinn diese Definitionen auch für neuere Delphi-Versionen zu ergänzen? Wir haben das bisher ehrlich gesagt nicht getan.
{$ifdef VER260}
// Delphi XE5 {$DEFINE dx_has_Unsafe_Warnings} {$DEFINE dx_has_WideStrings} {$DEFINE dx_StringList_has_OwnsObjects} {$DEFINE dx_GetStrProp_reads_unicode} {$DEFINE dx_has_Inline} {$DEFINE dx_has_LpVoid} {$DEFINE dx_has_VclThemes} {$DEFINE dx_midstr_in_AnsiStrings} {$endif} Grüße Headbucket |
AW: Mehrsprachig mit GNU Gettext
Da fängt es schon an. Laut Quelltext bei mir gleiche Version, aber bei mir existieren Schalter bis XE7. Was für ein Wildwuchs.
Und ja, wir haben auch bereits selbst ein paar weitere Änderungen vorgenommen. |
AW: Mehrsprachig mit GNU Gettext
Ich habe mir die DXGetText mal heruntergeladen.
Ist ja scheinbar die gleiche Version, wie in meinem Eröffnungsthread. Die, in der DXGetText-Installation hinterlegte, Online-Dokumentation verweist auf eine Internetdomain, die nicht mehr existiert. (Was nicht schlimm ist, das die docs ja dabei sind). In einem anderen Thread habe ich gelesen, dass das ganze jetzt ins Jedi-Projekt gewandert ist, und eine JvGnugettext-Unit ist auch vorhanden. Scheinbar aber auch nur 1zu1 übernommen. Bei den Jedis habe ich aber die Tools (z.B. dxgettext) nicht gefunden. |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Die Pas aus DxGnugettext schein 2 Jahre älter zu sein. |
AW: Mehrsprachig mit GNU Gettext
Zitat:
![]() Gruß K-H |
AW: Mehrsprachig mit GNU Gettext
Ich habe jetzt mal angefangen ein Beispielprojekt mehrsprachig zu machen.
In der Anleitung stehen ja so tolle Sätze wie: Zitat:
Er macht auch irgendwas, der Cursor dreht sich fleißig, aber am Ende scheint nichts passiert zu sein. Jedenfalls kann ich kein .mo-File finden. Wissen die Götter, wo er das nun hinpackt. Gibt's irgendwo (möglichst deutschsprachig) eine Anleitung, wie man das über die Commandline macht, da habe ich wenigstens eine Ergebnis-Ausgabe. Zitat:
|
AW: Mehrsprachig mit GNU Gettext
Um aus .po eine kompilierte .mo zu machen, verwende ich schlicht POEdit zum übersetzen, das speichert automatisch auch als .mo.
Beantwortet zwar nicht die Frage nach der Kommandozeile, ist aber gleichzeitig eine Empfehlung für einen guten Übersetzungseditor ;) |
AW: Mehrsprachig mit GNU Gettext
Zum Bearbeiten der .po-Dateien und .mo-Dateien nutze ich poedit,
![]() Seit einiger Zeit habe ich auch das Problem, dass ich mit dem Explorer-Rechtsklick "Dekompile the mo-file to po-file" kein Ergebnis mehr bekomme. Ob das an Windows 10 liegt oder an irgendwas anderem, weiß ich nicht. Ich tippe auf irgendwelche Rechte-Probleme in der Explorer-Erweiterung. Solange man aber aufpasst, dass man die alten po-Dateien mit den ganzen Übersetzungen drin nicht verliert, kann man auch immer weiter gut updaten, wenn in dem Projekt neue Strings dazu kommen. Dazu ein neues Template erstellen (default.po, das klappt noch über den Explorer), dieses umbenennen in default.pot, alte .po öffnen, das neue pot-Template dazuladen, die noch unübersetzten Strings übersetzen, speichern, fertig. Mo-Datei ist dann direkt da. Das betreffende Projekt darf dabei grade nicht laufen (also die exe), sonst gibt's ne Fehlermeldung. Hab gestern Abend auch die neue Community-Edition ausprobiert, und konnte meinen Player (auch mehrsprachig) ohne größere Probleme kompilieren, und der Wechsel der Sprache funktioniert auch weiter. |
AW: Mehrsprachig mit GNU Gettext
@TE:
Wenn du einfache und schnelle Ergebnisse willst... ![]() Auch Übersetzungen zur Laufzeit!!! :thumb: Auch mußt du keine Language Dateien mitliefern...alles einkompiliert. Editor für die Sprachen. |
AW: Mehrsprachig mit GNU Gettext
@Gausi: Wie / Wo legt man denn in Poedit die Sprache für den Quelltext fest? Ich find da nichts. Aus dem Projekt kann er's ja nicht lesen und in der PO-Datei habe ich nichts bezüglich der Sprache gefunden. Oder muss die PO-Datei erst in das Verzeichnis de-DE?
|
AW: Mehrsprachig mit GNU Gettext
Zitat:
Probiere das grad aus. In dem Abschnitt "Während der Laufzeit die Programmsprache ändern" heißt es Zitat:
Ansonsten sieht das ja wirklich mal richtig simple aus. Gibt es vielleicht eine Extension, die automatisch Übersetzungen per Google-Translate ermöglicht? |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Delphi-Quellcode:
?
_('xyz');
Im Prinzip nimmt man im Quelltext keine Sprache, aber ich mache sowas meistens in englisch. Grundsätzlich ist GNU-gettext so, dass du für die Übersetzungen sprechende Bezeichner verwendest, die einmal als Template die Hauptsprache (englisch) besitzt. GRUND: Es gibt für manche Dinge im Englischen das gleiche Wort, wofür es im deutschen unterschiedliche Wörter gibt. Hast du das aber direkt als "englisch" angelegt, dann kannst du dafür keine unterschiedlichen deutschen Übersetzungen speichern. |
AW: Mehrsprachig mit GNU Gettext
Ich meine das festlegen der Ursprungssprache, die mittels DxGetText aus dem Projekt in die .po-Datei exportiert wurde.
Wenn ich die .po-Datei dann in Poedit öffne, steht über den Elementen "Quelltext - Englisch" und rechts daneben "Übersetzung - unbekannte Spracht". Ich kann dann die Sprache festlegen, aber das bezieht sich auf die Übersetzung. Meine vorhandenen Quelltext sind durchweg alle in Deutsch, von daher möchte ich natürlich von Deutsch -> Englisch übersetzen. Die Quellsprache müsste sich doch irgendwo festlegen lassen. Schließlich wäre das ein enormes Unterfangen überall im Source alles auf Englisch zu ändern. Aber: ich habe mich mit Lingus etwas angefreundet. Klappt schon recht gut. Das übersetzen der Controls und Variablen geht ganz locker. Bei Konstanten will er aber noch nicht. Auch die Eigenschaft "AutoHotkeys"=maAutomatic führt noch zu einer Fehlfunktion. Und der letzte Beitrag von Wicht zu diesem Thema stammt aus dem Jahre 2013. Wird da noch Programmpflege betriebe? Oder ist Lingus schon "Tot"? Immerhin läuft es unter Tokyo problemlos, und ist zudem noch wirklich selbsterklärend. |
AW: Mehrsprachig mit GNU Gettext
Zitat:
![]() |
AW: Mehrsprachig mit GNU Gettext
Da haben wir alle dasselbe Problem.
Ich hatte GetText auch benutzt, und den Editor etwas optimiert für mich. Aber die pas Datei ist ziemlich wirr und recht fett, wenn es besser gepflegt wäre Würde ich das womöglich weiter nutzen, aber das Risiko ist mir ein bisschen hoch. Müsste man mal richtig ausmisten und modernisieren, aber was ist der Master und wem gehört das ganze? |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Es gibt außer mir auch noch andere mit Schreibzugriff auf das Sourceforge-Repository, aber auch da passiert wenig. Seitens des Projekt Jedi, die vor Jahren ihre eigene Version der gnugettext.pas Unit abgespalten haben, finde ich seit einigen Monaten auch keinen Ansprechpartner mehr. Ich hatte versucht, die beiden Versionen wieder zu vereinigen, aber das scheiterte mangels Interesse auf der Jedi-Seite. Kurzum: Ich halte das Projekt enigermaßen auf Sourceforge am Leben, indem ich Bugs fixe, wenn man mir welche meldet (glücklicherweise meistens gleich mit Patch), und ab und an Support für eine neue Delphi-Version einbaue. Aber so richtig Interesse habe ich nicht. Ich setze Gnugettext selbst auf der Arbeit für übersetzungen ein. Es funktioniert ganz gut. Es gibt im Source übrigens mit ![]() twm |
AW: Mehrsprachig mit GNU Gettext
Ja Gorm war besser als PoEdit.
Den hatte ich für mich noch etwas optimiert, seinerzeit mit Google-Translate, etwas verbesserter UI und Sprachenmanagement, etc. Aber es ist mir zu unsicher auf so einem System weiterzumachen was anscheinend nicht mehr gepflegt ist. GetText auf anderen Platformen scheint aber gut gepflegt, und Stand der Dinge, deshalb verstehe ich die Situation bei Delphi nicht ganz. Rollo |
AW: Mehrsprachig mit GNU Gettext
Die Situation bei Delphi ist simpel:
Sherlock |
AW: Mehrsprachig mit GNU Gettext
DxGetText macht super transparent die Auflösung von
Delphi-Quellcode:
nach
resourcestring
Delphi-Quellcode:
. Wo ist das eine Krücke?
String
Und wo wandern Leute ab? |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Ich bin auch aktuell noch sehr zufrieden mit GetText und verwende es in allen aktuellen Projekten. Wichtig für mich ist hierbei: - Übersetzung muss von externen Personen ohne Delphi oder Programmierkenntnisse vorgenommen werden können - Kunden können selbst Übersetzungen anpassen und sogar neue Sprachen hinzufügen - Möglichst geringer Eingriff in Quellcode All diese Dinge erfüllt GetText und ist dabei noch kostenlos. Zitat:
Viele Grüße Headbucket |
AW: Mehrsprachig mit GNU Gettext
Hallo,
wenn es was KOSTEN darf: ![]() Nutze ich auch. Schnelle Einarbeitung. Durchdacht ...:thumb: |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Danke! |
AW: Mehrsprachig mit GNU Gettext
Zitat:
Ich hatte es in 4-5 Projekten eingesetzt, die teilweise immer noch Laufen. Obwohl ich im Moment nicht mehr genau sagen kann welche Version von wo ich benutzt hatte, es war nach ersten Anlaufschwierigkeiten sehr stabil. Ich finde GetText prinzipiell OK, und fände es gut wenn da mal wieder etwas Bewegung rein käme. Auch die bereits vorhandenen Übersetzungsfiles der aktuellen Libraries, Tms, DevExpress, etc. waren seinerzeit ein großer Pluspunkt für mich. Ich denke schon seit längerem das man eigentlich nur eine einmalige, OpenSource Übersetzung braucht um 90% der UI-Texte in Apps abzudecken, bei normalen Projekten und etwas diszipliniertem Einsatz der Texte. Das hatte ich mal mit GetText als Basis vor, bin dann aber von Weg abgekommen :stupid: Rollo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz