Einzelnen Beitrag anzeigen

CCRDude

Registriert seit: 9. Jun 2011
677 Beiträge
 
FreePascal / Lazarus
 
#1

dxggettext mit Projekt und Code-Sammlung

  Alt 8. Jun 2012, 15:22
Ich versuche mich gerade für ein neues Übersetzungssystem für meine Software zu entscheiden. Früher lief ich mit etwas selbstgeschriebenem sehr gut, allerdings müsste ich das auf Unicode umstellen, und es gibt ja auch so vielversprechende Ansätze.

MUI als Standard schlechthin musste ich leider verwerfen, weil die VCL mit übersetzten DFM-Resourcen nicht klarkommt

ITM/ETM gruseln mich, die Extra-IDE-Optionen wirken auf mich zu komplex (nicht vom Verständnis her - aber scheinen mir zusätzliche potentielle Fehlerquellen zu sein).

Momentan schaue ich mir gnugettext an, das sieht wirklich vielverpsrechend aus. Ich hänge aber noch an einem Problem. Wenn ich auf meine Platte schaue, sehe ich:

C:\Code\Projekte\HalloWelt\src\*.pas;*.dfm;*.dpr
C:\Code\Projekte\EmptyDummy\src\*.pas;*.dfm;*.dpr
C:\Code\Units\Eigene\*.pas

Im eigenen Repo habe ich etlichen Code (einige Hundert Units), der von vielen meiner Anwendungen verwendet wird. Nicht wenige davon beziehen sich auf das User Interface und verwenden daher auch schon Texte. Nun könnte ich weiter hingehen und diese Texte gegen Konstanten ersetzen, die ich von der übersetzen Anwendung überschreiben lasse (der Ansatz meines alten Codes). Oder ich könnte den kompletten Ordner von dxgettext mit durchsuchen lassen, ende dann aber bei viel zu vielen Strings.

Kann ich nicht einfach alle von einem Projekt verwendeten Units parsen lassen? Evtl., indem ich vorher eine Liste der verwendeten Units erstelle (dxgettext kennt für die Parameter einen @-Prefix für Listen)? Um zur Frage zu kommen: was ist dafür der beste Ansatz? Spuckt der Compiler selber sowas schon an der Kommandozeile aus, wenn ich ihn nett bitte? Muss ich ein externes Tool verwenden (ich erinnere mich da grob an ein Tool, das unbenötigte uses-Klauseln identifizieren sollte, das hat ja beispielsweise schon eine List)?

Oder grob gesagt: hat sich schon jemand mit dieser Problematik auseinandergesetzt und einen guten Tipp dazu, bevor ich mich in die vielleicht falsche Richtung stürze?
  Mit Zitat antworten Zitat