Kullanıcının ülkesine veya tercih ettiği dile bağlı olarak farklı içerikler sunmak için uluslararasılaştırma yeniden yazma işlemlerini ("i18n yeniden yazma işlemleri") kullanın. Aşağıda, ayarlayabileceğiniz bazı örnek yapılandırmalar verilmiştir:
Fransızca'yı tercih eden tüm kullanıcılara (ülkeden bağımsız olarak) aynı Fransızca içeriği sunun.
Örnek: Fransızca metin içeren bir ana sayfaFransızcayı tercih eden kullanıcılara Standart Fransızca içerik yayınlayın ancak Fransızcayı tercih eden Kanadalı kullanıcılara bunun yerine Kanada Fransızcası içerik yayınlayın.
Örnek: Standart Fransızca ifadeler içeren bir ana sayfa ile Kanada Fransızcası ifadeler içeren bir ana sayfaTüm Kanadalı kullanıcılara (dil tercihlerinden bağımsız olarak) aynı içeriği sunma
Örnek: Sitenizin "varsayılan " dilini içeren ancak Kanada'ya özel bir özellik (ör. tatil teması) barındıran bir ana sayfaFransızca'yı tercih eden Kanadalı kullanıcılara Kanada Fransızcası içerik sunma.
Örnek: Kanada Fransızcası ifadeler içeren ve Kanada'ya özgü bir özellik (ör. tatil teması) barındıran bir ana sayfa
Firebase Hosting, kullanıcının ülkesini IP adresinden, dil tercihlerini ise Accept-Language
istek başlığından (genellikle web tarayıcısı tarafından otomatik olarak ayarlanır) belirler.
i18n yeniden yazma işlemlerini ayarlama
Hosting siteniz için i18n yeniden yazma işlemlerini ayarlamak üzere tüm yerelleştirilmiş içeriğiniz için bir "i18n
content" dizini oluşturmanız, ardından yeni "i18n content" dizininize yönlendirmek için firebase.json
dosyanıza i18n
özelliğini eklemeniz gerekir.
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 alt klasöre, söz konusu kombinasyona özel içeriği (ör. tatil temalı ana sayfalar veya dile özgü 404 sayfaları) ekleyin.
localized-files
adlı bir "i18n content" dizininin örneğini aşağıda görebilirsiniz: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. Her alt klasörün adlandırma kalıbı şu biçimlerden birine uymalıdır:languageCode_countryCode
: Bu dil tercihine ve ülke koduna sahip kullanıcılara özel içerikler barındırır.languageCode
: Bu dil tercihine sahip kullanıcılara özel içerikler barındırır ancak içerikler ülkeye özel değildir. TemeldelanguageCode_ALL
ile eşdeğerdir.
Bu kodlar hakkında daha fazla bilgi için aşağıdaki Ülke ve dil kodları alt bölümüne bakın.
ALL
değerini (büyük/küçük harfe duyarlı) herhangi bir ülkeyi (ör.es_ALL/
) veya herhangi bir dili (ör.ALL_ca/
) belirtmek için kullanabilirsiniz.Bir alt klasördeki dosyaların,
public
dizininde veya diğer alt klasörlerde benzer dosyaları olması gerekmez. Tamamen belirli bir dile ve/veya ülkeye özgü içerikler oluşturabilirsiniz.i18n
özelliğinifirebase.json
dosyanıza ekleyin ve "i18n içeriğinizi" içeren dizini belirtin. Örneğimize devam edersek:// 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, tüm "i18n content" alt klasörlerinizi içeren dizinin adı olmalıdır. Tüm "i18n content" alt klasörlerinizipublic
dizininizin kök dizinine yerleştirdiysenizroot
değeri için/
kullanın.root
değerindeki baştaki ve sondaki eğik çizgiler isteğe bağlıdır."i18n içeriğinizi" ve yapılandırmanızı Hosting sitenize dağıtın.
Kurulumunuzu çerez geçersiz kılma özelliğini kullanarak test edebilirsiniz.
Ülke ve dil kodları
"i18n content" alt klasörlerini adlandırırken hem ülke hem de dil kodları için küçük harf kullanmanız gerekir. ALL
değerini (büyük/küçük harfe duyarlı) herhangi bir ülkeyi (ör. es_ALL/
) veya herhangi bir dili (ör. ALL_ca/
) belirtmek için kullanabilirsiniz.
Hosting, ülke kodunu kullanıcının IP adresinden alır. Ülke kodları iki harfli ISO 3166-1 alfa-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 aklınızda bulundurun:
Hosting, hangi "i18n içeriğinin" yayınlanacağını ararken
Accept-Language
üstbilgisindeki kalite değerlerine göre dilleri sıralar.Hosting,
Accept-Language
üstbilgisindeki tüm bölgesel ve ülke alt etiketlerini kaldırır. Bu nedenle, "i18n content" alt klasör adındaki dil kodu bu alt etiketleri içeremez. Örneğin, bir alt klasör adında dil kodu olarakes-419
veyaes-US
kullanamazsınız ancakes
kullanabilirsiniz.Belirli bir bölgeye veya ülkeye özel içerik sunmak istiyorsanız desteklemek istediğiniz belirli dil-ülke içeriklerini içeren alt klasörler oluşturabilirsiniz.
"i18n content" için öncelik sırası
Uluslararasılaştırma yeniden yazma işlemlerini ayarlarsanız Hosting, içeriği aşağıdaki öncelik sırasına göre sunar:
/__/*
yol segmentiyle başlayan ayrılmış ad alanlarıYapılandırılmış yönlendirmeler
Tam eşleşen statik içerik
Dil kodu + Ülke kodu (örneğin,
fr_ca/
dilindeki içerikler)
Sıra, isteğinAccept-Language
başlığındaki her dilin kalite değerlerine göre belirlenir.Yalnızca ülke kodu (örneğin,
ALL_ca/
'daki içerikler)Yalnızca dil kodu (örneğin,
fr/
veyaes_ALL/
dilindeki içerikler)
Sıra, isteğinAccept-Language
üstbilgisindeki her dilin kalite değerlerine göre belirlenir."Varsayılan" tam eşleşme statik içerik
Bu, "i18n content" dizininin dışında bulunan içeriktir (ör.public
dizininin kök dizininde).
Yapılandırılmış yeniden yazma
404 işleme
i18n 404 sayfaları
Bu, tam eşleşen statik içerik için yukarıda listelenen öncelik sırasını izler.Özel 404 sayfası
Varsayılan 404 sayfası (Firebase tarafından sağlanır)
Öncelik sırası örneği
Yukarıdaki örneğimize devam edelim. Aynı örnek dizini ve örnek isteği kullanacağız.
"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
(önce Fransızca, sonra İngilizce)
Dil kodları,Accept-Language
üstbilgisindeki kalite değerlerine göre sıralanır.Ülke kodu:
ca
(Kanada)
Tam eşleme öncelik sırasına ve dil tercihlerinin kalite değerlerine göre Hosting, istenen bir sayfa için dizinlerde aşağıdaki sırayla arama yapar.
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 sunulur?
İstenen sayfa:
index.html
İstenen sayfa:
awesome-page.html
"i18n content" dizininin bu şekilde aranması ve sunulmasıyla ilgili olarak aşağıdakilere dikkat edin:
localized-files/
dizini aslındaen_ca/
,en_ALL/
veyaen/
alt klasörlerini içermediğinden Hosting, isteğin dil-ülke kombinasyonuna uygun bir alt klasör bulana kadar öncelik listesinde atlar.localized-files/
dizini bires_ALL/
alt klasörü içerse de yukarıdaki örnek istektees
veyaes-foo
dil kodu yer almıyor. Bu nedenle Hosting,es
ile eşleşen "i18n content" araması yapmaz.fr/
vefr_ALL/
adlı alt klasörler, kullanıcının ülke ve dil tercihleri açısından eşdeğerdir. Ancak her iki alt klasör de varsa Hosting,fr/
içeriğinden öncefr_ALL/
içeriğini yayınlar.
Dil ve ülke kodlarını çerezlerle geçersiz kılma
Ülke ve dil üstbilgilerini geçersiz kılmak için çerezleri kullanarak sunulan içeriği değiştirebilirsiniz.
Çerez geçersiz kılmalarını kullanabileceğiniz bazı yöntemler şunlardır:
Hangi içeriğin sunulduğunu 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 izin verin. Örneğin, bir dil seçici uygulayabilir, ardından kullanıcının
firebase-language-override
çerezini buna göre ayarlayabilirsiniz.
Çerez geçersiz kılmalarını yapılandırmak için çerezleri şu adların ikisiyle veya biriyle ayarlayın:
firebase-country-override
ve firebase-language-override
. Örneğin, aşağıdaki JavaScript kodu snippet'i ülke kodunu ca
, Accept-Language
üstbilgisini ise fr,en
olarak geçersiz kılar:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
Dil çerezini geçersiz kılma, tercih sırasına göre virgülle ayrılmış dil kodu listesi olmalıdır. Alt etiketler veya kalite değerleri içermemelidir.
Çerez geçersiz kılmaları, günlüklerde yansıtılmaz.