Thema: Delphi Translation Manager

Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Translation Manager

  Alt 21. Jan 2009, 13:55
Du erstellst eine .rc-Datei (Notepad, ...), in der du eine Stringliste abbildest.
Code:
STRINGTABLE {
   // LID_ABOUT
   1, "Software Name\nCopyright ..."
   // LID_ABOUT_TECHNOLOGIES
   2, "Verwendete Technologien"
   ...
   // LID_SOME_OTHER_TEXT
   12345, "Testtext %s %d\n"
}
Die Datei jagst du durch den Borland Resource Compiler (BRCC32) und er erstellt dir daraus eine .res. Diese .res linkst du in ein library-Projekt. Das ist dann die Sprach-DLL, zB wird aus german.dpr dann german.dll.

Dazu hab ich mir ein Tool geschrieben, was durch diese Dateien parsed, mir die Einträge nach LIDs sortiert und aus den LID_...-Kommentaren eine LanguageIds.pas erstellt, die diese als CONSTs hinterlegt hat.
Delphi-Quellcode:
unit LanguageIds;

interface

const
   LID_ABOUT = 1;
   LID_ABOUT_TECHNOLOGIES = 2;
   ...
   LID_SOME_OTHER_TEXT = 12345;
   ...
implementation
end.
Dazu eine Klasse, die die entsprechende DLL per LoadLibrary lädt und mir durch eine Funktion "GetString" die entsprechende LID aus der DLL als String lädt und zurückliefert.
Delphi-Quellcode:
// ...
MessageDlg (Language.GetString (LID_ABOUT), ...);
Dazu kam noch ein tabellenähnliches Übersetzungstool, wo man eine Basissprache (zB Deutsch) links in der ersten Spalte hat und beliebig viele Sprachen rechts hinzufügen und recht komfortabel bearbeiten kann.

Das Borland Teil war uns zu kompliziert und unflexibel, vorallem wenn man Übersetzer hat, die 1) im Ausland sind und 2) sonst - ausser Texte schreiben - nicht viel mit Computern am Hut haben.

Fahren mit der Lösung schon einige Jahre ziemlich gut. Bisher keine Probleme gehabt.
  Mit Zitat antworten Zitat