Mehrsprachige Inhalte
Diese Seite richtet sich an App-Entwickler, deren App Inhalte in mehr als einer Sprache zeigt. Sie erklärt, wie Exponential Sprachen benennt, wie Sie die APIs nach einer Sprache fragen und was mit Elementen geschieht, die nicht übersetzt sind.
Inhalt
- Wie Exponential Sprachen speichert
- Eine Sprache über REST lesen
- Die Sprachen der Website
- In einer Sprache schreiben
- Ersatzsprachen in der App
Wie Exponential Sprachen speichert
Jedes Objekt kann Übersetzungen in mehreren Inhaltssprachen enthalten und hat eine Hauptsprache. Sprachen werden mit
Locale-Codes wie eng-US, eng-GB, ger-DE, fre-FR, nor-NO benannt. Eine Website (ein Siteaccess) zeigt jedes
Objekt in der ersten Sprache ihrer SiteLanguageList[], die das Objekt hat; Objekte in keiner dieser Sprachen sind
ausgeblendet, sofern sie nicht „immer verfügbar“ sind
(Eine mehrsprachige Website bauen).
Eine Sprache über REST lesen
Ergänzen Sie Translation=<locale> bei einem Lesezugriff auf einen Knoten, ein Objekt oder ein Feld:
curl -s -H "Authorization: Bearer $EXP_API_KEY" \
"https://example.com/api/ezp/v2/content/node/<node id>?ResponseGroups=Fields&Translation=ger-DE"Der Controller setzt die aktive Sprache des Inhalts auf diese Locale, bevor er die Antwort aufbaut. Die links in der
Antwort tragen den Parameter weiter, sodass Sie in der Sprache bleiben, wenn Sie ihnen folgen. Drei Vorbehalte aus dem
Code:
- Der Parser übernimmt den Wert so, wie er kommt; ein Kommentar in
http_parser.phpvermerkt, dass die Locale noch nicht geprüft wird. Senden Sie nur Locales, die die Installation hat. - Die Route
listsetzt für ihre Unterknoten keine Sprache; deren Namen und Felder kommen in der Standardsprache. Derlinkjedes Unterknotens trägtTranslation, sodass ein Detail-Lesezugriff auf den Unterknoten in der richtigen Sprache erfolgt. - Ohne den Parameter wird die Sprache nach den Einstellungen der Installation für die Anfrage gewählt; prüfen Sie, was Ihre Installation liefert, bevor Sie sich darauf verlassen.
Die Sprachen der Website
| Dienst | Liefert | Zugriff |
|---|---|---|
explanguage::prioritized | die Sprachen des Siteaccess in Prioritätsreihenfolge | öffentlich |
explanguage::top | die erste davon | öffentlich |
explanguage::languages | jede Inhaltssprache mit der Anzahl der Objekte | öffentlich |
exptranslation::ofObject::<object id> | die Übersetzungen eines Objekts | content/read |
exptranslation::missing::<object id> | die Sprachen der Website, die einem Objekt fehlen | content/read |
expnode::names::<node id> | den Namen des Knotens in jeder Sprache | content/read |
Bauen Sie damit das Sprachmenü der App vom Server aus, statt einer Liste, die in die App kompiliert ist.
In einer Sprache schreiben
- Das Anlegen über REST braucht
languageLocale(Inhalte anlegen und entfernen). expnode::createundexpnode::updatenehmen ein POST-Feldlanguage.- Eine Übersetzung eines vorhandenen Elements, mit der eigenen Richtlinie
content/translate, istexptranslation::translate.
Ersatzsprachen in der App
- Ordnen Sie die Gerätesprache einer Locale zu, die die Website hat (
dezuger-DE); halten Sie die Zuordnung in der Konfiguration, nicht im Code. - Lesen Sie mit
Translation=<locale>. Kommt ein Feld leer zurück, während die Hauptsprache es hat, entscheiden Sie je Feld: die Hauptsprache mit einem Hinweis zeigen oder das Element ausblenden. - Speichern Sie je Locale zwischen: Derselbe Knoten in zwei Sprachen ergibt zwei Cache-Einträge (Caching in der App).
- Rechts-nach-links-Sprachen werden von den Inhalten in Exponential unterstützt; das Layout der App muss sich für sie spiegeln (Rechts-nach-links-Websites).
Verwandte Seiten
- Inhaltssprachen
- Sprachen in Exponential
- In mehreren Sprachen und Märkten verkaufen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.