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 francuskimWyś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 frazaUdostę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ć:
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 odpowiedniklanguageCode_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.Dodaj atrybut
i18n
do plikufirebase.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 katalogupublic
, użyj/
dla wartościroot
. Średniki na początku i na końcu wartościroot
są opcjonalne.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ówes-419
anies-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:
Zarezerwowane przestrzenie nazw, które zaczynają się od segmentu ścieżki
/__/*
Skonfigurowane przekierowania
Ścisłe dopasowanie treści statycznej
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 żądaniuAccept-Language
.Tylko kod kraju (na przykład treści z:
ALL_ca/
)Tylko kod języka (np. treści z
fr/
lubes_ALL/
)
Kolejność jest zgodna z wartościami jakości dotyczącymi każdego języka w żądaniuAccept-Language
.„Domyślne” treści statyczne w dopasowaniu ścisłym
To nie są „treści i18n” np. w katalogu katalogu głównego katalogupublic
.
Skonfigurowane przepisy
Obsługa błędów 404
Strony i18n 404
Kolejność jest taka sama jak dla dopasowania ścisłego treści statycznych.Strona Niestandardowa strona 404
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 wAccept-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:
public/localized-files/fr_ca/
public/localized-files/en_ca/
public/localized-files/ALL_ca/
public/localized-files/fr_ALL/
public/localized-files/fr/
public/localized-files/en_ALL/
public/localized-files/en/
public/
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 plikuen_ca/
,en_ALL/
luben/
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 podfolderes_ALL/
, podany powyżej przykład żądania nie zawiera kodu językaes
anies-foo
, więc Hosting nie będzie wyszukiwać „treści z uwzględnieniem lokalizacji”, które pasują does
.Podfoldery o nazwie
fr/
ifr_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 kategoriifr_ALL/
przed treściąfr/
.
Zastąp kody języków i krajów plikami cookie
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-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.