Search the FirstSpirit Knowledge Base
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 ?
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.
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
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.
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
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
Hallo Sebastian,
hier nochmal ein paar Infos zu diesem Thema:
Viele Grüße
Tim
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
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