Überschreibungen der Internationalisierung (i18n) konfigurieren

Internationalisierungsüberschreibungen („i18n-Umschreibungen“) verwenden, um unterschiedliche Inhalte bereitzustellen je nach Land oder bevorzugter Sprache des Nutzers. Hier einige Beispiele: Konfigurationen, die Sie einrichten könnten:

  • allen Nutzern, die Französisch bevorzugen, dieselben französischen Inhalte des Landes).
    Beispiel: eine Startseite mit französischem Text

  • Bieten Sie Nutzern, die Französisch bevorzugen, Inhalte in Standardfranzösisch an. Kanada-Nutzer, die Französisch bevorzugen, erhalten stattdessen Inhalte in kanadischem Französisch.
    Beispiel: eine Startseite mit französischer Standardformulierung im Vergleich zu einer Startseite mit Formulierung im kanadischen Französisch

  • allen Nutzern in Kanada die gleichen Inhalte zur Verfügung stellen (unabhängig von deren Spracheinstellung).
    Beispiel: eine Startseite mit der Standardeinstellung Ihrer Website Sprache, aber mit einer Funktion für Kanada (z. B. Feiertagsdesign)

  • Inhalte für kanadische Nutzer, die Französisch bevorzugen, bereitstellen
    Beispiel: eine Startseite mit Formulierungen in kanadischem Französisch und einer kanadischen Funktion (z. B. ein Feiertagsthema)

Firebase Hosting ermittelt das Land eines Nutzers anhand seiner IP-Adresse und einer Spracheinstellungen des Nutzers aus dem Accept-Language-Anfrageheader (in der Regel automatisch über den Webbrowser festgelegt).

i18n-Umschreibungen einrichten

Um i18n-Umschreibungen für Ihre Hosting-Website einzurichten, müssen Sie eine Inhalt“ für alle Ihre lokalisierten Inhalte ein und fügen Sie dann das Attribut i18n hinzu auf Ihre firebase.json-Datei, um auf Ihren neuen „i18n-Inhalt“ zu verweisen -Verzeichnis.

So gehts:

  1. Erstellen Sie im Ordner public Ihres lokalen App-Verzeichnisses ein separates Verzeichnis für Ihren „i18n-Inhalt“, erstellen Sie dann Unterordner für jede Sprache und Länderkombination, die von Ihrer Website unterstützt werden.

    Fügen Sie in jedem Unterordner die für diese Kombination spezifischen Inhalte hinzu, z. B. Startseiten mit saisonalen Themen oder sprachspezifische 404-Seiten.

    Hier ist ein Beispiel für einen „i18n-Inhalt“ Verzeichnis namens 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

    Das Verzeichnis localized-files/ enthält separate Unterordner für jede Kombination aus Sprache und Land, die von Ihrer Website unterstützt wird. Das Benennungsmuster muss für jeden Unterordner eines der folgenden Formate haben:

    • languageCode_countryCode: enthält für Nutzer spezifische Inhalte mit dieser Spracheinstellung und diesem Ländercode

    • languageCode: Enthält Inhalte, die speziell für Nutzer gedacht sind, die Spracheinstellungen, aber die Inhalte sind nicht landesspezifisch im Grunde entspricht languageCode_ALL

    Weitere Informationen zu diesen Codes finden Sie unten im Abschnitt Länder- und Sprachcodes. Sie können den Wert von ALL verwenden. (Groß-/Kleinschreibung beachten) zur Angabe von beliebigem Land (z. B. es_ALL/) oder any Sprache (z. B. ALL_ca/).

    Die Dateien in einem Unterordner müssen im public keine entsprechenden Dateien haben Verzeichnis oder anderen Unterordnern. Sie können Inhalte erstellen, die die für eine bestimmte Sprache und/oder ein bestimmtes Land gelten.

  2. Fügen Sie der Datei firebase.json das Attribut i18n hinzu und geben Sie das Attribut das Ihre „i18n-Inhalte“ enthält. Fortsetzung des 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 enthält alle Ihre „i18n-Inhalte“ Unterordner. Wenn Sie alle Ihre „i18n Inhalte“ Unterordner im Stammverzeichnis Ihres public-Verzeichnisses verwenden Sie / für den Wert root. Voran- und nachgestellte Schrägstriche im Wert root sind optional.

  3. i18n-Inhalte bereitstellen und config zu Ihrer Hosting-Website hinzufügen.

Sie können Ihre Einrichtung mithilfe von Cookie-Überschreibungen testen.

Länder- und Sprachcodes

Achten Sie beim Benennen von Unterordnern unter „i18n-Inhalte“ darauf, dass sowohl Länder- als auch Sprachcodes in Kleinbuchstaben geschrieben werden. Sie können den Wert ALL (Groß- und Kleinschreibung beachten) verwenden, um ein beliebiges Land (z. B. es_ALL/) oder eine beliebige Sprache (z. B. ALL_ca/) anzugeben.

Hosting ruft den Ländercode aus der IP-Adresse des Nutzers ab. Ländercodes sind zweistellige ISO 3166-1 alpha-2-Codes.

