Search the FirstSpirit Knowledge Base
Hallo Community,
Ich habe im Forum bereits einige Ansätze zur Ermittelung der Sprache im ScriptContext gefunden, die bisherigen Versuche liefern jedoch nicht das gewünschte Ergebnis.
Ich versuche gerade, in einem Beanshell Script, welches von einem FS_BUTTON aus aufgerufen wird, die Sprache des aktuell ausgewählten Sprachtabs zu ermitteln.
Im Script greife ich auf die Elemente in einer FS_LIST zu und möchte hier den Wert der aktuell ausgewählten Sprache abrufen, um ihn in Form einer AppCenter Anwenung weiter zu verarbeiten.
Ich habe es über den UIAgent probiert:
UIAgent uiagent = context.requireSpecialist(UIAgent.TYPE);
Language lang = uiagent.getDisplayLanguage();
context.logInfo("Sprache ist "+lang.getAbbreviation());
Diese liefert mir aber immer Deutsch (vermutlich die bevorzugte Anzeigesprache), auch wenn ich das Script aus dem englischen Tab starte.
INFO 19.08.2014 15:29:29.606 (de.espirit.firstspirit.access.BaseContextImpl): Sprache ist DE
Kennt jemand eine Möglichkeit, die Sprache des aktiven Tabs zu ermitteln?
ps. Verwendete FS Version ist "FirstSpirit Client 5.0.425.60000"
Hallo,
du könntest Folgendes probieren:
1. Lege in deinem Formular mit dem FS_BUTTON ein verstecktes Textfeld an (pt_lang)
2. Füge folgende Regel hinzu
<ON_EVENT>
<WITH>
<PROPERTY source="#global" name="LANG"/>
</WITH>
<DO>
<PROPERTY source='pt_lang' name='VALUE'/>
</DO>
</ON_EVENT>
Durch diese Regel wird im neuen Textfeld (pt_lang) das Sprachkürzel der aktuellen Sprache gespeichert
3. Füge deinem FS_BUTTON einen Parameter hinzu, der den Wert aus dem neuen Textfeld übergibt
<PARAM name="currentLanguage">#field.pt_lang</PARAM>
Auf diesen Parameter kannst du in deinem Skript zugreifen und mit dem Kürzel arbeiten.
Viele Grüße
Tim
Hallo,
du könntest Folgendes probieren:
1. Lege in deinem Formular mit dem FS_BUTTON ein verstecktes Textfeld an (pt_lang)
2. Füge folgende Regel hinzu
<ON_EVENT>
<WITH>
<PROPERTY source="#global" name="LANG"/>
</WITH>
<DO>
<PROPERTY source='pt_lang' name='VALUE'/>
</DO>
</ON_EVENT>
Durch diese Regel wird im neuen Textfeld (pt_lang) das Sprachkürzel der aktuellen Sprache gespeichert
3. Füge deinem FS_BUTTON einen Parameter hinzu, der den Wert aus dem neuen Textfeld übergibt
<PARAM name="currentLanguage">#field.pt_lang</PARAM>
Auf diesen Parameter kannst du in deinem Skript zugreifen und mit dem Kürzel arbeiten.
Viele Grüße
Tim
Works like a charm.
INFO 22.08.2014 10:47:15.491 (de.espirit.firstspirit.access.BaseContextImpl): Aktuelle Sprache ist DE
INFO 22.08.2014 10:47:25.999 (de.espirit.firstspirit.access.BaseContextImpl): Aktuelle Sprache ist EN
Ich hatte gedacht, die Sprache ließe sich irgendwie über den ScriptContext ermitteln. Aber mit diesem pragmatischen Workaround kann ich gut leben.
Danke!