Używaj przepisów dotyczących internacjonalizacji („przepisów i18n”), aby wyświetlać różne treści w zależności od kraju użytkownika lub preferowanego języka. Oto kilka przykładowych konfiguracji, które możesz ustawić:
- Wyświetlanie tych samych treści w języku francuskim wszystkim użytkownikom, którzy preferują ten język (niezależnie od kraju). 
 Przykład: strona główna z tekstem w języku francuskim
- Wyświetlaj treści w standardowej wersji języka francuskiego użytkownikom, którzy wolą ten język, ale użytkownikom z Kanady, którzy wolą język francuski, wyświetlaj treści w kanadyjskiej wersji tego języka. 
 Przykład: strona główna z sformułowaniami w standardowej odmianie języka francuskiego i strona główna z sformułowaniami w kanadyjskiej odmianie języka francuskiego
- Wyświetlanie tych samych treści wszystkim użytkownikom w Kanadzie (niezależnie od ich preferencji językowych). 
 Przykład: strona główna w „domyślnym” języku witryny, ale z funkcją przeznaczoną dla Kanady (np. motywem świątecznym).
- Wyświetlanie treści w języku francuskim (Kanada) użytkownikom z Kanady, którzy wolą ten język. 
 Przykład: strona główna z treściami w języku francuskim używanym w Kanadzie i funkcją dostosowaną do Kanady (np. motywem świątecznym).
Firebase Hosting określa kraj użytkownika na podstawie jego adresu IP, a preferencje językowe użytkownika na podstawie nagłówka żądania Accept-Language (zwykle ustawianego automatycznie przez przeglądarkę internetową).
Konfigurowanie przepisów dotyczących lokalizacji
Aby skonfigurować przekierowania i18n na stronie Hosting, musisz utworzyć katalog „i18n
content” dla wszystkich zlokalizowanych treści, a następnie dodać atrybut i18n do pliku firebase.json, aby wskazywał nowy katalog „i18n content”.
Aby to zrobić:
- W folderze - publiclokalnego katalogu aplikacji utwórz osobny folder na „treści i18n”, a następnie utwórz podfoldery dla każdej kombinacji języka i kraju obsługiwanej przez Twoją witrynę.- W każdym podfolderze dodaj treści odpowiednie dla danej kombinacji, np. strony główne o tematyce świątecznej lub strony 404 w określonym języku. - Oto przykład katalogu „i18n content” 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 osobne podfoldery dla każdej kombinacji języka i kraju obsługiwanej przez Twoją witrynę. 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ą ustawiony dany język i kod kraju.
- languageCode: zawiera treści przeznaczone dla użytkowników, którzy mają ustawiony ten język, ale nie są one specyficzne dla danego kraju; w zasadzie jest to odpowiednik- languageCode_ALL.
 - Więcej informacji o tych kodach znajdziesz w podsekcji Kody krajów i języków poniżej. Wartość - ALL(z uwzględnieniem wielkości liter) możesz podać, aby wskazać dowolny kraj (np.- es_ALL/) lub dowolny język (np.- ALL_ca/).- Pliki w podfolderze nie muszą mieć analogicznych plików w katalogu - publicani w innych podfolderach. Możesz tworzyć treści, które są w całości dostosowane do danego języka lub kraju.
