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 birkaç örnek verilmiştir şu yapılandırmaları kullanabilirsiniz:
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ızcayı tercih eden kullanıcılara Standart Fransızca içerik sunun, ancak Fransızcayı tercih eden Kanadalı kullanıcılar Kanada Fransızcası içeriği sunmaktadır .
. Örnek: Standart Fransızca ifadeler içeren bir ana sayfa ile Kanada Fransızcası ifadelerKanada'daki tüm kullanıcılara (kullanıcıların dil tercihi) kullanabilirsiniz.
. Örnek: sitenizin "varsayılan" değerine sahip bir ana sayfa dil ancak bir Kanada'ya özgü özellik (tatil teması gibi)Fransı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ıları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 siteniz için i18n yeniden yazmalarını ayarlamak üzere bir "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 ayrı bir dizin oluşturun bulun, ardından her dil için alt klasörler oluşturun ve siteniz tarafından desteklenen ülke kombinasyonudur.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 her bir alt klasör için ayrı alt klasörler içerir siteniz tarafından desteklenen dil ve ülke kombinasyonudur. 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).Bir alt klasördeki dosyaların
public
içinde benzer dosyalara sahip olması gerekmez. diğer alt klasörlerde de olabilir. 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 yapılandırmanız gerekir.
Ç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).
Barındırma, ülke kodunu kullanıcının IP adresinden alır. Ülke kodları iki harflidir ISO 3166-1 alpha-2 kodları.
Dil kodları, kullanıcının Accept-Language
istek başlığından alınır.
(genellikle
tarayıcı tarafından otomatik olarak ayarlanır.)
Bunlar ISO 639-1 kodlarıdır.
Dil kodlarını kullanırken aşağıdakileri göz önünde bulundurun:
Hosting, "i18n content" için arama yaptığında en son derece karmaşık
Accept-Language
başlığındaki kalite değerlerine göre değişir.Barındırma,
Accept-Language
içindeki tüm bölgesel ve ülke alt etiketlerini bırakır "i18n content" içindeki dil kodu da dahil olmak üzere alt klasör adı emin olun. Örneğin,es-419
veyaes-US
kullanılamaz. dil kodunu da içerir ancakes
kullanabilirsiniz.Belirli bölgesel veya ülkeye özgü içerikler yayınlamak istiyorsanız istediğiniz dil-ülke içeriğini içeren alt klasörler destek.
"i18n içeriği" için öncelik sırası
i18n yeniden yazmalarını ayarlarsanız Hosting aşağıdaki ölçütlere göre içerik sunar öncelik sırası:
/__/*
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 içeriğine" sahip örnek yerel proje dizini dizin (
localized-files
olarak adlandırılır)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
Ö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 kullanıyorsanız 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/
içerse de alt klasör, yukarıdaki örnek istek bires
veyaes-foo
içermiyor dil kodu içerir. Bu nedenle, Hosting "i18n content" için arama yapmaz. verileries
ile eşleşiyor.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 bulunuyorsa 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 dil/ülke kombinasyonuna sahip bir özelliği test ederek yayınlanır.
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.