Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。
このページは Cloud Translation API によって翻訳されました。
Switch to English

国際化(i18n)の書き換えを構成する

国際化リライト(「i18nリライト」)を使用して、ユーザーの国または優先言語に応じて異なるコンテンツを提供します。ここでは、設定することができることを、いくつかの設定例は以下のとおりです。

  • フランス語を好むすべてのユーザーに同じフランス語のコンテンツを提供ます(国に関係なく)。
    例:フランス語のテキストを含むホームページ

  • フランス語を好むユーザーには標準フランス語コンテンツを提供しますが、フランス語を好むカナダのユーザーには、代わりにカナダフランス語コンテンツを提供します。
    例:標準フランス語フレージングのホームページとカナダフランス語フレージングのホームページ

  • カナダのすべてのユーザーに同じコンテンツを提供します(言語の好みに関係なく)。
    例:サイトの「デフォルト」言語とが、(休日のテーマのような)カナダ特有の機能を備えたホームページ

  • フランス語を好むカナダのユーザーにカナダフランス語のコンテンツを提供します。
    例:フランス語(カナダ)のフレージングと(休日のテーマのような)カナダ特有の機能を備えたホームページ

Firebase Hostingは、IPアドレスからユーザーの国を決定し、 Accept-Languageリクエストヘッダー(通常はウェブブラウザによって自動的に設定されます)からユーザーの言語設定を決定します。

i18nリライトを設定する

ホスティングサイトのi18n書き換えを設定するには、ローカライズされたすべてのコンテンツに対して「i18nコンテンツ」ディレクトリを作成してから、 firebase.jsonファイルにi18n属性を追加して、新しい「i18nコンテンツ」ディレクトリを指すようにする必要があります。

詳細な手順は次のとおりです。

  1. ローカルアプリディレクトリのpublicフォルダ内に、「i18nコンテンツ」用に個別のディレクトリを作成し、サイトでサポートされている言語と国の組み合わせごとにサブフォルダを作成します。

    各サブフォルダーに、休日をテーマにしたホームページや言語固有の404ページなど、その組み合わせに固有のコンテンツを追加します。

    これはlocalized-filesと呼ばれる「i18ncontent」ディレクトリの例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
    

    localized-files/ディレクトリには、サイトでサポートされている言語と国の組み合わせごとに個別のサブフォルダが含まれています。各サブフォルダーの命名パターンは、次のいずれかの形式に従う必要があります。

    • languageCode_countryCode :その言語設定その国コードを持つユーザーに固有のコンテンツが含まれています

    • languageCode :その言語設定を持つユーザーに固有のコンテンツが含まれていますが、コンテンツは国固有ではありません。基本的にlanguageCode_ALLと同等

    これらのコードの詳細については、以下のサブセクション「国および言語コード」を参照してください。 ALL (大文字と小文字を区別)の値を使用して、任意の国( es_ALL/ )または任意の言語( ALL_ca/ )を指定できます。

    サブフォルダー内のファイルは、 publicディレクトリまたは他のサブフォルダー内に類似のファイルを持っている必要はありません。あなたは、言語および/または国に完全に特定されたコンテンツを作成することができます。

  2. i18n属性をfirebase.jsonファイルに追加し、「i18nコンテンツ」を含むディレクトリを指定します。例を続ける:

    // firebase.json
    
    "hosting": {
    
      "public": "public",
    
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
    
      "i18n": {
        "root": "/localized-files"  // directory that contains your "i18n content"
      }
    
      ...
    }
    

    root指定するディレクトリは、すべての「i18nコンテンツ」サブフォルダを含むディレクトリの名前である必要があります。すべての「i18ncontent」サブフォルダをpublicディレクトリのrootした場合は、 rootの値に/を使用します。 root値の先頭と末尾のスラッシュはオプションです。

  3. 「i18nコンテンツ」と設定をホスティングサイトにデプロイします。

Cookieのオーバーライドを使用してセットアップをテストできます

国と言語コード

「国際化コンテンツ」サブフォルダに名前を付けるときは、国と言語コードの両方に小文字を使用する必要があります。あなたは、の値を使用することができALL (のような任意の国を示すために(大文字と小文字を区別)をes_ALL/または(のような任意の言語) ALL_ca/ )。

ホスティングは、ユーザーのIPアドレスから国コードを取得します。国コードは、2文字のISO 3166-1alpha-2コードです。

