Wir verwenden die Methode req.error() aus dem Nachrichten-API sowohl in der Implementierungsklasse für den AdminService aus unserem Szenario als auch in der Implementierungsklasse für unseren CatalogService. Mit dieser Methode geben wir Fehlermeldungen aus, wenn Validierungen fehlschlagen. Bisher haben wir die gemeldeten Nachrichten fest als Textliterale programmiert.
In dieser Lektion erfahren Sie, wie Sie Botschaften internationalisieren. Anstatt sie fest programmiert einzubetten, werden sie in separaten Dateien - sogenannten Textbündeln - als Schlüssel-Wert-Paare gepflegt. Die Schlüssel werden dann vom Anwendungscode verwendet, um auf die entsprechenden Texte zuzugreifen. Das bedeutet, dass die Werte für die Schlüssel die eigentlichen sprachabhängigen Texte sind. Um verschiedene Sprachen zu unterstützen, werden verschiedene Dateien gepflegt, die übersetzte Texte für dieselben Schlüssel bereitstellen (siehe folgende Abbildung).

Erstellen von Bundle-Dateien für die Internationalisierung von Fehlermeldungen
Legen Sie eine Datei mit dem Namen messages.properties in einem Ordner namens _i18n, i18n oder assets/i18n an. Der Ordner für die Datei messages.properties muss sich entweder direkt unter dem Projektverzeichnis oder in einem Verzeichnis befinden, das Dateien enthält, die zur Definition von Service-Modellen verwendet werden (z.B. das srv-Verzeichnis in unserem Projekt).
Notiz
Die erforderlichen Texte werden als Schlüssel-Wert-Paare in der Datei messages.properties gepflegt. In der Regel werden die Texte dort in Englisch gepflegt. Es können Platzhalter verwendet werden, die in der Form "{n} " notiert sind. n durchläuft die natürlichen Zahlen beginnend mit 0.
Um zusätzliche Sprachen zu unterstützen, werden zusätzliche Dateien im selben Ordner wie die Datei messages.properties gemäß der folgenden Namenskonvention angelegt: messages<_languageCode><_countryCode>.properties. Der Ländercode ist optional. Beispiele für solche Dateinamen sind messages_de.properties, messages_fr_CA.properties oder messages_es_MX.properties.
Die zusätzlichen Dateien verwenden dieselben Schlüssel wie die Datei messages.properties. Die Werte für die Schlüssel werden jedoch gemäß dem Sprachcode und ggf. dem Ländercode aus dem Dateinamen übersetzt.
Im gezeigten Beispiel wurden zwei .properties -Dateien angelegt: messages.properties mit englischen Texten und messages_de.properties mit den entsprechenden deutschen Übersetzungen.
Fallback-Kette
Angenommen, bei der Bearbeitung einer Anfrage wird ein Text über einen Schlüssel abgefragt, wobei für die Sprache Deutsch ermittelt wurde. Wenn in der Datei messages_de.properties ein Text für den Schlüssel gepflegt ist, wird dieser Text von der Anwendung verwendet. Wenn jedoch keine Datei messages_de.properties vorhanden ist oder der verwendete Schlüssel nicht in der vorhandenen Datei messages_de.properties gepflegt ist, greift CAP auf die Datei messages.properties zurück und versucht, über diese Datei einen Wert für den Schlüssel zu ermitteln. Wenn dies möglich ist, wird der entsprechende Text von der Anwendung verwendet. Wenn messages.properties auch keinen passenden Eintrag enthält, verwendet die Anwendung den Schlüsselnamen als Text.
Notiz