- Dodaj atrybut - i18ndo pliku- firebase.jsoni określ katalog zawierający „treści 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 - rootmusi być nazwą katalogu, który zawiera wszystkie podfoldery „treści międzynarodowych”. Jeśli wszystkie podfoldery „i18n content” znajdują się w katalogu głównym- public, użyj- /jako wartości- root. Ukośniki na początku i na końcu wartości- rootsą opcjonalne.
- Wdróż „treści i18n” i konfigurację w Hosting witrynie. 
Możesz przetestować konfigurację za pomocą zastąpień plików cookie.
Kody krajów i języków
Podczas nazywania podfolderów „i18n content” musisz używać małych liter w przypadku kodów kraju i języka. Wartość ALL (z uwzględnieniem wielkości liter) może wskazywać dowolny kraj (np. es_ALL/) lub dowolny język (np. ALL_ca/).
Hosting pobiera kod kraju z adresu IP użytkownika. Kody krajów to dwuliterowe kody ISO 3166-1 alfa-2.
Kody języka są pobierane z Accept-Languagenagłówka żądania użytkownika (zwykle ustawianego automatycznie przez przeglądarkę internetową).
Są to kody ISO 639-1.
Korzystając z kodów języków, pamiętaj o tych kwestiach:
- Gdy Hosting wyszukuje „treści i18n”, które ma wyświetlić, porządkuje języki na podstawie wartości jakości w nagłówku - Accept-Language.
- Hosting usuwa wszystkie regionalne i krajowe podtagi w nagłówku - Accept-Language, więc kod języka w nazwie podfolderu „i18n content” nie może zawierać tych podtagów. Na przykład nie możesz używać- es-419ani- es-USjako kodu języka w nazwie podfolderu, ale możesz użyć- es.- Jeśli chcesz wyświetlać treści w określonych regionach lub krajach, możesz utworzyć podfoldery zawierające treści w określonych językach i krajach. 
Kolejność priorytetów dla „treści międzynarodowych”
Jeśli skonfigurujesz przekształcenia i18n, Hosting będzie wyświetlać treści w tej kolejności priorytetów:
- Zarezerwowane przestrzenie nazw, które zaczynają się od segmentu ścieżki - /__/*
- Skonfigurowane przekierowania 
- Treści statyczne dopasowane dokładnie - Kod języka + kod kraju (np. treść z - fr_ca/)
 Kolejność jest zgodna z wartościami jakości dla poszczególnych języków w nagłówku- Accept-Languageżądania.
- Tylko kod kraju (np. treści z - ALL_ca/)
- Tylko kod języka (np. treści z - fr/lub- es_ALL/).
 Kolejność jest zgodna z wartościami jakości dla poszczególnych języków w nagłówku- Accept-Languageżądania.
- Statyczne treści o dokładnym dopasowaniu „Domyślne” 
 Są to treści znajdujące się poza katalogiem „i18n content”, np. w katalogu głównym- public.
 
- Skonfigurowane zmiany 
- Obsługa błędów 404 - Strony błędu 404 w różnych wersjach językowych 
 Obowiązuje tu ta sama kolejność priorytetów co w przypadku statycznych treści o dokładnym dopasowaniu wymienionych powyżej.
- Domyślna strona 404 (udostępniana przez Firebase) 
 
Przykład kolejności priorytetów
Wróćmy do naszego przykładu powyżej. Użyjemy tego samego przykładowego katalogu i przykładowego żądania.
- Przykładowy lokalny katalog projektu z katalogiem „i18n content” (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(najpierw francuski, potem angielski)
 Kody języków są uporządkowane na podstawie wartości jakości w nagłówku- Accept-Language.
- Kod kraju: - ca(Kanada)
 
Zgodnie z kolejnością priorytetów dopasowania ścisłego i wartościami jakości dla preferencji językowych usługa Hosting będzie wyszukiwać żądaną stronę w katalogach w tej 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 błędów 404 
Która strona zostanie wyświetlona użytkownikowi?
- Żądana strona: - index.html
- Żądana strona: - awesome-page.html
Pamiętaj o tych uwagach na temat wyszukiwania i wyświetlania zawartości katalogu „i18n content”:
- Katalog - localized-files/nie zawiera podfolderów- en_ca/,- en_ALL/ani- en/, więc Hosting będzie po prostu przechodzić w dół listy priorytetów, aż znajdzie pasujący podfolder dla kombinacji języka i kraju w żądaniu.
- Mimo że katalog - localized-files/zawiera- es_ALL/podfolder, w przykładzie żądania powyżej nie ma kodu języka- esani- es-foo, więc Hosting nie będzie szukać „treści i18n”, które pasują do- es.
- Podfoldery o nazwach - fr/i- fr_ALL/są równoważne z punktu widzenia kraju użytkownika i jego preferencji językowych. Jeśli jednak oba podfoldery istnieją, Hosting będzie wyświetlać treści z- fr_ALL/przed treściami z- fr/.
Zastępowanie kodów języka i kraju za pomocą plików cookie
Możesz zmienić wyświetlane treści, używając plików cookie do zastąpienia nagłówków kraju i języka.
Oto kilka sposobów wykorzystania zastępowania plików cookie:
- Testuj funkcję z różnymi kombinacjami języka i kraju, aby sprawdzić, jakie treści są wyświetlane. 
- Umożliwiaj użytkownikom zmianę wyświetlanych treści. Możesz na przykład wdrożyć selektor języka, a następnie odpowiednio ustawić plik cookie - firebase-language-overrideużytkownika.
Aby skonfigurować zastępowanie plików cookie, ustaw pliki cookie o obu tych nazwach lub o jednej z nich:firebase-country-override i firebase-language-override. Na przykład ten fragment kodu JavaScript zastępuje kod kraju wartością ca, a nagłówek Accept-Language wartością fr,en:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
Zastąpienia plików cookie dotyczących języka muszą być listą kodów języków rozdzielonych przecinkami w kolejności preferencji, bez podtagów ani wartości jakości.
Zastąpienia plików cookie nie są odzwierciedlane w logach.