Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Überarbeitungen der Internationalisierung (i18n) konfigurieren

Verwenden Sie Internationalisierungsumschreibungen ("i18n-Umschreibungen"), um je nach Land oder bevorzugter Sprache des Benutzers unterschiedliche Inhalte bereitzustellen. Hier sind einige Beispielkonfigurationen, die Sie einrichten könnten:

  • Dienen dem gleichen Französisch Inhalt an alle Benutzer , die Französisch bevorzugen (unabhängig vom Land).
    Beispiel: eine Homepage mit französischem Text

  • Serve Französisch Standard Inhalt an Benutzer , die Französisch bevorzugen, aber für kanadische Benutzer , die Französisch bevorzugen, dienen Kanadisches Französisch Inhalt statt.
    Beispiel: eine Startseite mit französischer Standardformulierung im Vergleich zu einer Startseite mit kanadisch-französischer Formulierung

  • Servieren Sie den gleichen Inhalt an alle Benutzer in Kanada (unabhängig von ihrer bevorzugten Sprache).
    Beispiel: eine Startseite mit der "Standard"-Sprache Ihrer Website, aber mit einer kanadaspezifischen Funktion (z. B. einem Urlaubsthema)

  • Kanadischen Benutzern, die Französisch bevorzugen, kanadischen französischen Inhalt bereitstellen.
    Beispiel: eine Homepage mit kanadisch-französischer Formulierung und einem kanadaspezifischen Feature (wie einem Urlaubsthema)

Firebase Hosting bestimmt Land eines Benutzers aus ihrer IP - Adresse und eine Spracheinstellung des Benutzers aus den Accept-Language - Request - Header ( in der Regel automatisch von ihrem Web - Browser eingestellt ).

i18n-Rewrites einrichten

Um i18n Schreibungen für Ihre Hosting - Website einrichten, benötigen Sie ein „i18n content“ Verzeichnis für alle lokalisierten Inhalte zu erstellen, fügen Sie dann das i18n - Attribut auf Ihre firebase.json Datei zu Punkt zu Ihrem neuen „i18n content“ Verzeichnis.

Hier sind die detaillierten Schritte:

  1. Innerhalb Ihres lokalen App - Verzeichnisses public Ordner, macht ein separates Verzeichnis für Ihren „i18n Inhalt“, dann erstellen Sie Unterordner für jede Sprache und Land Kombination von Ihrer Website unterstützt.

    Fügen Sie in jedem Unterordner den Inhalt hinzu, der für diese Kombination spezifisch ist, z. B. Homepages mit Urlaubsthemen oder sprachspezifische 404-Seiten.

    Hier ist ein Beispiel „i18n content“ Verzeichnis mit dem Namen 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 localized-files/ Verzeichnis enthält separate Unterordner für jede Sprache und Land Kombination von Ihrer Website unterstützt. Das Benennungsmuster für jeden Unterordner muss einem der folgenden Formate entsprechen:

    • languageCode_countryCode : Enthält Inhalte spezifisch für Benutzer, die diese Sprache Vorlieben und das Land Code haben

    • languageCode : Enthält Inhalte spezifisch für Benutzer, die diese Sprache Präferenz haben, aber der Inhalt ist nicht länderspezifisch; im Grunde äquivalent zu languageCode_ALL

    Siehe den Absatz Land- und Sprachcodes unten für weitere Informationen über diese Codes. Sie können den Wert verwenden ALL (case-sensitive) jedes Land , um anzuzeigen (wie es_ALL/ ) oder eine beliebige Sprache (wie ALL_ca/ ).

    Die Dateien in einem Unterordner brauchen nicht analog Dateien im haben public Verzeichnis oder einem anderen Unterordner. Sie können Inhalte erstellen, die sich ausschließlich auf eine Sprache und/oder ein Land beziehen.

  2. Fügen Sie das i18n - Attribut auf Ihre firebase.json Datei und das Verzeichnis angeben , dass Ihre „i18n Inhalt“ 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 Verzeichnis für bestimmte root muss der Name des Verzeichnisses, das alle Ihre „i18n Inhalt“ Unterordner enthält. Wenn Sie platziert alle „i18n Inhalt“ Unterordner an der Wurzel der public Verzeichnisses, Verwendung / für den Wert der root . Führende und folgende Schrägstriche in den root sind optional.

  3. Stellen Sie Ihre "i18n-Inhalte" bereit und konfigurieren Sie sie auf Ihrer Hosting-Site.

Sie können Ihre Einstellungen unter Verwendung von Test Cookie überschreibt .

Länder- und Sprachcodes

Bei der Benennung von "i18n content"-Unterordnern müssen Sie sowohl für die Länder- als auch für die Sprachcodes Kleinbuchstaben verwenden. Sie können den Wert verwenden ALL (case-sensitive) jedes Land , um anzuzeigen (wie es_ALL/ ) oder eine beliebige Sprache (wie ALL_ca/ ).

Das Hosting erhält den Ländercode aus der IP-Adresse des Benutzers. Ländercodes sind aus zwei Buchstaben bestehenden ISO 3166-1 alpha-2 - Codes .