Die Sprachcodes stammen aus dem Accept-Language-Anfrageheader des Nutzers (normalerweise automatisch über den Webbrowser festgelegt) werden. Dabei handelt es sich um ISO 639-1-Codes. Beachten Sie bei der Verwendung von Sprachcodes Folgendes:

  • Wenn Hosting nach den „i18n-Inhalten“ sucht, die ausgeliefert werden sollen, werden die Sprachen anhand der Qualitätswerte im Accept-Language-Header sortiert.

  • Hosting löscht alle regionalen und länderspezifischen Subtags in Accept-Language sodass der Sprachcode in einem "i18n-Inhalt" Unterordnername darf nicht diese Subtags enthalten. Sie können z. B. nicht es-419 oder es-US als Sprachcode in den Namen eines Unterordners ein. Sie können jedoch es verwenden.

    Wenn Sie für bestimmten regionalen oder länderspezifischen Content werben möchten, können Sie Unterordner mit den sprach- bzw. landesspezifischen Inhalten, die Sie speichern möchten. Support.

Prioritätsreihenfolge für „i18n-Inhalte“

Wenn Sie i18n-Umschreibungen einrichten, liefert Hosting Inhalte basierend auf den folgenden Prioritätsreihenfolge:

  1. Reservierte Namespaces, die mit einem Pfadsegment /__/* beginnen

  2. Konfigurierte Weiterleitungen

  3. Statische Inhalte mit exakter Übereinstimmung

    1. Sprach- und Ländercode (z. B. Inhalte aus fr_ca/)
      Die Reihenfolge folgt den Qualitätswerten für jede Sprache in der Accept-Language-Header.

    2. Nur Ländercode (z. B. Inhalte aus ALL_ca/)

    3. Nur Sprachcode (z. B. Inhalte aus fr/ oder es_ALL/)
      Die Reihenfolge folgt den Qualitätswerten für jede Sprache in der Accept-Language-Header.

    4. „Standard“ Statischer Inhalt „genau passend“
      Das sind Inhalte außerhalb des i18n-Inhalts wie im Verzeichnis Stammverzeichnis des public-Verzeichnisses.

  4. Konfigurierte Umschreibungen

  5. Umgang mit 404-Fehlern

    1. i18n 404-Seiten
      Dies entspricht der oben aufgeführten Prioritätsreihenfolge für „Genau passend“. statische Inhalte.

    2. Benutzerdefinierte 404-Seite

    3. Standard-404-Seite (von Firebase bereitgestellt)

Beispiel für die Reihenfolge der Priorität

Fahren wir mit dem obigen Beispiel fort. Wir verwenden dasselbe Beispielverzeichnis und eine Beispielanfrage.

  • Beispiel für ein lokales Projektverzeichnis mit „i18n-Inhalt“ Verzeichnis (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 in der Accept-Language-Header.

    • Ländercode: ca (Kanada)

Entsprechend der Prioritätsreihenfolge bei genau passender Übereinstimmung und den Qualitätswerten für die Spracheinstellungen aktiviert, sucht Hosting in den Verzeichnissen nach einer angeforderten Seite in der folgenden Reihenfolge an.

  1. public/localized-files/fr_ca/

  2. public/localized-files/en_ca/

  3. public/localized-files/ALL_ca/

  4. public/localized-files/fr_ALL/

  5. public/localized-files/fr/

  6. public/localized-files/en_ALL/

  7. public/localized-files/en/

  8. public/

  9. Umgang mit 404-Fehlern

Welche Seite wird dem Nutzer präsentiert?

  • Angeforderte Seite: index.html

  • Angeforderte Seite: awesome-page.html

Beachten Sie Folgendes zu diesem Search-and-Serve des I18n-Inhalts Verzeichnis:

  • Das Verzeichnis localized-files/ enthält nicht en_ca/, en_ALL/ oder en/, sodass Hosting die Prioritätsliste hinzufügen, bis ein passender Unterordner für die Anfrage die Kombination aus Land und Sprache.

  • Das Verzeichnis localized-files/ enthält zwar ein es_ALL/-Objekt, Unterordner enthält, enthält die Beispielanfrage oben weder es noch es-foo Sprachcode eingeben, sodass Hosting nicht nach "i18n content" sucht das entspricht es.

  • Die Unterordner fr/ und fr_ALL/ sind aus Sicht von die Länder- und Spracheinstellungen der Nutzenden. Wenn jedoch beide Unterordner vorhanden ist, liefert Hosting fr_ALL/-Inhalte vor fr/-Inhalten.

Du kannst ändern, welche Inhalte bereitgestellt werden, indem du Cookies verwendest, um das Land zu überschreiben und Sprachüberschriften.

Hier sind einige Möglichkeiten, wie Sie Cookie-Überschreibungen verwenden können:

  • Testen Sie eine Funktion mit verschiedenen Kombinationen aus Sprache und Land, um zu ermitteln, Content ausgeliefert wird.

  • Nutzern ermöglichen, die für sie angezeigten Inhalte zu ändern So können Sie zum Beispiel eine Sprachauswahl implementieren und dann firebase-language-override.

Um Cookie-Überschreibungen zu konfigurieren, setzen Sie Cookies mit beiden oder einem dieser Namen: firebase-country-override und firebase-language-override. Beispiel: überschreibt das folgende JavaScript-Code-Snippet den Ländercode mit ca und den Accept-Language-Header in fr,en ein:

document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";

Sprach-Cookie-Überschreibungen müssen eine durch Kommas getrennte Liste von Sprachcodes in ohne Subtags oder Qualitätswerte.

Cookie-Überschreibungen werden in Protokollen nicht angezeigt.