Zum Hauptinhalt springen

Mehrsprachigkeit

Grundsätzliche Aktivierung Mehrsprachigkeit

Um Mehrsprachigkeit für einen Namensraum grundsätzlich zu aktivieren, muss im Namensraum eine API languages erstellt werden, welche die Sprachen für den Namensraum definiert. Dafür empfiehlt sich eine JSON-Struktur wie folgt:

{
"application": "Tutorial",
"label": "languages",
"project": "NeuroomNet-CMS Tutorial",

"fields": {
"code": {
"cms": {
"column": true,
"unique": true
},
"empty": false,
"type": "string"
},
"display": {
"cms": {
"column": true
},
"type": "string",
"optional": true
}
},
"hideId": true
}

Beispiel-JSON herunterladen

curl -X POST -H "Content-Type: application/json" --user "<myuser>":"<mypassword>" -d @@CreateApi-languages.json https://<url>/schema/tutorial/languages

Es können aber auch Varianten dieser JSON-Struktur verwendet werden, sofern folgendes beachtet wird:

  • Es muss in dieser API immer ein Feld code geben, das von der Art Zeichenkette ist. Dieses Feld ist verpflichtend, eindeutig (unique) und darf keine leeren Werte enthalten (empty)
  • Es wird dringend empfohlen eine weitere Zeichenkette display anzulegen, die im CMS-Frontend zur Sprachauswahl1 verwendet wird - ist dieses Feld nicht vorhanden oder kein Wert angegeben, so wird code zur Auswahl verwendet

Ansonsten ist folgendes zu beachten bei der Benutzung bzw. Füllung der API mit Sprachen:

  • In die API werden die Sprachen eingefügt, welche für den Namensraum zu Verfügung stehen sollen
  • Dabei sollten im Feld code immer Standardkürzel für Sprachen verwendet werden, wie z.B. en, de oder fr - lediglich en hat im CMS eine besondere Bedeutung und wird als Rückfallsprache verwendet, eine Konsistenz hilft aber sicher beim Verständnis

Nach Anlegen der API und füllen dieser mit den Sprachen Deutsch, Englisch und Französisch über das CMS-Frontend sieht sie wie folgt aus im CMS-Frontend:

Screenshot API-View languages

Spätestens nach Reload der Webseite des CMS-Frontends (hier am Bsp. api1) erscheint die Sprachenauswahl:

Screenshot API-Element-View mit mehreren Sprachen

Verwendung der Mehrsprachigkeit in Datenstrukturen

Die alleinige Hinzufügung und Füllung der API languages zu einem Namensraum sorgt noch nicht dafür, dass tatsächlich Content (insbesondere, aber nicht ausschließlich, Texte) übersetzt werden bzw. tatsächlich in mehreren Sprachen im CMS vorliegen können. Um dies zu ermöglichen, muss das Attribut localizable gesetzt werden für entsprechende Felder in den API-Datenstrukturen, die übersetzbar sein sollen.

Falls das Attribut localizable gesetzt ist für einen Wert in einer Objektstruktur, dann wird im Protokoll anstatt diesem einen Wert eine Unter-Objektstruktur verwendet, bei der Name des Feldes eine erlaubte Sprache (e.g. en oder fr) ist und der Wert dem Format des Datentyps genügt:

{
"country-name": "Deutschland"
}

wird im Protokoll zu:

{
"country-name": {
"de": "Deutschland",
"en": "Germany",
"fr": "Allemagne"
}
}s

Footnotes

  1. Sobald für einen Namensraum die API languages existiert, erscheint in der Editieransicht von API-Elementen auch eine Sprachauswahl, über die festgelegt wird, für welche Sprache die jeweiligen Werte angezeigt oder editiert werden.