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 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
 
#2

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
 
#3

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
672 Beiträge
 
Delphi 12 Athens
 
#4

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
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 11. Jun 2012, 15:14
Dann schau mal in die Projekt-Optionen unter Linker
da gibt es MapFiles Aus...Detailiert
(hab sie selbst auch noch nicht gebraucht, aber irgendwann ist immer das erste Mal)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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, 15:19
Map-Files lassen sich in der Linker-Einstellungen aktivieren. Ein Map-File ist eine "Speicher"-Übersicht einer kompilierten PE-Datei. Darin steht genau, welche Unit welche Bytes innerhalb der Datei belegt, und auch etwa, an welcher Speicheradresse welche Funktion liegt.

Zu gebrauchen z.B. auch nachträglich, wenn man die Adresse einer AV vom Kunden bekommt (ohne madExcept o.ä., weil das Release ohne integrierte Debug-Infos ist) - im Idealfall schaut man im Map-File, das man sich dazu aufgehoben hat, nach der Adresse, und hat dann einen ungefähren Plan, wo sie ausgelöst wurde.

Ist sicherlich noch einiges zu verfeinern an den Werkzeugen (nach dem Posten hier ist mir z.B. eingefallen, dass ich die Pfade ja eh schon habe, weil ich die Dateien per Suchpfad und Projektdatei suche). Und da jetzt ein riesiges Projekt damit zu verarbeiten ansteht, kommt sicher noch das eine oder andere
  Mit Zitat antworten Zitat
Bbommel

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

AW: dxggettext mit Projekt und Code-Sammlung

  Alt 11. Jun 2012, 16:06
Ui, ist ja schon fast ärgerlich, dass diese map-Files all die Jahre an mir vorbeigegangen sind - da hätte ich die ein oder andere Bug-Meldung eines Kunden vielleicht schon besser bearbeiten können. Danke euch für die Erklärung.
  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 13:30 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