Online Sprachumschaltung
Das Ändern der Sprache kann gänzlich ohne einen Neustart des UI-Managers zur Laufzeit durchgeführt werden. Die Sprachänderung in einem UI hat den Vorteil, dass alle Panels und Module, die mit dem User Interface Manager geöffnet wurden, diese Änderung zur Laufzeit erfahren. Somit können alle Anlagenbilder und Parametrierpanels auf dem Leitrechner geöffnet bleiben und die Sprache kann mit wenigen Mausklicks umgeschaltet werden.
Die Sprachumschaltung erfolgt über die CTRL-Funktion switchLang(), die in benutzerdefinierten CTRL-Skripts eingesetzt werden kann. Die Funktion switchLang() wechselt zur Laufzeit die Sprache in einem User Interface, die Änderung gilt für alle Module und Panels, die mit dem User Interface Manager aufgeschaltet wurden.
Nach dem Start eines User Interface finden Sie in der Symbolleiste eine Combobox, wo eine Sprache ausgewählt werden kann. Diese schaltet jedoch - im Gegensatz zur Funktion switchLang() - die Locale nicht um, d.h. das Format von Zeit, Datum, Float-Variablen etc. wird nicht verändert.
Im Grafik-Editor (GEDI) dient diese Combobox in mehrsprachigen Projekten zur Anzeige und Parametrierung von Texten in Panels in den jeweiligen Projektsprachen.
Die Sprache des Datei-Dialogs (für das Öffnen von Dateien) ist abhängig vom Betriebssystem. In einem deutschen Betriebssystem wird der Dialog auf Deutsch geöffnet.
"Sprachumsch. nur neu zeichnen"
Jedes Panel besitzt eine weitere Eigenschaft "Sprachumsch. nur neu zeichnen" und einen weiteren Event - "LangChanged".
Mit der Eigenschaft "Sprachumsch. nur neu zeichnen" wird festgelegt, wie das Panel bei einer Sprachumschaltung behandelt wird. Folgende Einstellungen sind möglich:
- Sprachumsch. nur neu zeichnen, TRUE: Die Umschaltung wird nur durch "Neuzeichnen" aller statischen Paneltexte und Ausführen des "LangChanged" durchgeführt. Verwenden Sie diese Option bei neuen Panels, wo keine "Initialize"-Skripts definiert sind, mit denen Texte auf Objekte übertragen werden.
Bei Verwendung der Option "Sprachumsch. nur neu zeichnen = TRUE" muss im Skript "LangChanged" vorsichtig mit globalen Variablen umgegangen werden. Bei einer Sprachumschaltung wird das Skript "LangChanged" ausgeführt, erfolgt kurz darauf wieder eine Sprachumschaltung, so läuft das zuerst gestartete Skript weiter und zusätzlich wird das Skript erneut gestartet. Somit kann es zu ungewollten Ergebnissen bei der Abarbeitung des Skripts kommen (z.B. Werte der globalen Variablen werden verfälscht). Für diesen Fall muss der Benutzer dafür sorgen, dass im "LangChanged" entweder keine globalen Variablen verwendet werden oder eine weitere Sprachumschaltung erst dann ausgeführt wird, wenn das erste Skript fertig abgearbeitet ist!
- Sprachumsch. nur neu zeichnen, FALSE (Default): Variante "FALSE", zusätzlich werden alle Childpanels geschlossen, alle CTRL-Skripts gestoppt (auch das Skript mit der switchLang()-Funktion) und alle "Initialize" ausgeführt. Diese Option ist defaultmäßig aktiviert und sollte bei älteren Panels aktiviert werden, die beim Aufschalten Texte an Objekte in den Panels übergeben.