Internationalisierung (i18n)
Starlight bietet eingebaute Unterstützung für mehrsprachige Seiten, einschließlich Routing, Fallback-Inhalte und vollständige Unterstützung von rechts-nach-links (RTL) Sprachen.
Konfiguriere i18n
-
Teile Starlight mit, welche Sprachen du unterstützt, indem du
locales
unddefaultLocale
an die Starlight Integration übergibst:Dein
defaultLocale
wird für Fallback-Inhalte und UI-Labels verwendet, wähle also die Sprache, in der du am ehesten mit dem Schreiben von Inhalten beginnen wirst oder für die du bereits Inhalte hast. -
Erstelle ein Verzeichnis für jede Sprache in
src/content/docs/
. Für die oben gezeigte Konfiguration erstellst du zum Beispiel die folgenden Verzeichnisse:Directorysrc/
Directorycontent/
Directorydocs/
Directoryar/
- …
Directoryen/
- …
Directoryzh/
- …
-
Du kannst nun Inhaltsdateien in deinen Sprachverzeichnissen hinzufügen. Verwende den gleichen Dateinamen, um Seiten in verschiedenen Sprachen zuzuordnen und nutze Starlights volle i18n-Funktionen, einschließlich Fallback-Inhalte, Übersetzungshinweise und mehr.
Erstelle zum Beispiel
ar/index.md
unden/index.md
, um die Homepage für Arabisch bzw. Englisch darzustellen.
Verwende ein Root-Verzeichnis
Du kannst ein Root-Verzeichnis verwenden, um eine Sprache ohne i18n-Präfix in ihrem Pfad anzubieten. Wenn zum Beispiel Englisch dein Stammverzeichnis ist, würde ein englischer Seitenpfad unter /about
anstelle von /en/about
zu finden sein.
Um ein Stammverzeichnis festzulegen, verwende den Key root
in deiner locales
-Konfiguration. Wenn das Root-Verzeichnis auch das Standard-Verzeichnis für deinen Inhalt ist, entferne defaultLocale
oder setze es auf 'root'
.
Wenn du ein root
-Verzeichnis verwendest, speichere die Seiten für diese Sprache direkt in src/content/docs/
, anstatt in einem speziellen Sprachordner. Zum Beispiel sind hier die Homepage-Dateien für Englisch und Chinesisch, wenn man die obige Konfiguration verwendet:
Directorysrc/
Directorycontent/
Directorydocs/
- index.md
Directoryzh/
- index.md
Einsprachige Seiten
Standardmäßig ist Starlight eine einsprachige (englische) Website. Um eine einsprachige Website in einer anderen Sprache zu erstellen, setze diese als root
in Ihrer locales
Konfiguration:
Dies ermöglicht es dir, die Standardsprache von Starlight zu überschreiben, ohne andere Internationalisierungsfunktionen für mehrsprachige Seiten zu aktivieren, wie z.B. die Sprachauswahl.
Fallback-Inhalt
Starlight erwartet, dass du äquivalente Seiten in allen deinen Sprachen erstellst. Wenn du zum Beispiel eine de/about.md
Datei hast, erstelle eine about.md
für jede andere Sprache, die du unterstützt. Dies ermöglicht Starlight, automatisch Ersatzinhalte für Websiten zu liefern, die noch nicht übersetzt wurden.
Wenn für eine Sprache noch keine Übersetzung verfügbar ist, zeigt Starlight den Lesern den Inhalt dieser Seite in der Standardsprache (eingestellt über defaultLocale
). Wenn du z.B. noch keine französische Version Ihrer “About”-Website erstellt hast und deine Standardsprache Englisch ist, werden Besucher von /fr/about
den englischen Inhalt von /en/about
sehen, mit einem Hinweis, dass diese Seite noch nicht übersetzt wurde. Auf diese Weise kannst du Inhalte in deiner Standardsprache hinzufügen und sie dann nach und nach übersetzen, wenn du Lust dazu hast.
Starlights UI übersetzen
Starlight bietet nicht nur übersetzte Inhaltsdateien, sondern auch die Möglichkeit, die Standard-Benutzeroberfläche zu übersetzen (z.B. die Überschrift “Auf dieser Seite” im Inhaltsverzeichnis), so dass deine Leser deine Website vollständig in der ausgewählten Sprache erleben können.
Englisch, Tschechisch, Französisch, Deutsch, Italienisch, Japanisch, Portugiesisch, Niederländisch, Dänisch, Spanisch, Türkisch, Arabisch, Norwegisch, Farsi, Hebräisch, Chinesisch (vereinfacht), Koreanisch, Indonesisch, Russisch, Schwedisch, Ukrainisch, Vietnamesisch und Galizisch werden standardmäßig übersetzt, und wir freuen uns über Beiträge zur Aufnahme weiterer Standardsprachen.
Du kannst Übersetzungen für zusätzliche Sprachen, die du unterstützt, über die i18n
Datensammlung zur Verfügung stellen - oder unsere Standardbezeichnungen überschreiben.
-
Konfiguriere die
i18n
Datensammlung insrc/content/config.ts
, wenn sie nicht bereits konfiguriert ist: -
Erstelle eine JSON-Datei in
src/content/i18n/
für jedes zusätzliche Gebietsschema, für das du UI-Übersetzungsstrings bereitstellen möchtest. Dies würde zum Beispiel Übersetzungsdateien für Arabisch und vereinfachtes Chinesisch hinzufügen:Directorysrc/
Directorycontent/
Directoryi18n/
- ar.json
- zh-CN.json
-
Füge Übersetzungen für die Schlüssel hinzu, die in den JSON-Dateien übersetzt werden sollen. Übersetze nur die Werte und belasse die Schlüssel auf Englisch (z.B.
"search.label": "Buscar"
).Dies sind die englischen Standardwerte der vorhandenen Strings, mit denen Starlight ausgeliefert wird:
Die Suchfunktion von Starlight wird von der Pagefind-Bibliothek unterstützt. Du kannst die Übersetzungen für Pagefinds UI in der gleichen JSON Datei mit
pagefind
-Schlüsseln setzen: