Niklas Nebeling
 - 27. April 2020

Wie Sie in SAPUI5 Mehrsprachigkeit ermöglichen

sapui5 mehrsprachigkeit

SAPUI5-Mehrsprachigkeit in Anwendungen ist ein zentrales Thema in der Entwicklung. Dieser Blogbeitrag stellt Ihnen die Eigenschaften und die Umsetzung von Mehrsprachigkeit in SAPUI5-Anwendungen vor und erklärt, wie die Applikation erkennt, welche Sprache verwendet werden soll.

Der Blogbeitrag unterteilt sich in vier Punkte. Als Erstes erkläre ich Ihnen, was ein Sprachtag ist und wie sich dieser aufbaut. Im zweiten Teil geht es um die Verwendung von Sprachtags. Anschließend gehe ich auf den Aufbau einer i18n-Datei ein. Zum Schluss werfen wir einen Blick auf die Einbindung und Verwendung der i18n-Übersetzungen und den Prozess hinter der Sprachen- und Textfindung in einer SAPUI5-App.

Aufbau der Sprachtags

Ein Sprachtag ist ein Kennzeichen, das Sie nutzen können, um in HTML- und XML-Dokumenten die zu verwendende Sprache zu ermitteln. Dabei können Sie mehrere Sprachen im System hinterlegen. Für jede hinterlegte Sprache müssen Sie allerdings auch eine eigene Übersetzung anfertigen. Durch den Aufruf eines entsprechenden Tags ist die Anwendung in der Lage, die anzuzeigende Sprache dynamisch zu ändern. Darüber hinaus können Sie durch die Angabe weiterer Attribute linguistische und kulturelle Komponenten herausfiltern.

Diese so genannten „Language Tags“ sind durch das IETF in BCP-47 definiert. BCP steht dabei für „Best Current Practice“. BCP-47 wird als defacto-Standard angesehen. Die gängigsten Browser unterstützen dieses Format. In Java wird seit JDK 1.7, BCP-47 durch die Java „locale“ Klasse unterstützt.

BCP-47

BCP-47

Eine Liste der möglichen Tags erhalten Sie auf der Seite: BCP-47 Language Liste.

SAP-Entwicklung-Anwendungsentwicklung mit SAPUI5 und Netweaver-Gateway

Die SAPUI5 Schulung für Anwendungsarchitekten und SAP Entwickler gibt Ihnen einen Überblick über die gezeigten Technologien und ermöglicht Erfahrungen durch intensive praktische Übungen.

Verwendung der Sprachtags in SAP

Im SAP System werden die Sprachcodes durch einen bis zu zweistelligen Schlüssel repräsentiert. In der Tabelle T002 sind alle hinterlegten Sprachen einzusehen. Die Tabelle baut sich folgendermaßen auf:

  • Sprachschlüssel
  • Spezifikation einer Sprache
  • Übersetzungsgrad einer Sprache (relevant für Transport)
  • Sprache (ISO 639)
  • Bezeichnung
SAP Sprachtabelle

SAP-Sprachtabelle

SAPUI5-Apps werden häufig mit einem auf ABAP basierenden Applikationsserver verbunden, um mit einem SAP-System kommunizieren zu können. Aus Kompatibilitätsgründen unterstützen die Applikationsserver die SAP-firmeneigene Darstellung der Sprachschlüssel. Diese entsprechen dem „ISO 639 alpha-2 language code“. Die SAPUI5-Applikation wandelt den ermittelten Sprachschlüssel anschließend in ein BCP-47 Tag um.

SAP SprachschlüsselBCP-47 TagBeschreibung
ZHzh-HansZH ist der Code für Chinesisch.

 

ZFzh-HantZF ist der Code für traditionelles Chinesisch

 

1Qen-Us-x-saptrcTechnischer SAP-Sprachcode, verwendet in Support Scenarios

Als goldene Regel sollte definiert werden, dass der BCP-47-Sprachcode so kurz wie möglich gehalten werden sollte. Bei der Erstellung sollten Sie weitestgehend auf regions, script oder subtags verzichten – außer, wenn Sie wichtige und hilfreiche Informationen hinzufügen.

SAPUI5 Entwicklercoaching

