Farklı içerikler sunmak için uluslararasılaştırma yeniden yazmalarını ("i18n yeniden yazmaları") kullanın veya tercih ettiği dile göre değişir. Aşağıda, oluşturabileceğiniz bazı örnek yapılandırmalar verilmiştir:
Aynı Fransızca içeriği, Fransızca tercih eden tüm kullanıcılara (Fransızca'dan bağımsız olarak) sunun )
Örnek: Fransızca metin içeren bir ana sayfaFransızca tercih eden kullanıcılara Standart Fransızca içeriği, Kanada'da yaşayan ve Fransızca tercih eden kullanıcılara ise Kanada Fransızcası içeriği yayınlayın.
Örnek: Standart Fransızca ifadeler içeren bir ana sayfa ile Kanada Fransızcası ifadelerKanada'daki tüm kullanıcılara (dil tercihlerinden bağımsız olarak) aynı içeriği sunma
Örnek: Sitenizin "varsayılan" dilini kullanan ancak Kanada'ya özgü bir özelliğe (ör. tatil teması) sahip bir ana sayfaFransızcayı tercih eden Kanadalı kullanıcılara Kanada Fransızcası içerikleri sunun.
Örnek: Kanada Fransızcası ifadeleri içeren ve Kanada'ya özgü bir ana sayfa bir özellik (ör. tatil teması)
Firebase Hosting, kullanıcının ülkesini IP adresinden belirler ve
Accept-Language
istek başlığından kullanıcının dil tercihlerini (genellikle
tarayıcı tarafından otomatik olarak ayarlanır.)
i18n yeniden yazma özelliğini ayarlama
Hosting sitenizde i18n yeniden yazmalarını ayarlamak için "i18n" oluşturmanız gerekir
içeriği" dizinini oluşturun, ardından i18n
özelliğini ekleyin.
firebase.json
dosyanıza ekleyerek yeni "i18n içeriğinize" dizin.
Ayrıntılı adımlar aşağıda verilmiştir:
Yerel uygulama dizininizin
public
klasöründe "i18n içeriğiniz" için ayrı bir dizin oluşturun, ardından siteniz tarafından desteklenen her dil ve ülke kombinasyonu için alt klasörler oluşturun.Her bir alt klasöre bu kombinasyona özel içeriği ekleyin, örneğin Tatil temalı ana sayfalar veya dile özgü 404 sayfaları.
Bir "i18n içeriği" örneği.
localized-files
adlı dizin: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
localized-files/
dizini, siteniz tarafından desteklenen her dil ve ülke kombinasyonu için ayrı alt klasörler içerir. Adlandırma kalıbı her bir alt klasör şu biçimlerden birine uygun olmalıdır:languageCode_countryCode
: Kullanıcılara özel içerik barındırır söz konusu dil tercihine ve bu ülke koduna sahip olan kullanıcılarlanguageCode
: İzlemeye sahip kullanıcılara özel içerik barındırır Ancak içerikler ülkeye özgü değildir. temel olaraklanguageCode_ALL
ile eşdeğerdir
Alt bölüme bakın Aşağıdaki ülke ve dil kodları ziyaret edin.
ALL
değerini kullanabilirsiniz Herhangi bir ülkeyi (es_ALL/
gibi) veya herhangi bir ülkeyi belirtmek için (büyük/küçük harfe duyarlı) dil (ALL_ca/
gibi).Alt klasördeki dosyaların,
public
dizininde veya diğer alt klasörlerde benzer dosyalara sahip olması gerekmez. Tamamen ilgi alanına dayalı içerik oluşturabilirsiniz belirli bir dile ve/veya ülkeye özgü olmalıdır.firebase.json
dosyanızai18n
özelliğini ekleyin ve dizininizde olmalıdır. Örneğimizden devam edelim:// firebase.json "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "i18n": { "root": "/localized-files" // directory that contains your "i18n content" } ... }
root
için belirtilen dizin, şu işlemin yapıldığı dizinin adı olmalıdır: tüm "i18n içeriklerinizi" barındırır. alt klasörlerde de yer alır. Tüm "i18n ile ilgili içerik"public
dizininizin kök dizininde bulunan alt klasörler için/
kullanınroot
değeri için.root
değerinin başında ve sonunda eğik çizgiler isteğe bağlıdır."i18n içeriğinizi" dağıtın ve Hosting sitenizde yapılandırın.
Çerezleri geçersiz kılma kullanarak kurulumunuzu test edebilirsiniz.
Ülke ve dil kodları
"i18n içeriği"ni adlandırırken alt klasörler varsa her iki ülke için de küçük harf kullanmanız gerekir.
ve dil kodları kullanır. Şunları belirtmek için ALL
(büyük/küçük harfe duyarlı) değerini kullanabilirsiniz:
herhangi bir ülke (es_ALL/
gibi) veya herhangi bir dil (ALL_ca/
gibi).
Hosting, ülke kodunu kullanıcının IP adresinden alır. Ülke kodları, iki harfli ISO 3166-1 alpha-2 kodlarıdır.
Dil kodları, kullanıcının Accept-Language
istek başlığından (genellikle web tarayıcısı tarafından otomatik olarak ayarlanır) alınır.
Bunlar ISO 639-1 kodlarıdır.
Dil kodlarını kullanırken aşağıdakileri göz önünde bulundurun:
Hosting, hangi "i18n içeriği"ni aradığında en son derece karmaşık
Accept-Language
başlığındaki kalite değerlerine göre değişir.Hosting, bölgesel ve ülke alt etiketlerini
Accept-Language
başlığında bırakır. Bu nedenle, "i18n content" alt klasör adındaki dil kodu bu alt etiketleri içeremez. Örneğin,es-419
veyaes-US
kullanılamaz. dil kodunu da içerir ancakes
kullanabilirsiniz.Belirli bölgesel veya ülkesel içerikler yayınlamak istiyorsanız desteklemek istediğiniz dil ve ülke içeriğini içeren alt klasörler oluşturabilirsiniz.
"i18n içeriği" için öncelik sırası
i18n yeniden yazmaları ayarladıysanız Hosting, içeriği aşağıdaki öncelik sırasına göre yayınlar:
/__/*
yol segmentiyle başlayan ayrılmış ad alanlarıYapılandırılmış yönlendirmeler
Statik içerikle tam eşleme
Dil kodu + Ülke kodu (örneğin,
fr_ca/
tarafından sağlanan içerik)
Bu sıra, istek dilindeki her dil için kalite değerleriniAccept-Language
üstbilgisi.Yalnızca ülke kodu (örneğin,
ALL_ca/
yayıncısının içeriği)Yalnızca dil kodu (örneğin,
fr/
veyaes_ALL/
kaynağından içerik)
Bu sıra, istek dilindeki her dil için kalite değerleriniAccept-Language
başlığı."Default" (Varsayılan) tam eşlemeli statik içerik
Bu içerik, "i18n içeriği" dışındadır. dizininde, örneğinpublic
dizininin kökü.
Yapılandırılmış yeniden yazmalar
404 işleme
i18n 404 sayfaları
Bu, tam eşleme için yukarıda listelenen aynı öncelik sırasına sahiptir statik içeriği.Özel 404 sayfası
Varsayılan 404 sayfası (Firebase tarafından sağlanır)
Öncelik sırası örneği
Yukarıdaki örneğimize devam edelim. Bunun için aynı örnek dizini kullanacağız. örnek bir istek.
"i18n content" dizini (
localized-files
olarak adlandırılır) içeren örnek yerel proje dizinipublic/ 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
Örnek istek bilgileri
Dil kodları:
fr
,en
(Fransızca, ardından İngilizce)
Dil kodları şu dildeki kalite değerlerine göre sıralanır:Accept-Language
başlığı.Ülke kodu:
ca
(Kanada)
Tam eşleşme önceliği sırasına ve dil tercihlerinde, Hosting istenen dil için dizinlerde sayfada aşağıdaki sırada yer alır.
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/
404 işleme
Kullanıcıya hangi sayfa sunulacak?
İstenen sayfa:
index.html
İstenen sayfa:
awesome-page.html
"i18n içeriği" arama ve sunma ile ilgili aşağıdakilere dikkat edin dizin:
localized-files/
dizini aslındaen_ca/
içermez,en_ALL/
veyaen/
alt klasörleri olduğundan Hosting yalnızca istek listesi için eşleşen bir alt klasör bulana kadar dil-ülke kombinasyonudur.localized-files/
dizini bires_ALL/
alt klasörü içerse de yukarıdaki örnek istek,es
veyaes-foo
dil kodu içermediğinden Hosting,es
ile eşleşen "i18n içeriği" aramaz.fr/
vefr_ALL/
adlı alt klasörler şu açıdan eşdeğerdir: Ülke ve dil tercihlerine bağlı olarak değişebilir. Ancak her iki alt klasör de Hosting,fr_ALL/
içeriğinifr/
içeriğinden önce sunar.
Dil ve ülke kodlarını çerezlerle geçersiz kılma
Ülkeyi geçersiz kılmak için çerezleri kullanarak yayınlanacak içeriği değiştirebilirsiniz. ve dil üstbilgilerini görebilirsiniz.
Çerez geçersiz kılmaları kullanmanın bazı yolları aşağıda verilmiştir:
Hangi içeriğin yayınlandığını kontrol etmek için bir özelliği farklı dil/ülke kombinasyonlarıyla test edin.
Kullanıcılarınızın gördükleri içeriği değiştirmesine olanak tanıyın. Örneğin, şunları yapabilirsiniz: bir dil seçici uygulayın, ardından kullanıcının Buna göre
firebase-language-override
çerezi de kullanılabilir.
Çerez geçersiz kılmalarını yapılandırmak için şu adların her ikisine veya bu adlardan birine sahip çerezleri ayarlayın:
firebase-country-override
ve firebase-language-override
. Örneğin,
aşağıdaki JavaScript kod snippet'i, ülke kodunu ca
olacak şekilde geçersiz kılıyor ve
Accept-Language
başlığı fr,en
olacak:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
Dil çerezi geçersiz kılmaları, öncelik sırasına koyma, alt etiketler veya kalite değerleri olmaksızın.
Çerez geçersiz kılmaları günlüklere yansıtılmaz.