AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dxggettext mit Projekt und Code-Sammlung

Ein Thema von CCRDude · begonnen am 8. Jun 2012 · letzter Beitrag vom 11. Jun 2012
Antwort Antwort
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#1

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 9. Jun 2012, 13:06
Zitat:
Wie sieht es denn mit Lingus und der oben genannte Problematik aus (nur verwendete Units aus Pfaden wirklich in Übersetzungsdatei landen lassen)?
Es gibt die Option, nur Texte aus Units einlesen zu lassen, die LanguageObjects im Uses-Abschnitt haben (Eben Units, die Übersetzungen benutzen). Dann fehlt vielleicht der ein oder andere Text aus anderen Units, aber die Texte kann man dann noch separat über den Importer hinzufügen. Es läuft ja so ab, dass man die Quellen nach Texten durchsucht und dann hat man ein Fenster, wo man sagen kann "Text ignorieren" oder "Text hinzufügen".
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 9. Jun 2012, 21:00
Ich verwende dxgettext für das was ich übersetzen muss reicht das völlig aus.
Vor allem ist die implementierung simple und nicht gerade aufwendig.

gruss
  Mit Zitat antworten Zitat
CCRDude

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

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 10. Jun 2012, 09:10
Danke für Deine Erklärung, wicht!

Ich fürchte aber, dass ich meine Problematik entweder nicht gut genug beschrieben habe, oder Deine Erklärung nicht verstehe. Ich versuche mal, nicht zu weit auszuschweifen.

Ich habe 500 eigene Units in einem globalen Unit-Ordner, alle mit Strings, alle mit Übersetzungsunit und _('blub') angewendet.

Projekt A verwendet nun 20 von diesen 500, Projekt B verwendet 150, Projekt C vielleicht 100, und diese Mengen überschneiden sich. Parst das Übersetzungsprogramm nun den kompletten Ordner, würde es immer alle 500 aufnehmen, auch wenn längst nicht alle verwendet werden!

Disclaimer: natürlich verwenden nicht alle 500 Units Strings, das wäre kein guter Stil (Stichwort Trennung GUI vs. Funktionalität). Aber zu fast jeder Datenklassenunit etwa habe ich eine Darstellungsunit. Und das ganze ist auch auf ein Dutzend Ordner verteilt. Und was brauche ich Übersetzungen für PE-Dateistrukturbezeichnungen, wenn ich ein Programm, das mit Packformaten umgeht, übersetzen will? Wenn aber alles im Ordner analysiert wird, wäre der komplette fileformats-Ordner drin.

Also nochmal anders gefragt: kann Lingus alternativ auch eine Liste der zu durchsuchenden Dateien verarbeiten? Und wenn ja, möglichst auch geskriptet (momentan FinalBuilder & ActionChain).
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#4

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 10. Jun 2012, 17:10
Nein, so direkt wird das vermutlich nicht gehen. Ich mache aber etwas (vielleicht) vergleichbares: Ich habe einen Bibliotheks-Ordner und dann meine zu übersetzenden Programme. Ein Lingus-Projekt hält die Bibliothek-Übersetzungen, weitere Lingus-Projekte die Übersetzungen zu dem eigentlichen jeweiligen Programm. Ich habe dann 2 .res/.lpf-Dateien (für Bibliothek und Programm an sich), die ich ins Programm mit reinhaue. Klar, es kann dann sein, dass ein Projekt von einem bestimmten Teil der Bibliothek keinen Gebrauch macht, aber die Übersetzungen trotzdem beinhaltet. Das ist mir aber nicht so wichtig.
Und Integration in FinalBuilder oder so gibt es auch nicht, kenne ich mich auch nicht mit aus. Mein Build-Server ist ein langes Python-Skript ..
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
CCRDude

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

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 11. Jun 2012, 12:00
FinalBuilder kann auch einfach Konsolen-Anwendungen aufrufen

Ich habe es in ActionChain mit GNU Gettext jetzt gelöst, FinalBuilder folgt. Falls es jemanden interessieren sollte:
  1. Selbstgeschriebenes UnitListFromMapFile.exe extrahiert aus allen Map-Files in einem Suchpfad die verwendeten Units und ergänzt sie anhand des globalen Suchpfades und der Projektdatei um die Endungen (nicht die Pfade!), speichert sie in compiled-units.lst.
  2. dxgettext -b C:\genericcoderepo\ @compiled-units.lst --so compiled-units.po
  3. dxgettext -b C:\project1\ @compiled-units.lst --so compiled-project.po
  4. msgcat compiled-project.po compiled-units.po default.po

Ich sammle diese Schritte mal eben in einem kleinen weiteren Tool, um sie besser automatisieren zu können
  Mit Zitat antworten Zitat
CCRDude

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

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 11. Jun 2012, 13:08
So, hier wie versprochen die kleinen Helfer.

Code:
UnitListFromMapFile <mapfilemask> <projectfilemask> [/paths] [/strip]
Findet alle für ein Programm kompilierten Units, indem es die erzeugte .map auswertet und mit Hilfe des Standard-Suchpfades (Delphi XE, XE2) und der Projektdatei ergänzt.

Beide Pfadparameter können Masken enthalten, um mehr als eine Datei auswerten zu können. Mit dem Parameter /paths werden vollständige Pfade ausgegeben (für dxgettext unbedingt weglassen), /strip entfernt alle Unit-Namen von Units, die nicht auf der Platte gefunden wurden.

Code:
dpdxgupdate <configfilename>
Aktualisiert die GNU Gettext-Dateien eines Delphi-Projektes. Mit dem gleichen Code wie oben wird intern eine Liste alle vom Projekt verwendeten Units erstellt. Für jeden in der Konfigurationsdatei angegeben Pfad wird hier eine separate .po erstellt. Diese werden am Ende zu einer zusammengefügt, und existierende Übersetzungsdateien werden aktualisiert.

Eine Beispielkonfigurationsdatei ist enthalten.
Angehängte Dateien
Dateityp: zip UnitListFromMapFile.zip (417,6 KB, 4x aufgerufen)
Dateityp: zip dpdxgupdate.zip (433,9 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
669 Beiträge
 
Delphi 12 Athens
 
#7

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 11. Jun 2012, 14:39
Vielen Dank für deinen Einsatz! Da ich selbst auch viel mit dxgettext arbeite, kann ich das bestimmt mal gut gebrauchen.

Aber eine Frage habe ich dann doch: was sind denn diese .map-Files? Sagt mir irgendwie nichts...
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:25 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