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 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)
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ć:
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 krajulanguageCode
: 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 . 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.Dodaj atrybut
i18n
do plikufirebase.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 katalogupublic
, użyj/
dla wartościroot
. Ukośniki na początku i na końcu wartościroot
są opcjonalne.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ówes-419
anies-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:
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 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ł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 wAccept-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.
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
Zwróć uwagę na te informacje na temat funkcji wyszukiwania i wyświetlania „treści i18n” katalogu:
Katalog
localized-files/
nie zawiera plikuen_ca/
,en_ALL/
luben/
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 elementes_ALL/
podfolder, przykładowe żądanie powyżej nie zawieraes
anies-foo
kodu języka, więc Hosting nie będzie wyszukiwać hasła „treść i18n”. które pasuje 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 , Hosting będzie wyświetlać treśćfr_ALL/
przed treściąfr/
.
Zastąp kody języków i krajów plikami cookie
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.