Die Sprachcodes sind von den Benutzern erhalten Accept-Language - Request - Header ( in der Regel automatisch von ihrem Web - Browser eingestellt ). Sie sind ISO 639-1 Codes . Beachten Sie bei der Verwendung von Sprachcodes Folgendes:

  • Wenn Hosting sucht nach der „i18n Inhalt“ zu dienen, ordnet er die auf den Qualitätswerten basierten Sprachen in den Accept-Language - Header.

  • Hosting löscht alle regionale und nationale Unter - Tags in den Accept-Language - Header, so dass der Sprachcode in einem „i18n Inhalt“ Unterordner Namen nicht diese Unter - Tags enthalten. Zum Beispiel können Sie nicht verwenden , es-419 oder es-US als Sprachcode in einem Unterordner Namen, aber Sie können verwenden es .

    Wenn Sie bestimmte regionale oder länderspezifische Inhalte bereitstellen möchten, können Sie Unterordner erstellen, die die spezifischen sprach- und länderspezifischen Inhalte enthalten, die Sie unterstützen möchten.

Prioritätsreihenfolge für "i18n-Inhalte"

Wenn Sie i18n-Rewrites einrichten, stellt Hosting Inhalte basierend auf der folgenden Prioritätsreihenfolge bereit:

  1. Reservierte Namensräume , die mit einem Anfang /__/* Wegsegment

  2. konfiguriert Umleitungen

  3. Genau passender statischer Inhalt

    1. Sprachcode + Ländercode (zB Gehalt von fr_ca/ )
      Die Reihenfolge folgt die Qualitätswerte für jede Sprache in der Anforderung Accept-Language - Header.

    2. Ländercode nur (zum Beispiel Inhalte von ALL_ca/ )

    3. Sprachcode nur (zum Beispiel Inhalte von fr/ oder es_ALL/ )
      Die Reihenfolge folgt die Qualitätswerte für jede Sprache in der Anforderung Accept-Language - Header.

    4. "Standardmäßiger" genau passender statischer Inhalt
      Dies ist Inhalt, der außerhalb des „i18n content“ Verzeichnis ist, wie an der Wurzel des public Verzeichnis.

  4. konfiguriert Neufassungen

  5. 404 Handhabung

    1. i18n 404 Seiten
      Dies folgt der gleichen Prioritätsreihenfolge, die oben für genau passende statische Inhalte aufgeführt ist.

    2. Benutzerdefinierte 404 - Seite

    3. 404-Standardseite (von Firebase bereitgestellt)

Beispiel für Prioritätsreihenfolge

Setzen wir unser Beispiel von oben fort. Wir verwenden dasselbe Beispielverzeichnis und eine Beispielanfrage.

  • Beispiel lokale Projektverzeichnis mit einem „i18n content“ Verzeichnis ( so genannte 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
    
  • Beispielanfrageinformationen

    • Sprachcodes: fr , en (Französisch, dann Englisch)
      Die Sprachcodes basieren auf Qualitätswerte in der geordneten Accept-Language - Header.

    • Ländercode: ca (Canada)

Entsprechend der exakt passenden Prioritätsreihenfolge und den Qualitätswerten für die Spracheinstellungen durchsucht Hosting die Verzeichnisse nach einer angeforderten Seite in der folgenden Reihenfolge.

  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. 404 Handhabung

Welche Seite wird dem Benutzer angezeigt?

  • Angeforderte Seite: index.html

  • Angeforderte Seite: awesome-page.html

Beachten Sie Folgendes zu dieser Suche und Bereitstellung des Verzeichnisses "i18n content":

  • Das localized-files/ Verzeichnis eigentlich nicht enthält en_ca/ , en_ALL/ oder en/ Unterordner, so Hosting wird überspringen Sie einfach die Prioritätenliste , bis einen passenden Unterordner für den Sprache-Land - Kombination Wunsch findet.

  • Auch wenn die localized-files/ Verzeichnis enthält ein es_ALL/ Unterordner, über das Beispiel Anfrage enthält keine es oder es-foo Sprachcode wird so Hosting nicht für „i18n Inhalte“ , die Übereinstimmungen suchen es .

  • Unterordner namens fr/ und fr_ALL/ äquivalent sind aus der Perspektive eines Landes und Spracheinstellungen des Benutzers. Wenn jedoch beide Unterordner vorhanden sind , Hosting dienen fr_ALL/ Inhalt vor fr/ Inhalt.

Sie können ändern, welche Inhalte bereitgestellt werden, indem Sie Cookies verwenden, um die Länder- und Sprachheader zu überschreiben.

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

  • Testen Sie eine Funktion mit verschiedenen Sprach-/Länderkombinationen, um zu überprüfen, welche Inhalte bereitgestellt werden.

  • Ermöglichen Sie Ihren Benutzern, die angezeigten Inhalte zu ändern. Zum Beispiel können Sie eine Sprache Picker implementieren, dann die des Benutzers eingestellt firebase-language-override Cookie entsprechend.

So konfigurieren Sie Cookie - Überschreibungen, Set Cookies mit beiden oder einem dieser Namen: firebase-country-override und firebase-language-override . Zum Beispiel wird die folgende JavaScript - Code - Snippet überschreibt der Ländercode ca und der Accept-Language - Header seinen fr,en :

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

Überschreibungen von Sprachcookies müssen eine durch Kommas getrennte Liste von Sprachcodes in bevorzugter Reihenfolge ohne Untertags oder Qualitätswerte sein.

Cookie-Überschreibungen werden in Protokollen nicht widergespiegelt.