Mit Internationalisierungs-Rewrites („i18n-Rewrites“) können Sie je nach Land oder bevorzugter Sprache eines Nutzers unterschiedliche Inhalte bereitstellen. Hier sind einige Beispiele für Konfigurationen, die Sie einrichten können:
Allen Nutzern, die Französisch bevorzugen, dieselben französischen Inhalte präsentieren (unabhängig vom Land).
Beispiel: Eine Startseite mit französischem TextNutzern, die Französisch bevorzugen, Inhalte in Standardfranzösisch bereitstellen, aber kanadischen Nutzern, die Französisch bevorzugen, stattdessen Inhalte in kanadischem Französisch.
Beispiel: eine Startseite mit Standard-Französisch im Vergleich zu einer Startseite mit kanadischem FranzösischAllen kanadischen Nutzern (unabhängig von ihrer bevorzugten Sprache) dieselben Inhalte präsentieren.
Beispiel: Eine Startseite mit der Standardsprache Ihrer Website, aber mit einer Funktion, die speziell auf Kanada ausgerichtet ist (z. B. ein Feiertagsthema)Kanadischen Nutzern, die Französisch bevorzugen, Inhalte auf Französisch (Kanada) bereitstellen:
Beispiel: Eine Startseite mit kanadisch-französischen Formulierungen und einer kanadaspezifischen Funktion (z. B. einem Feiertagsdesign)
Firebase Hosting ermittelt das Land eines Nutzers anhand seiner IP-Adresse und die Spracheinstellungen eines Nutzers anhand des Accept-Language
-Anfrageheaders (der in der Regel automatisch von seinem Webbrowser festgelegt wird).
i18n-Umschreibungen einrichten
Wenn Sie i18n-Rewrites für Ihre Hosting-Website einrichten möchten, müssen Sie ein Verzeichnis „i18n content“ für alle lokalisierten Inhalte erstellen und dann das Attribut i18n
in Ihre firebase.json
-Datei einfügen, um auf das neue Verzeichnis „i18n content“ zu verweisen.
So gehts:
Erstellen Sie im
public
-Ordner Ihres lokalen App-Verzeichnisses ein separates Verzeichnis für Ihre i18n-Inhalte und dann Unterordner für jede Sprach- und Länderkombination, die von Ihrer Website unterstützt wird.Fügen Sie in jedem Unterordner die Inhalte hinzu, die für die jeweilige Kombination spezifisch sind, z. B. Startseiten mit Feiertagsmotiven oder sprachspezifische 404-Fehlerseiten.
Hier ist ein Beispiel für ein Verzeichnis mit dem Namen
localized-files
, das i18n-Inhalte enthält:public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
Das Verzeichnis
localized-files/
enthält separate Unterordner für jede Sprach- und Länderkombination, die von Ihrer Website unterstützt wird. Das Benennungsmuster für jeden Unterordner muss einem der folgenden Formate entsprechen:languageCode_countryCode
: Enthält Inhalte, die speziell für Nutzer mit dieser Spracheinstellung und diesem Ländercode bestimmt sind.languageCode
: Enthält Inhalte, die speziell für Nutzer mit dieser Spracheinstellung bestimmt sind, aber nicht länderspezifisch sind. Entspricht im GrundelanguageCode_ALL
.
Weitere Informationen zu diesen Codes finden Sie unten im Unterabschnitt Länder- und Sprachcodes. Mit dem Wert von
ALL
(Groß-/Kleinschreibung beachten) können Sie ein beliebiges Land (z. B.es_ALL/
) oder eine beliebige Sprache (z. B.ALL_ca/
) angeben.Die Dateien in einem Unterordner müssen keine analogen Dateien im Verzeichnis
public
oder in anderen Unterordnern haben. Sie können Inhalte erstellen, die ausschließlich für eine bestimmte Sprache und/oder ein bestimmtes Land bestimmt sind.Fügen Sie das Attribut
i18n
zu Ihrerfirebase.json
-Datei hinzu und geben Sie das Verzeichnis an, das Ihre „i18n-Inhalte“ enthält. Fortsetzung unseres Beispiels:// firebase.json "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "i18n": { "root": "/localized-files" // directory that contains your "i18n content" } ... }
Das für
root
angegebene Verzeichnis muss der Name des Verzeichnisses sein, das alle Ihre Unterordner mit internationalisierten Inhalten enthält. Wenn Sie alle Ihre Unterordner für die Internationalisierung von Inhalten im Stammverzeichnis Ihrespublic
-Verzeichnisses platziert haben, verwenden Sie/
für den Wert vonroot
. Voran- und nachgestellte Schrägstriche imroot
-Wert sind optional.Stellen Sie Ihre „i18n content“- und Konfigurationsdateien auf Ihrer Hosting-Website bereit.
Sie können Ihre Einrichtung mit Cookie-Überschreibungen testen.
Länder- und Sprachcodes
Beim Benennen von Unterordnern für „i18n-Inhalte“ müssen Sie sowohl für Länder- als auch für Sprachcodes Kleinbuchstaben verwenden. Mit dem Wert von ALL
(Groß- und Kleinschreibung beachten) können Sie ein beliebiges Land (z. B. es_ALL/
) oder eine beliebige Sprache (z. B. ALL_ca/
) angeben.
Hosting ruft den Ländercode anhand der IP-Adresse des Nutzers ab. Ländercodes sind zweistellige ISO 3166-1-Alpha-2-Codes.
Die Sprachcodes werden aus dem Anfrageheader Accept-Language
des Nutzers abgerufen (in der Regel automatisch vom Webbrowser festgelegt).
Es handelt sich um ISO 639-1-Codes.
Beachten Sie bei der Verwendung von Sprachcodes Folgendes:
Bei der Suche nach „i18n-Inhalten“ für Hosting werden die Sprachen anhand der Qualitätswerte im
Accept-Language
-Header sortiert.Bei Hosting werden alle regionalen und länderspezifischen Untertags in der
Accept-Language
-Kopfzeile entfernt. Der Sprachcode in einem Unterordnernamen vom Typ „i18n content“ darf diese Untertags also nicht enthalten. Sie können beispielsweisees-419
oderes-US
nicht als Sprachcode in einem Unterordnernamen verwenden, aberes
.Wenn Sie bestimmte regionale oder länderspezifische Inhalte bereitstellen möchten, können Sie Unterordner erstellen, die die entsprechenden Sprach- und Länderinhalte enthalten.
Prioritätsreihenfolge für „i18n content“
Wenn Sie i18n-Umschreibungen einrichten, stellt Hosting Inhalte in der folgenden Prioritätsreihenfolge bereit:
Reservierte Namespaces, die mit einem
/__/*
-Pfadsegment beginnenKonfigurierte Weiterleitungen
Statische Inhalte mit exakter Übereinstimmung
Sprachcode + Ländercode (z. B. Inhalte aus
fr_ca/
)
Die Reihenfolge richtet sich nach den Qualitätswerten für jede Sprache imAccept-Language
-Header der Anfrage.Nur Ländercode (z. B. Inhalte aus
ALL_ca/
)Nur Sprachcode (z. B. Inhalte aus
fr/
oderes_ALL/
)
Die Reihenfolge richtet sich nach den Qualitätswerten für jede Sprache im HeaderAccept-Language
der Anfrage.Statische Inhalte mit exakter Übereinstimmung (Standard)
Das sind Inhalte, die sich außerhalb des Verzeichnisses „i18n content“ befinden, z. B. im Stammverzeichnis despublic
-Verzeichnisses.
Konfigurierte Rewrites
404-Fehlerbehandlung
i18n-404-Seiten
Hier gilt dieselbe Prioritätsreihenfolge wie oben für statische Inhalte mit genauem Abgleich.Standardmäßige 404-Seite (von Firebase bereitgestellt)
Beispiel für die Prioritätsreihenfolge
Fahren wir mit unserem Beispiel von oben fort. Wir verwenden dasselbe Beispielverzeichnis und eine Beispielanfrage.
Beispiel für ein lokales Projektverzeichnis mit einem Verzeichnis für internationalisierte Inhalte (
localized-files
)public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
Beispiel für Anfrageinformationen
Sprachcodes:
fr
,en
(Französisch, dann Englisch)
Die Sprachcodes sind nach Qualitätswerten imAccept-Language
-Header sortiert.Ländercode:
ca
(Kanada)
Gemäß der Prioritätsreihenfolge für genau passende Sprachen und den Qualitätswerten für die Spracheinstellungen sucht Hosting in den Verzeichnissen in der folgenden Reihenfolge nach einer angeforderten Seite.
public/localized-files/fr_ca/
public/localized-files/en_ca/
public/localized-files/ALL_ca/
public/localized-files/fr_ALL/
public/localized-files/fr/
public/localized-files/en_ALL/
public/localized-files/en/
public/
404-Fehlerbehandlung
Welche Seite wird dem Nutzer präsentiert?
Angefragte Seite:
index.html
Angefragte Seite:
awesome-page.html
Beachten Sie bei dieser Suche und Bereitstellung des Verzeichnisses „i18n content“ Folgendes:
Das Verzeichnis
localized-files/
enthält nicht die Unterordneren_ca/
,en_ALL/
oderen/
. Hosting überspringt daher einfach die Prioritätsliste, bis ein passender Unterordner für die Sprach-Länder-Kombination der Anfrage gefunden wird.Obwohl das Verzeichnis
localized-files/
einen Unterordneres_ALL/
enthält, ist im obigen Beispiel für eine Anfrage kein Sprachcodees
oderes-foo
enthalten. Daher sucht Hosting nicht nach „i18n content“, der mites
übereinstimmt.Die Unterordner
fr/
undfr_ALL/
sind aus Sicht der Länder- und Spracheinstellungen eines Nutzers gleichwertig. Wenn jedoch beide Unterordner vorhanden sind, werden über Hosting zuerst die Inhalte vonfr_ALL/
und dann die Inhalte vonfr/
bereitgestellt.
Sprach- und Ländercodes mit Cookies überschreiben
Sie können ändern, welche Inhalte bereitgestellt werden, indem Sie mit Cookies die Länder- und Sprachheader überschreiben.
Hier einige Beispiele für die Verwendung von Cookie-Überschreibungen:
Testen Sie eine Funktion mit verschiedenen Sprach-/Länderkombinationen, um zu prüfen, welche Inhalte bereitgestellt werden.
Ermöglichen Sie Ihren Nutzern, die angezeigten Inhalte zu ändern. Sie können beispielsweise eine Sprachauswahl implementieren und das
firebase-language-override
-Cookie des Nutzers entsprechend festlegen.
Wenn Sie Cookie-Überschreibungen konfigurieren möchten, legen Sie Cookies mit einem oder beiden der folgenden Namen fest: firebase-country-override
und firebase-language-override
. Mit dem folgenden JavaScript-Code-Snippet wird beispielsweise der Ländercode auf ca
und der Accept-Language
-Header auf fr,en
überschrieben:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
Sprach-Cookie-Überschreibungen müssen eine kommagetrennte Liste von Sprachcodes in der Reihenfolge der Präferenz sein, ohne Untertags oder Qualitätswerte.
Cookie-Überschreibungen werden nicht in Logs erfasst.