言語コードは、ユーザーのAccept-Languageリクエストヘッダーから取得されます(通常、Webブラウザーによって自動的に設定されます)。それらはISO639-1コードです。言語コードを使用するときは、次の点に注意してください。

  • ホスティングは、提供する「i18nコンテンツ」を検索するときに、 Accept-Languageヘッダーの品質値に基づいて言語をAccept-Languageます。

  • ホスティングは、のいずれかの地域や国サブタグ低下しAccept-Language 「国際化コンテンツ」サブフォルダ名に言語コードは、これらのサブタグを含めることはできませんので、ヘッダを。たとえば、サブフォルダ名の言語コードとしてes-419またはes-USを使用することはできませんが、 esを使用することはできます。

    あなたが特定の地域や国、コンテンツを提供したい場合は、あなたがサポートする特定の言語 - 国のコンテンツを含むサブフォルダを作成することができます。

「i18nコンテンツ」の優先順位

i18nリライトを設定した場合、ホスティングは次の優先順位に基づいてコンテンツを提供します。

  1. /__/*パスセグメントで始まる予約済み名前空間

  2. 構成されたリダイレクト

  3. 完全一致の静的コンテンツ

    1. 言語コード+国コード(たとえば、 fr_ca/コンテンツ)
      順序は、リクエストのAccept-Languageヘッダーの各言語の品質値に従います。

    2. 国コードのみ(たとえば、 ALL_ca/コンテンツ)

    3. 言語コードのみ(たとえば、 fr/またはes_ALL/コンテンツ)
      順序は、リクエストのAccept-Languageヘッダーの各言語の品質値に従います。

    4. 「デフォルト」の完全一致静的コンテンツ
      これは、 publicディレクトリのルートなど、「i18ncontent」ディレクトリの外部にあるコンテンツです。

  4. 構成された書き換え

  5. 404処理

    1. i18n404ページ
      これは、完全一致の静的コンテンツについて上記と同じ優先順位に従います。

    2. カスタム404ページ

    3. デフォルトの404ページ(Firebaseが提供)

優先順位の例

上から例を続けましょう。同じサンプルディレクトリとサンプルリクエストを使用します。

  • 「i18ncontent」ディレクトリ( 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
    
  • リクエスト情報の例

    • 言語コード: fren (フランス語、次に英語)
      言語コードは、 Accept-Languageヘッダーの品質値に基づいて並べ替えられます。

    • 国コード: ca (カナダ)

完全一致の優先順位と言語設定の品質値に従って、ホスティングは次の順序で要求されたページのディレクトリを検索します。

  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処理

どのページがユーザーに提供されますか?

  • リクエストされたページ: index.html

  • リクエストされたページ: awesome-page.html

「i18ncontent」ディレクトリのこの検索と提供については、次の点に注意してください。

  • localized-files/ディレクトリには実際にはen_ca/en_ALL/ 、またはen/サブフォルダが含まれていないため、ホスティングはリクエストの言語と国の組み合わせに一致するサブフォルダが見つかるまで優先度リストをスキップします。

  • localized-files/ディレクトリにes_ALL/サブフォルダが含まれていても、上記のリクエスト例にはesまたはes-foo言語コードが含まれていないため、ホスティングはes一致する「i18nコンテンツ」を検索しません。

  • fr/およびfr_ALL/ fr/と呼ばれるfr_ALL/は、ユーザーの国と言語の好みの観点からは同等です。ただし、両方のサブフォルダーが存在する場合、ホスティングはfr/ contentの前にfr_ALL/ contentを提供します。

Cookieを使用して国と言語のヘッダーを上書きすることにより、提供されるコンテンツを変更できます。

Cookieのオーバーライドを使用する方法は次のとおりです。

  • さまざまな言語/国の組み合わせで機能をテストして、提供されるコンテンツを確認します。

  • ユーザーが表示されるコンテンツを変更できるようにします。たとえば、言語ピッカーを実装し、それに応じてユーザーのfirebase-language-override設定できfirebase-language-override

Cookieのオーバーライドを設定するには、 firebase-country-overridefirebase-language-override両方またはいずれかの名前でCookieを設定しfirebase-language-override 。たとえば、次のJavaScriptコードスニペットは、国コードをcaに、 Accept-Languageヘッダーをfr,enオーバーライドします。

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

言語Cookieのオーバーライドは、サブタグや品質値を含まない、優先順にコンマで区切られた言語コードのリストである必要があります。

Cookieのオーバーライドはログに反映されません。