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.