Konfigurowanie przepisywania internacjonalizacji (i18n)

Używaj przekształceń na potrzeby międzynarodowości („przekształceń i18n”), aby wyświetlać różne treści w zależności od kraju użytkownika lub preferowanego języka. 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)

Firebase Hosting 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 przepisy i18n

Aby skonfigurować przepisy i18n w witrynie Hosting, musisz utworzyć plik „i18n” treści katalogu dla wszystkich zlokalizowanych treści, a następnie dodaj atrybut i18n do pliku firebase.json w celu wskazania nowej „treści 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 kombinację 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, którzy mają wybrany ten język i ten kod 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 . Wartość ALL (z rozróżnianiem wielkości liter) może wskazywać 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, które są przeznaczone wyłącznie dla określonego języka lub kraju.

  2. Dodaj atrybut i18n do pliku firebase.json i określ katalog zawierający „treści z lokalizacją”. W nawiązaniu do naszego przykładu:

    // 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. Średniki na początku i na końcu wartości root są opcjonalne.

  3. Wdrażanie „treści i18n” i skonfigurować w witrynie Hosting.

Konfigurację możesz przetestować, używając zastępowania 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/).

Funkcja Hosting pobiera kod kraju na podstawie 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. Korzystając z kodów językowych, pamiętaj o tych kwestiach:

  • Gdy Hosting wyszukuje, jakie „treści w języku i18n” ma wyświetlić, sortuje języki według wartości jakości w nagłówku Accept-Language.

  • Hosting usuwa wszystkie subtagi 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 dostosowane do konkretnego regionu lub kraju, 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 na podstawie tych kryteriów: 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 błędów 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ład katalogu lokalnego projektu z katalogiem „treści i18n” (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
  • 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 dopasowania ścisłego i wartościami jakości dla preferencji językowych Hosting będzie przeszukiwać katalogi w takiej 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

Pamiętaj o tych kwestiach dotyczących wyszukiwania i obsługi katalogu „Treści w języku i18n”:

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

  • Mimo że katalog localized-files/ zawiera podfolder es_ALL/, podany powyżej przykład żądania nie zawiera kodu języka es ani es-foo, więc Hosting nie będzie wyszukiwać „treści z uwzględnieniem lokalizacji”, które pasują 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 istnieje, Hosting będzie wyświetlać treści z kategorii fr_ALL/ przed treścią fr/.

Za pomocą plików cookie możesz zmienić wyświetlane treści, aby zastąpić nagłówki kraju i języka.

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 tych nazwach: firebase-country-overridefirebase-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.