sam1
New Creator

Im ContentCreator wird immer die Mastersprache an den Workflow übergeben

FirstSpirit Server 5.2.312.72667

FirstSpirit ContentCreator 5.2.312.72667

Folgendes Problem:
Bei uns im ContentCreator wird ein Freigabeworkflow ausgeführt.

Nun wird bei einem Fehlerfall "release conflict" ein Fehlerdialog passend zur Sprache ausgegeben (momentan nur deutsch oder englich).

Es ist aufgetreten das im ContentCreator mit englischer Oberfläche deutsche Dialoge angezeigt wurden.

Dabei ist die Mastersprache en_DE eingestellt.

Im Workflow wird die Sprache über die Locale des context "workflowScriptContext" geholt.

Um das Problem zu Lösen müsste einfach die Mastersprache umgestellt werden auf en_EN das ist nicht das Problem.

Im SiteArchitect funktioniert alles wie gewünscht.

Festgestellt wurde, dass der ContentCreator die Strukturseiten immer in der Mastersprache anzeigt unabhängig der gewählten Oberflächensprache.

So wird folglich dem Workflow immer die Mastersprache übergeben.

Im SiteArchitect habe ich über den UIAgent Zugriff auf die Locale des workflowScriptContext und kann anhand dieser Fehlerinformationen laden.

UIAgent uiAgent = workflowScriptContext.requestSpecialist(UIAgent.TYPE);

Dort habe ich die Möglichekti über den GuiHost an die Oberflächensprache zu gelangen.

Dies funktioniert leider nicht mit dem ContentCreator da der Host null zurückliefert.

workflowScriptContext.getGuiHost().getGuiLanguage().getLocale();

Im ContentCreator geht der Zugriff über den WebeditUiAgent

WebeditUiAgent webeditUiAgent = workflowScriptContext.requireSpecialist(WebeditUiAgent.TYPE);

Dort ist immer die Mastersprache hinterlegt egal welche Oberflächensprache zuvor ausgewählt wurde.

Wird im ContentCreator generell die Mastersprache für die angezeigten Strukturseiten verwendet ?

Bzw kann dies konfiguriert werden ?

Gibt es eine Möglichkeit an die Oberflächensprache im ContentCreator zu kommen ?

0 Kudos
9 Replies
mbergmann
Crownpeak employee

Hallo Sebastian,

hilft Dir dieses Posting weiter?

Viele Grüße

Michael

0 Kudos

Hallo Michael,

ich habe es mit der Locale.getDefault() probiert.

Ich habe dazu direkt nach dem Start des Freigabeworkflows ein Skript eigenhängt,

das die Locale.getDefault()  an den Freigabeworkflow übergibt.

Ich habe danach den ContentCreator debugged.

Ich bekomme aber im ContentCreator folgendes Bild:

Locale baseLocale -> language=de

egal welche Sprache im Browser ausgewählt wurde.

Es wäre sehr gut zu wissen woher der ContentCreator die Sprache für Locale.getDefault() bezieht.

Das Problem tritt auch nur im ContentCreator auf da es wohl Unterschiede zum SiteArchitect gibt.

WfTestLocale.jpg

0 Kudos
mbergmann
Crownpeak employee

Hallo Sebastian,

Du schreibst, dass im WebeditUiAgent imemr nur die Mastersprache "hinterlegt" ist - wie versuchst Du denn konkret auf die Sprache zuzugreifen?

Wenn es um die UI-Sprache geht, sollte .getDisplayLanguage() funktionieren. Mit .getPreviewLanguage() bekommst Du hingegen immer die Sprache in der der aktuelle Inhalt angezeigt wird - unabhängig von der Clientsprache. Kann es sein, dass Du das versucht hast?

Viele Grüße

Michael

0 Kudos

Hallo Michael,

ich habe es schon mit der getDisplayLanguage() probiert gehabt.

Dort kommt auch die Mastersprache zurück:

WebeditUiAgent uiAgent = workflowScriptContext.requireSpecialist(WebeditUiAgent.TYPE);

uiAgent.getDisplayLanguage().getLocale()

Egal in welcher Sprache ich den ContentCreator ausführe er übergibt dem Workflow immer im workflowScriptContext die Mastersprache "en".

Ich habe bemerkt das über die worklfowScriptContext "Session" (WebeditSessionImpl) die korrekte Oberflächensprache hinterlegt wird.

Aber ich komme dort nicht weiter da ich nicht weiß wie ich die "uiLocale" aus der Session bekomme.

Die WebeditSessionImpl befindet sich in der JavaScript Api und der Workflow in der Java Api.

0 Kudos
mbergmann
Crownpeak employee

Hallo Sebastian,

kann es sein, dass die anderen Oberflächensprachen (=die, bei denen die Mastersprache kommt) nicht als Redaktionssprachen im Projekt hinterlegt sind?

Viele Grüße

Michael

0 Kudos

Hallo Michael,

ich habe die Sprachen überprüft es sind für dieses Projekt alle Serversprachen eingetragen (Bis auf "EN" bzw "DE")

Macht es einen Unterschied zwischen Oberflächensprache z.b wenn im Browser der ContentCreator

mit ?locale=de aufgerufen wird und im Projekt die Redaktionssprache DE_DE hinterlegt ist ?

z.B locale=en und Redaktionssprache EN_US

0 Kudos

Hallo Sebastian,

hier nochmal ein paar Infos zu diesem Thema:

  1. Im SiteArchitect gibt Locale.getDefault immer die Oberflächensprache zurück, also die Sprache, die du auf der FirstSpirit Startseite auswählst
  2. Im ContentCreator gibt Locale.getDefault meines Wissens die Locale des Servers zurück
  3. Im ContentCreator ist es über die API aktuell nicht möglich die Oberflächensprache zu ermitteln
  4. getDisplayLanguage liefert die Oberflächensprache, falls diese auch eine Redaktionssprache des Projektes ist, ansonsten die Mastersprache. Ein Beispiel: Die Redaktionssprachen sind Spanisch (ES) und Französisch (FR). Die Mastersprache ist ES.
    • Oberflächensprache = Spanisch -> getDisplayLanguage liefert ES
    • Oberflächensprache = Französisch -> getDisplayLanguage liefert FR
    • Oberflächensprache = Deutsch / Englisch / ... -> getDisplayLanguage liefert ES

Viele Grüße

Tim

0 Kudos

Hallo Tim,

vielen Dank für die Antwort.

Das Projekt besitzt viele Redaktionssprachen und auch jene, die über die Startseite ausgewählt werden können.

Dennoch bekomme ich über getDisplayLanguage() nur die Mastersprache.

Dies habe ich über den ContentCreator debugged.


Gruß,

Sebastian

0 Kudos

Hi Sebastian,

genau, das Problem können wir leider aktuell nicht lösen. Tims vierte Aussage bezieht sich nämlich nicht auf den ContentCreator. Für den ContentCreator gilt leider nur Aussage 3: Das ist (aktuell) nicht möglich. Leider können wir nicht sagen, wann es dafür eine offizielle Funktion geben wird.

Grüße,

Hannes

0 Kudos