von Thomas Schermer
Mit SWiSHmax ist es einfach mehrsprachige Webseite zu erstellen und verwalten. Dabei sind auch exotische Sprachen wie Japanisch kein Problem.
Der Text soll per Buttonklick auf die jeweilige Sprache umgeschaltet werden. Das Beispiel sollte immer im externen Player getestet werden, da intern HTML nicht angezeigt wird.
LiveDemo
Die Dateien können mit SWiSHmax deutsch in der Version vom 15.08.2005 oder neuer geöffnet werden. Download SWiSHmax deutsch + deutsche Hilfe
Sprachsteuerung mit SWiSHmax
Textdateien für Inhalte und Verzeichnisstruktur
Für jede Sprache wird hier ein eigenes Unterverzeichnis angelegt. In diese kommen die Textdateien. Diese heißen jeweils „content.txt“. Im Hauptverzeichnis liegt der Flashfilm, der in diesem Beispiel „sprache.swf“ heißt.
– Hauptverzeichnis – hier liegt Ihr Flashfilm
— /de/content.txt
— /jp/content.txt
–/en/content.txt
Die Textdatei ist wie folgt aufgebaut
&inhalt=Das ist der deutsche Text inkl. ÜÄÖß
~ oder Renè oder....&
Externe Variablen werden für SWiSH per „&“ gekennzeicht. Danach folgt der Name „inhalt“ der Variable, der sich später in SWiSH benutzen läßt. Nach dem „=“ folgt der Inhalt der Variablen. Das ganze wird mit einem „&“ abgeschlossen.
Die Textdatei kann mit einem beliebigen Editor erstellt werden, der UNICODE -Dateien speichern kann. Die Datei muß zwingend als Unicode gespeichert werden, da ansonsten die Sonderzeichen nicht geladen werden können. Diese Dateien wurden mit dem in Windows enthaltenen Notepad erstellt.
Die Inhalte der anderen beiden Textdateien:
english:
&inhalt=That's in english ...well all is ok, when we see
this text.&
japanisch(gekürzt) :
&inhalt="~自然の美しさをありのままに映し出す~
新薄型テレビBRAVIA<ブラビア>”誕生....&
Damit sind die Vorbereitungen abgeschlossen und die Realisierung in SWiSHmax folgt.
Realisierung in SWiSHmax
Es werden 3 Buttons (/en/jp/de) und 1 dynamisches Textfeld für den Inhalt benötigt . Es sind 3 Buttons (Tutorial für Buttons) zu erstellen und beschriften mit „deutsch“, „englisch“ und „japanisch“ zu beschriften. Dann wird ein neues Textfeld benötigt. Dieses muß zwingend folgende Eigenschaften haben:
Text als HTML anzeigen
Formatierung des Textfeldes
- 1 schaltet HTML ein
- 2 schaltet den Zeilenumbruch ein
Den Zeilenumbruch sollte man auf jeden Fall bei mehrzeiligen Texten einschalten, da sonst der Text nur 1 zeilig dargestellt wird.
Name, Variable und Ziel des Textfeldes
Eigenschaften des dynamischen Textfeldes
- 1 Namen des Textfeldes (beliebig) und Ziel müssen festgelegt werden
- 2 das Textfeld muß ein dynamisches Textfeld sein
- 3 um den Namen der Variablen festzulegen, muss man sich in der Option „erweitert“ befinden
- 4 der Name der Variable heißt wie diese Variable aus dem Textfeld „inhalt“ – damit wird automatisch der Inhalt der Variablen in dem Textfeld dargestellt
SWiSHScript
Damit der Inhalt abhängig von der Sprache geladen wird, kann man sich eines einfachen Konstruktes bedienen. Es wird immer der Inhalt aus „content.txt“ geladen. Es wird nur der Pfad zur Datei geändert.
Dazu werden im onLoad() – Ereignis die Pfade für die jeweilige Sprachdatei definiert .
onLoad () {
//Sprachdatei url festlegen
var url_lng_file_de ="de/";
var url_lng_file_en ="en/";
var url_lng_file_jp ="jp/";
}
Mittels LoadVariables() wird die Variable „inhalt“ aus der jeweiligen Textdatei geladen.
LoadVariables
- Syntax: spritename.loadVariables („url“ [, variables])
- Parameter: spritename: Name des Sprites / Films dessen Variablen geladen werden.
- url: Eine absolute oder relative URL von der die Variablen geladen werden.
- variables: Ein optionaler Parameter der eine HTTP-Methode zum Senden der Variable spezifiziert. Der Parameter muß GET oder POST sein. Werden keine Daten gesendet, kann der Parameter leer sein.
- Rückmeldung: Keine
- Aktion und Sprite Methode: Liest Daten aus einer externen Datei, wie zum Beispiel ein Textdokument oder ein Text eines CGI Scripts, Active Server Pages (ASP), PHP, oder Perl script und setzt die Werte für die Variablen in einem Flash Player Level oder Zielfilm. Dies kann auch genutzt werden, um Variablen eines Films zu updaten beziehungsweise mit neuen Werten zu ersetzen. Der Text bei der ausgewählten URL muss dem MIME Format entsprechen (ein standard CGI Format). Der Film und die Variablen müssen zur selben Subdomain gehören. Eine beliebige Anzahl vonVariablen kann spezifiziert werden. Zum Beispiel definiert die untere Zeile mehrere Variablen:
name=dude&address=home&city=Sydney - Wenn die loadVariables Aktion genutzt wird, so ist das Sprite / der Film zu spezifizieren, in das / den die Variablen geladen werden.
Verbinden von von Buttonklick mit dem Laden der Sprachdatei
Button für English:
on (press) { loadVariables(url_lng_file_en add "content.txt");
}
Button für Deutsch:
on (press) { loadVariables(url_lng_file_de add "content.txt");
}
Button für Japanisch:
on (press) { loadVariables(url_lng_file_jp add "content.txt");
}
Diese Zeile veranlasst den Film beim Klicken (on (press)), den Befehl LoadVariables aufzurufen. Es wird der Pfad zur Datei je nach Button anders zusammengesetzt. Mittels add wird der Pfad zur „content.txt“ auf das jeweilige Sprachverzeichnis umgelenkt. Add addiert 2 Strings miteinander.
Ein vollständig zusammengesetzter Pfad für japanisch sieht so aus:
on (press) { loadVariables("jp/content.txt"); }
Videotutorial
Für alle Lesefaulen gibt es das Ganze noch ausführlicher als Videotutorial. In diesem wird auch die Buttonerstellung erklärt. Damit funktioniert die Sprachsteuerung. In der beigefügten Demodatei sind noch Trace -Befehle eingebaut, so dass sie im internen Debugger verfolgt werden können.
Thomas Schermer aka :: Tom :: betreibt seit 4 Jahren die größte deutsche SWiSHCommunity inkl. der größten freien SWI-Datenbank diesseits des Spiralarmnebels – www.swishzone.de
Erstveröffentlichung 18.10.2005
Wie hilfreich war dieser Beitrag?
Klicke auf die Sterne um zu bewerten!
Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0