Technisches Coaching für Ihre Mitarbeiter in dem Thema SAPUI5. Wir besprechen mit Ihnen Ihre Herausforderungen und erarbeiten gemeinsam Lösungsansätze!

Aufbau einer i18n*.properties-Datei

In SAPUI5-Apps erreichen Sie Mehrsprachigkeit, indem Sie die i18n*.properties-Dateien pflegen. I18n steht für „Internationalization“. Zu jeder definierten Sprache ist eine eigene i18n*.properties-Datei zu pflegen. Darüber hinaus ist eine Default-Datei zu definieren. Sie wird automatisch gezogen, wenn keine explizite Übersetzung angegeben ist.

i18n SAPUI5

i18n SAPUI5

Eine i18n*.properties-Datei wird nach dem Key/Value-Pair Prinzip aufgebaut. Das bedeutet, dass durch die Angabe eines Schlüsselworts ein Wert identifiziert werden kann. Es ist verpflichtend, dass das Schlüsselwort einzigartig ist. Der Aufbau der Keys ist in allen i18n*-Dateien gleich.

Beispielsweise wird bei deutscher Übersetzung eine i18n_de.properties-Datei angelegt. Diese muss vom Aufbau identisch mit der Default-Datei sein.

Aufbau .en-Datei SAPUI5

Aufbau .en-Datei SAPUI5

Es ist zu erkennen, dass der Aufbau zwischen den einzelnen Dateien gleich ist. Die obere Abbildung bildet die Default-Sprache ab. Sie wird vom System gezogen, wenn keine anderen Sprache eingestellt ist. Die untere Datei stellt den Aufbau der deutschen Übersetzung dar. Der Entwickler/ das Entwicklerteam ist selbst dafür verantwortlich, die Übersetzung einzupflegen.

Aufbau .de-Datei SAPUI5

Aufbau .de-Datei SAPUI5

Einbindung und Verwendung in einer SAPUI5-App

Hier müssen Sie im ersten Schritt nicht viel tun. Beim Erstellen einer SAPUI5-Applikation wird für Sie automatisch ein i18n-Model und ein ResourceBundle erstellt. Befüllt werden diese jedoch natürlich nicht von selbst! Es ist Aufgabe des Entwicklers bzw. des Entwicklerteams, dort die Übersetzungstexte zu pflegen. Auf diese Texte können Sie in einer XML-Datei oder im JavaScript Coding zugreifen:

Zugriff in einer XML View

Einbinden der i18n Texte in eine XML View

Einbinden der i18n Texte in eine XML View

Die Zuordnung geschieht über das bekannte Data Binding mit {Model>Attribut}. Für das Attribut „title“ ist ein Wert in der i18n-Datei hinterlegt.

Zugriff via JavaScript

var oBundle = this.getView().getModel("i18n").getResourceBundle();

Die i18n Texte befinden im sog. ResourceBundle des i18n-Model. Für mehr Übersichtlichkeit bietet es sich an, den Zugriff auf dieses mit einer Variable zu verkürzen.

var sText = oBundle.getText(sKey);

Auf die einzelnen Übersetzungstexte wird mit getText() zugegriffen. „sKey“ ist hierbei ein Atrribut aus der i18n-Datei.

Language Termination Fallback

Wird nun auf einen Übersetzungstext des i18n-Models zugegriffen, so wird als erstes die Anmeldesprache des Nutzers gezogen. Dann wird nach dem Schema << Dialekt -> Sprache -> Default >> automatisch zuerst in der passenden i18n-Datei gesucht. Folgendes Beispiel veranschaulicht diesen Prozess, der auch Language Termination Fallback genannt wird:

i18n Language Termination Fallback Prozess

Reihenfolge der Bestimmung, wenn Nutzer Anmeldesprache AT hat

Ist kein Text gepflegt, wird schrittweise zur nächsten i18n-Datei gewechselt, bis zuletzt in der Haupt-i18n die Default-Texte ausgelesen werden.

SAPUI5-Mehrsprachigkeit ermöglichen

Nun wissen Sie, wie Sie in SAPUI5 Mehrsprachigkeit gewährleisten können. Sind noch Fragen offen geblieben? Sie kommen an einem Punkt bei der Umsetzung nicht weiter? Schreiben Sie mir gerne, gemeinsam finden wir eine Lösung!



Das könnte Sie auch interessieren


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support