Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Mehrsprachige Seitennavigation in WebCenter Portal Framework Anwendungen

leave a comment »

Eine Mehrsprachigkeit wird auch in WebCenter Anwendungen grundsätzlich über Resource Bundles (im Folgenden mit RB abgekürzt) erreicht. Immer dann, wenn der Entwickler auf Code- oder Propertiesebene unterwegs ist, kann er in den meisten Fällen die jeweiligen Key-Value Pairs aus dem RB adressieren. Wie man eine Anwendung mit einem RB versieht, kann man der ADF Dokumentation bzw. entsprechenden Tutorials oder Blogs entnehmen. Das soll also nicht Gegenstand dieses Blogeintrages sein. Die Behandlung von Mehrsprachigkeit wird dann schwieriger, wenn in der Anwendung systemseitig, also durch die Software oder durch das Framework mitgebracht, Weboberflächen eingebunden oder bestimme UI Elemente gekapselt sind, auf die der Entwickler keinen oder nur indirekten Zugriff hat. In einer WebCenter Portal Framework Anwendung sind dies bspw. der Page Service und die Administrationsoberfläche. Die Adminoberfläche ist Bestandteil der WebCenter Software und demnach inhaltlich fixiert. Diese UI ist bereits in >20 Sprachen übersetzt worden (siehe dazu WebCenter Dokumentation). Das Hauptaugenmerk möchte ich auf den Pageservice richten, der einerseits ein Feature der WebCenter Software ist, andererseits aber – im Gegensatz zur Adminoberfläche – vom Entwickler oder Anwender als Quasi-Entwicklungsbaustein verwendet wird. Nur zur Erinnerung, der Pageservice ist die Funktionalität von WebCenter, die einer Webanwendung eine Seitenstruktur (ähnlich einer Website) mitgibt und auch zur Laufzeit ADF Seiten erstellen lässt. Jede Seite erhält einen Namen, der an vielen Stellen der Webanwendung auftauchen kann – sei es als Pagelabel, Navigationslink, oder Breadcrumb. Demnach sollte eine Pagestruktur auch mehrsprachig gestaltet sein, um die o.g. Elemente auch in der jeweiligen Sprache anzeigen zu können.

image

image

Die Bilder sind einer WebCenter Tippspielanwendung zur Europameisterschaft 2012 entnommen, die hier als Beispiel dienen soll. Man sieht hier hier die Navigationsleiste mit den jeweiligen Seitenlinks auf englisch und deutsch, darunter den Seitennamen als Orientierungshilfe. Diese Angaben müssen natürlich übersetzt werden. Unter http://www.youtube.com/watch?v=ha6FzOkVc24 gibt es von Bob Frazer aus dem Product Management eine Beschreibung, wie er die Navigation mehrsprachig gestalten würde. Zusammengefasst  wird mit seinem Lösungsansatz das Navigationsmodell (siehe dazu Webcenter Dokumentation) über ein RB übersetzt. Der Nachteil dieser Methode liegt darin, dass das Navigationsmodell von der Definition der Page Hierarchy (pages.xml) entkoppelt wird. Das heißt konkret, dass es in der default-navigation.xml keinen Verweis mehr auf die Pagehierarchy gibt, sondern an dieser Stelle die Seiten direkt referenziert werden. Es müssen also alle Seiten hier nocheinmal eingetragen werden, obwohl sie in der pages.xml schon definiert wurden. Eigentlich ist die pages.xml. der “Sinlge point of truth” in Sachen Sitestruktur und die Navigation sollte sich danach richten. Dieser Lösungsansatz wird dann in der Handhabung immer komplizierter, wenn z.B. zur Laufzeit neue Portalseiten über den Page Service erstellt werden. Diese müssten nämlich dann auch noch redundant im Navigationsmodell eingetragen werden, um darauf zugreifen zukönnen.

image

Das obige Bild zeigt den Normalfall, bei dem im Navigationmodell auf die Pagehierarchy verwiesen wird. Das sollte so bleiben, damit weitere Seiten, die zur Laufzeit hinzugefügt werden, auch automatisch im Navigationsbaum enthalten sind. Also sollte die Übersetzung der Seiten in der pages.xml ansetzen. Dort wird neben der Page ID auch der Seitentitel angegeben, der in der Navigation dargestellt werden soll.

image

Das Problem hier ist aber, dass man keine RB Keys im Titel eintragen kann. Das heisst, man kann hier nicht direkt eine Mehrsprachigkeit einbauen, wie zum Beispiel im Navigationsmodell lt. o.g. Lösungsansatz. Also muss man das auf anderem Weg erreichen. Hier die Lösung:

Schritt 1: RB in der WebCenter App aktivieren, meinetwegen wie im o.g. Lösungsansatz bereits gezeigt

Schritt 2: Definition der Page Hierarchy, wie gewünscht, im Feld ‘Title’ jedoch den RB Key verwenden, wie hier gezeigt.

image

Schritt 3: Eintragen der Keys in die Portal RB, wie hier gezeigt

image

Schritt 4: Verwenden der RB Keys im Page Template an den notwendigen Stellen, wie hier am Beispiel Navigationslink gezeigt

image

Das ist alles. Somit behält man die pages.xml als besagten ‘Single point of truth’ und hat gleichzeitig alle nachfolgenden Ergänzungen der Seitenstruktur zur Laufzeit in die Navigation aufgenommen. Die Frage, die sich hier zwangsläufig anschließt, ist, wie man RB zur Laufzeit ergänzen kann im Falle auch neue Seiten zur Laufzeit hinzugefügt werden und man deren Titel selbstverständlich auch wieder übersetzen muss. Das wird in einem der folgenden WebCenter Blogeinträge beschrieben.

<DM>

Written by fmtechteam

17/04/2012 um 13:02

Veröffentlicht in ADF, Detlef Müller, Development, WebCenter

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: