Texte übersetzen: Sprachdateien und der t-Filter
Wie die Sprachdateien aufgebaut sind, wie sie ausgewählt werden — und warum derzeit immer die Standardsprache gewinnt.
Für EntwicklerVoraussetzungen
- Recht: website:write
Sprachdateien liegen unter `locales/<code>.json`. Ein `.default` im Dateinamen wird beim Einlesen abgeschnitten: aus `de.default.json` wird der Schlüssel `de`.
Der Inhalt ist verschachteltes JSON, etwa `{"header":{"reserve":"Reservieren","menu":"Menü"},"footer":{"closed":"Geschlossen"}}`. Im Template greifen Sie darauf mit einem Punktpfad zu: `{{ "header.reserve" | t }}`.
Fehlt ein Eintrag, gibt der Filter den Schlüssel selbst zurück. Eine fehlende Übersetzung sieht man also im Ergebnis und muss nicht danach suchen.
Der ganze Inhalt der aktiven Sprachdatei steht zusätzlich als Objekt `locales` bereit, die Kennung der aktiven Sprache als `locale`.
Eine Einschränkung, die man kennen muss: Die Sprache wird beim Rendern derzeit NICHT aus der Anfrage übernommen. Gerendert wird immer mit der Standardsprache des Themes. Eine zweite Sprachdatei wird zwar eingelesen und lässt sich pflegen, kommt auf der veröffentlichten Seite aber nicht zum Zug.