Einzelnen Beitrag anzeigen

Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
  Alt 7. Mai 2003, 07:44
Hallo, oki

bin nun endlich zurück und habe noch einmal den TM mit Verzeichnissen ausprobiert:

Ich kam zum Schluß, dass der TM auch mit Verzeichnissen arbeitet.
Allerdings habe ich mir angewöhnt mit relativen Pfaden (..\BIN) zu arbeiten,
dabei motzt der TM, dass er den Pfad \BIN\MeinProg.EXE nicht findet, allerdings
kann man diese Meldung ignorieren, das habe ich am Anfang aber nicht gemacht...

Mit absoluten Pfaden geht alles klaglos.

----------------------------------------------------------------------------------------

@hacki

Kochrezept zur Benutzung des TM:

VORBEREITUNGEN:
In den Units vor IMPLEMENTATION die Resourcen (=Texte) definieren die man übersetzen möchte.
(in EINER Sprache, am Besten in der Ausgangssprache)

Delphi-Quellcode:
RESOURCESTRING
  RsTest = 'Sapperlot';
  RsErrorQueryBereich = 'Can not execute SQL: %s' + CRLF + '%s';
BENUTZUNG MIT FORMATSTRINGS:
z.B.
   E.Message := Format(RsErrorQueryBereich, [queryBereich.SQL.Text, E.Message]); EINSATZ DES TM (englische Version):
  • Projekt speichern
  • Menü: Projekt/Languages/Add
  • (Select ALL) <Next>
  • gewünschte Sprachen auswählen
  • 3x <Next>
  • 1x <Finish>
    -- Projekt wird compiliert --
    -- *.bpg Datei speichern --
  • TM Fenster öffnet sich
  • Reiter <Workspace> (ganz rechts)
  • Im Treeview gibt es Knoten für jede Sprache
    -> Forms: Formulareigenschaften und Texte für jede Sprache individuell anpassen
    -> Ressource Scripts: ResourceStrings die man vorher erstellt hat übersetzen

SPRACHUMSCHALTUNG IM CODE AKTIVIEREN:

Die Datei reinit in das Projektverzeichnis kopieren:
C:\Program Files\Borland\Delphi7\Demos\RichEdit\reinit.pas


Im Hauptprogramm folgendes einfügen:
Delphi-Quellcode:
USES
  ...
  reinit, // Länderanpassung
  ...

CONST
// ------------------ Länderanpassung ------------------
// Konstanten sind in der Windows.pas definiert.
  ENGLISH = (SUBLANG_ENGLISH_US SHL 10) OR LANG_ENGLISH;
  FRENCH = (SUBLANG_FRENCH SHL 10) OR LANG_FRENCH;
  GERMAN_A = (SUBLANG_GERMAN_AUSTRIAN SHL 10) OR LANG_GERMAN;
Ich habe die Sprachauswahl in eine INI-Datei verpackt:

Code:
[Translation]
Language=GERMAN_A
Codebeispiel zur Umschaltung zur Laufzeit:

Delphi-Quellcode:
     // Anpassen für mehrere/andere Sprachen!
      IF LoadNewResourceModule(IniFile.ReadInteger(SectionDatabase, KeyLanguage, GERMAN_A)) <> 0 THEN
        BEGIN
          ReinitializeForms;
        END;
ACHTUNG:
Projekt natürlich nur mehr über die *.bpg und nicht durch *.dpr Datei öffnen!

ACHTUNG:
Bei Änderungen in Forms/Code immer mit <Build ALL> kompilieren,
bei Bedarf auch im Menü: Projekt/Languages/Update Resource DLLs ausführen.

ACHTUNG:
Zur Laufzeit hartkodierte Texte ( z.B. Form1.Caption := 'SEPPL' ) werden natürlich überschrieben.
-> Abhilfe: Form1.Caption := 'SEPPL'; NACH dem Aufruf ReinitializeForms ausführen.


p.s. Ich hoffe ich habe nichts vergessen, wenn alles funkt könnte das ja einmal ein Beitrag für die Library werden.
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat