Konfigurowanie przepisywania internacjonalizacji (i18n)

Prezentowanie różnych treści poprzez modyfikację internacjonalizacji („i18n rewrites”) zależnie od kraju lub preferowanego języka użytkownika. Oto kilka przykładów Dostępne konfiguracje:

  • Udostępniaj te same treści w języku francuskim wszystkim użytkownikom, którzy wolą język francuski (niezależnie od tego, kraju).
    Przykład: strona główna z tekstem w języku francuskim

  • Wyświetlaj standardowe treści w języku francuskim użytkownikom, którzy wolą język francuski, ale w przypadku Użytkownicy z Kanady, którzy wolą język francuski, wyświetlają treści w języku francuskim kanadyjskim
    Przykład: strona główna ze standardowym sformułowaniem w języku francuskim oraz strona główna z Francuska kanadyjska fraza

  • Udostępniaj te same treści wszystkim użytkownikom w Kanadzie (niezależnie od ich ustawienia języka).
    Przykład: strona główna z domyślnym ustawieniem Twojej witryny. ale dzięki Obiekt charakterystyczny dla Kanady (np. motyw świąteczny)

  • Wyświetlaj treści w języku francuskim kanadyjskie użytkownikom z Kanady, którzy wolą język francuski.
    Przykład: strona główna z kanadyjskim sformułowaniem w języku francuskim i charakterystyczna dla Kanady obiekt (np. motyw świąteczny)

Hosting Firebase określa kraj użytkownika na podstawie jego adresu IP oraz ustawienia języka użytkownika z nagłówka żądania Accept-Language (zwykle ustawione automatycznie przez przeglądarkę).

Skonfiguruj przeredagowanie wersji i18n

Aby skonfigurować przepisywanie adresów i18n w witrynie Hostingu, musisz utworzyć kod „i18n” treści katalogu dla wszystkich zlokalizowanych treści, a następnie dodaj atrybut i18n do pliku firebase.json, aby wskazać nową „treść i18n” katalogu.

Aby to zrobić:

  1. W folderze public lokalnego katalogu aplikacji utwórz oddzielny katalog dla „treści i18n”, a następnie utwórz podfoldery dla każdego języka kombinacji krajów obsługiwanych przez Twoją witrynę.

    W każdym podfolderze dodaj treści odpowiednie dla tej kombinacji, takie jak strony główne o tematyce świątecznej lub strony 404 w określonych językach.

    Oto przykład: „treść i18n” katalogu o nazwie 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
    

    Katalog localized-files/ zawiera oddzielne podfoldery dla każdego z nich obsługiwanych w Twojej witrynie kombinacji języka i kraju. Wzorzec nazewnictwa każdego podfolderu musi być zgodny z jednym z tych formatów:

    • languageCode_countryCode: zawiera treści przeznaczone dla użytkowników użytkowników o takich preferencjach językowych oraz danego kodu kraju

    • languageCode: zawiera treści przeznaczone dla użytkowników, którzy mają ten problem. preferowany język, ale treść nie jest przeznaczona dla konkretnego kraju; zasadniczo odpowiednik languageCode_ALL

    Więcej informacji znajdziesz w podsekcji Kody krajów i języków poniżej . Możesz użyć wartości z kolumny ALL (wielkość liter ma znaczenie), by wskazać dowolny kraj (np. es_ALL/) lub dowolny język (np. ALL_ca/).

    Pliki w podfolderze nie muszą mieć analogicznych plików w folderze public lub innych podfolderach. Możesz tworzyć treści, zależnie od języka lub kraju.

  2. Dodaj atrybut i18n do pliku firebase.json i określ zawierający „treść i18n”. Kontynuując nasz przykład:

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

    Katalog określony dla root musi być nazwą katalogu, który zawiera wszystkie „treści i18n” podfolderów. Jeśli wszystkie „treści i18n” podfolderów w katalogu głównym katalogu public, użyj / dla wartości root. Ukośniki na początku i na końcu wartości root są opcjonalne.

  3. Wdrażanie „treści i18n” i skonfigurować ją w swojej witrynie w Hostingu.

Możesz przetestować konfigurację, korzystając z zastąpienia plików cookie.

Kody krajów i języków

Podczas wybierania nazwy „treści i18n” podfolderów, w obu krajach musisz użyć małych liter i kodów języków. Możesz użyć wartości ALL (z uwzględnieniem wielkości liter), aby wskazać dowolny kraj (np. es_ALL/) lub dowolny język (np. ALL_ca/).

Hosting pobiera kod kraju z adresu IP użytkownika. Kody krajów są dwuliterowe Kody ISO 3166-1 alfa-2.

