AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Mehrsprachig mit GNU Gettext

Ein Thema von Hobbycoder · begonnen am 31. Jul 2018 · letzter Beitrag vom 1. Aug 2018
Antwort Antwort
Hobbycoder

Registriert seit: 22. Feb 2017
1.016 Beiträge
 
#1

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 11:20
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:
// Information about this file:
// $LastChangedDate: 2010-08-25 15:40:17 +0200 (on, 25 aug 2010) $
// $LastChangedRevision: 220 $
Das entspricht den Angaben in der JvGnugettext.pas.

Die Pas aus DxGnugettext schein 2 Jahre älter zu sein.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.016 Beiträge
 
#2

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 11:42
Ich habe jetzt mal angefangen ein Beispielprojekt mehrsprachig zu machen.

In der Anleitung stehen ja so tolle Sätze wie:
Zitat:
Compile the default.po file to a default.mo file by clicking on it with the right mouse button and choose "compile to .mo file".
.
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.

Erst wenn es eines Tages nicht mehr richtig gehen sollte werden alle aufwachen.
Zumindest einer scheint nicht zu schlafen:https://sourceforge.net/projects/dxgettext/

Gruß
K-H
Das ist die, die ich mir runtergeladen habe, und laut Versionsangabe in der PAS-Datei, ist die Version schon mal 2 Jahre älter als die JvGnugettext, die der JCL beiliegt.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (31. Jul 2018 um 11:44 Uhr)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 12:36
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
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
913 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 12:46
Zum Bearbeiten der .po-Dateien und .mo-Dateien nutze ich poedit, https://poedit.net/download. Damit klappt das recht gut. Was du mit "Rechtsklick -> Compile to mo" probierst, ist für die vorübersetzten Delphi-Strings gedacht.

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.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.457 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 12:49
@TE:

Wenn du einfache und schnelle Ergebnisse willst...https://www.delphipraxis.net/146618-...swerkzeug.html

Auch Übersetzungen zur Laufzeit!!! Auch mußt du keine Language Dateien mitliefern...alles einkompiliert. Editor für die Sprachen.

Geändert von haentschman (31. Jul 2018 um 12:52 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.016 Beiträge
 
#6

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 15:20
@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?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.517 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 15:48
@Gausi: Wie / Wo legt man denn in Poedit die Sprache für den Quelltext fest?
Meinst jetzt Sprache auswählen, oder die Übersetzung in den Quelltext einbauen _('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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.016 Beiträge
 
#8

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 16:14
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.016 Beiträge
 
#9

AW: Mehrsprachig mit GNU Gettext

  Alt 31. Jul 2018, 15:43
@TE:

Wenn du einfache und schnelle Ergebnisse willst...https://www.delphipraxis.net/146618-...swerkzeug.html

Auch Übersetzungen zur Laufzeit!!! Auch mußt du keine Language Dateien mitliefern...alles einkompiliert. Editor für die Sprachen.
Habe mir Lingus mal heruntergeladen. Ist ja wirklich simple.
Probiere das grad aus. In dem Abschnitt "Während der Laufzeit die Programmsprache ändern" heißt es
Zitat:
Wichtig ist dabei der anschließende Aufruf von Language.Translate(Self); in allen geöffneten Formularen, um die Änderung zu übernehmen.
Wirklich nur in alle geöffneten Formularen? Da Language.Translate(self) ja im OnFormCreate aufgerufen wird, müsste das dann nicht in alle erzeugten Formularen aufgerufen werden?

Ansonsten sieht das ja wirklich mal richtig simple aus. Gibt es vielleicht eine Extension, die automatisch Übersetzungen per Google-Translate ermöglicht?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort

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 15:12 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-2025 by Thomas Breitkreuz