LanguageManager technische Hinweise zur Verwaltung der Sprachdateien
1 Allgemeines
Hier wird beschrieben, wie man Sprachdateien für den LanguageManager (eigentlich "Localizer") verwalten und Updates handeln kann.
Dieser Beitrag richtet sich ausschließlich an den Entwickler!
2 Sprachdateien
Für jede Sprache gibt es zwei Dateien:
{Appname}.{Sprache} | Dies ist eine DLL, in der die Ressource-Strings mit den übersetzten Texten in der jeweiligen Sprache enthalten sind. Diese DLL wird zur Laufzeit geladen. |
{Appname}.{Sprache}.LNG | Diese Datei ist für die Übersetzer in einem bestimmten Format. |
Beispiel:
REFLEX.EN REFLEX.EN.LNG
Die Ausgangssprache (Deutsch) wird als "Native Language" bezeichnet. Diese wird in den Dateien {Appname}.NTV (DLL) und {Appname}.NTV.LNG gespeichert. Diese Dateien müssen im Programmverzeichnis liegen und bei einem Update mitgeliefert werden!
Zusätzlich gibt es Dateien mit der Endung ".LEO". Dies sind Dateien, in der der LanguageManager seine Einstellungen speichert. Diese Datei darf nicht im Update enthalten sein, weil sonst die Einstellungen des Entwicklers ausgeliefert werden würden.
3 Server-Struktur, Server-Parks
In einer einfachen Umgebung kann man die Übersetzungen mit dem LanguageManager direkt mit den Dateien im Programmverzeichnis machen.
In einer komplexen Umgebung mit mehreren Remote-Servern oder gar einem Server-Park geht das nicht, weil die User auf irgendeinem Server arbeiten und so mal diese Datei übersetzen mal eine andere auf einem anderen Server. Deshalb muss man die Sprachdateien auf einem zentralen Server (-Laufwerk) ablegen.
Damit das ganze kontrolliert abläuft, gibt es das Programm "RxLangManTool". Wenn man aus REFLEX heraus im Menü "Extras" den LanguageManager startet, öffnet sich zuerst das Tool und bietet den Usern ein Menü, mit dem sie auswählen können, welches Modul und welche Sprache übersetzt werden soll. RxLangManTool überwacht auch, dass nur ein User pro Modul und Srach gleichzeitig übersetzen kann.
Dabei setzt das Programm folgendes voraus:
- Die Sprachdateien liegen auf einem Server in einem beliebigen Verzeichnis.
- Darin befinden sich Unterverzeichnisse mit dem Namen der jeweiligen Sprache
Beispiel:
Stamm-Verzeichnis:
R:\International\LanguageManager\FilesForTranslators
Unterverzeichnisse:
R:\International\LanguageManager\FilesForTranslators\EN R:\International\LanguageManager\FilesForTranslators\FRA R:\International\LanguageManager\FilesForTranslators\IT R:\International\LanguageManager\FilesForTranslators\NLD R:\International\LanguageManager\FilesForTranslators\PLK
Die Sprachdateien der Module liegen in den Unterverzeichnissen, z.B.
REFLEX.NTV.lng REFLEX.EN.lng GevitasFormPrint.NTV.lng GevitasFormPrint.EN.lng RxDispo.NTV.lng RxDispo.EN.lng
usw.
- Wichtig!
- Die .NTV-Dateien der Programme/Module müssen in jedem Unterverzeichnis liegen!!!
- Die .DLL- und .LNG-Dateien der Programme/Module müssen bei einem Update auch in das Programmverzeichnis kopiert werden!
- Wenn nicht alle aktuellen Dateien im Programmverzeichnis liegen, erzeugt der eingebaute Localizer beim Start des Programm die DLL-Datei neu! Das dauert!
- Für die User sieht es so aus, als ob sich das Programm "aufgehängt" hat!
Beispiel:
Datei | Update-Ordner | LNG-Ordner |
---|---|---|
..\exe\Reflex.exe | Ja | Nein |
..\exe\Reflex.ntv | Ja | Nein |
..\exe\Reflex.ntv.lng | Ja | Ja |
..\exe\Reflex.en | Ja | Nein |
..\exe\Reflex.en.lng | Ja | Ja |