Kody języków są pobierane z nagłówka żądania Accept-Language użytkownika (zwykle ustawione automatycznie przez przeglądarkę). Są to kody ISO 639-1. Podczas korzystania z kodów języków pamiętaj o tych uwagach:

  • Gdy Hosting wyszukuje hasło „treści i18n”, na potrzeby realizacji celu, nakazuje języków na podstawie wartości jakości w nagłówku Accept-Language.

  • Hosting usuwa wszystkie podrzędne tagi regionalne i krajowe w Accept-Language nagłówek, więc kod języka w sekcji „treść i18n” nazwa podfolderu nie może zawierających te subtagi. Nie możesz na przykład użyć atrybutów es-419 ani es-US jako kodu języka w nazwie podfolderu, ale możesz użyć es.

    Jeśli chcesz wyświetlać treści regionalne lub krajowe, możesz podfoldery zawierające treści w określonych językach i krajach, które chcesz .

Priorytet dla „treści i18n”

Jeśli skonfigurujesz przepisy i18n, Hosting będzie wyświetlać treści w oparciu o: priorytet:

  1. Zarezerwowane przestrzenie nazw, które zaczynają się od segmentu ścieżki /__/*

  2. Skonfigurowane przekierowania

  3. Ścisłe dopasowanie treści statycznej

    1. Kod języka + kod kraju (np. treści z: fr_ca/)
      Kolejność jest zgodna z wartościami jakości dotyczącymi każdego języka w żądaniu Accept-Language.

    2. Tylko kod kraju (na przykład treści z: ALL_ca/)

    3. Tylko kod języka (np. treści z fr/ lub es_ALL/)
      Kolejność jest zgodna z wartościami jakości dotyczącymi każdego języka w żądaniu Accept-Language.

    4. „Domyślne” treści statyczne w dopasowaniu ścisłym
      To nie są „treści i18n” np. w katalogu katalogu głównego katalogu public.

  4. Skonfigurowane przepisy

  5. Obsługa 404

    1. Strony i18n 404
      Kolejność jest taka sama jak dla dopasowania ścisłego treści statycznych.

    2. Strona Niestandardowa strona 404

    3. Domyślna strona 404 (udostępniona przez Firebase)

Przykład kolejności priorytetu

Posłużmy się powyższym przykładem. Użyjemy tego samego przykładowego katalogu przykład żądania.

  • Przykładowy katalog lokalnego projektu z treścią „i18n” katalog (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
    
  • Przykładowe informacje o żądaniu

    • Kody języków: fr, en (francuski, a potem angielski)
      Kody języków są uporządkowane według wartości jakości w Accept-Language.

    • Kod kraju: ca (Kanada)

Zgodnie z kolejnością priorytetów dokładnie dopasowanych do słów kluczowych i wartościami dotyczącymi ustawień języka, Hosting przeszuka katalogi pod kątem żądanego w następującej kolejności.

  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. Obsługa 404

Która strona będzie wyświetlana użytkownikowi?

  • Żądana strona: index.html

  • Żądana strona: awesome-page.html

Zwróć uwagę na te informacje na temat funkcji wyszukiwania i wyświetlania „treści i18n” katalogu:

  • Katalog localized-files/ nie zawiera pliku en_ca/, en_ALL/ lub en/ podfolderów, więc Hosting przeskoczy do podfolderu listę priorytetową, aż znajdzie podfolder pasujący do kombinacji języka i kraju.

  • Mimo że katalog localized-files/ zawiera element es_ALL/ podfolder, przykładowe żądanie powyżej nie zawiera es ani es-foo kodu języka, więc Hosting nie będzie wyszukiwać hasła „treść i18n”. które pasuje do es.

  • Podfoldery o nazwie fr/ i fr_ALL/ są równoważne z punktu widzenia ustawień kraju i języka użytkownika. Jeśli jednak oba podfoldery , Hosting będzie wyświetlać treść fr_ALL/ przed treścią fr/.

Możesz zmienić rodzaj wyświetlanych treści za pomocą plików cookie, które zastąpią ustawienia kraju i nagłówki językowe.

Oto kilka sposobów korzystania z zastąpienia plików cookie:

  • Przetestuj funkcję z różnymi kombinacjami języka i kraju, aby sprawdzić, treści wyświetlane w internecie.

  • Pozwól użytkownikom zmieniać treści, które widzą. Możesz na przykład: zaimplementuj selektor języka, a potem ustaw firebase-language-override plik cookie odpowiednio.

Aby skonfigurować zastąpienia plików cookie, ustaw pliki cookie o obu tych nazwach lub z jedną z nich: firebase-country-override i firebase-language-override. Przykład: następujący fragment kodu JavaScript zastępuje kod kraju na ca i nagłówek Accept-Language na fr,en:

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

Zastąpienia plików cookie języka muszą mieć postać listy rozdzielonych przecinkami kodów języków w według preferencji, bez subtagów ani wartości jakości.

Zastąpienia plików cookie nie są odzwierciedlane w logach.