i18n Coklu Dil Rehberi: Web Sitesini Cok Dilli Yapma
Internationalization uygulayarak web sitenizi birden fazla dilde sunun ve global kitlelere ulasin.
i18n Nedir?
i18n (internationalization — uluslararasilastirma), bir yazilim urununu birden fazla dil ve bolgeye uyarlanabilir hale getirme surecidir. "i18n" kisaltmasi, "internationalization" kelimesinin bas harfi "i" ile son harfi "n" arasindaki 18 karakterden gelir. Buna ek olarak l10n (localization — yerellestirme) ise belirli bir dil ve bolgeye ozgu uyarlamalarin yapilmasi asamasidir.
Coklu dil destegi, web sitenizin erisim alaninigeniletmenin, uluslararasi pazarlara acilmanin ve farkli dil konusan kullanıcılara daha iyi bir deneyim sunmanin temelidir. Turkiye merkezli bir isletme icin bile, Ingilizce ve belki Arapca veya Almanca gibi ek diller desteklemek, potansiyel musteri tabaninizi katlamaali olarak arttirir. Bu rehberde, Next.js ile coklu dil uygulamasini next-intl kutuphanesi odaginda, routing stratejilerinden SEO uyumluliguna kadar detayli olarak ele aliyoruz.
i18n Planlama: Ilk Adimlar
Coklu dil destegini projenize eklemeden once dikkatli bir planlama yapmak, ileride buyuk zaman ve emek tasarrufu saglar.
Hedef Dillerin Belirlenmesi
- Analitik verileri inceleyin: Mevcut trafiginizin hangi ulkelerden ve dillerden geldigini analiz edin.
- Hedef pazarlari belirleyin: Isletmenizin genislemek istedigi pazarlara oncelik verin.
- Kaynak degerlendirmesi: Her dil icin profesyonel ceviri maliyetini ve surdurulebilirligini degerlendirin.
- Karakter seti gereksinimleri: Arapca (sag-sola yazi), Cince/Japonca (CJK karakterler), Kiril gibi ozel karakter setleri ek teknik planlama gerektirir.
Icerik Stratejisi
- Tam ceviri mi, uyarlama mi? Bazi icerikler bire bir cevirilirken, bazi icerikler hedef pazara ozel olarak uyarlanmalidir.
- Ceviri is akisi: Kim cevirecek, nasil onaylanacak, hangi arac kullanilacak sorularini onceden yanitlayin.
- Ceviri hafizasi: Tekrar eden ifadelerin tutarli cevirilmesini saglayan ceviri hafizasi (TM) araclari kullanmayi degerlendirin.
Next.js'te i18n: Routing Stratejileri
Coklu dil URL yapilanirmasi, hem kullanici deneyimi hem de SEO acsindan kritiktir. Uc temel yaklasim vardir:
1. Alt Yol (Sub-path) Routing
Her dil bir alt yol ile belirtilir: /tr/hakkimizda, /en/about. En yaygin ve onerilen yaklasimdir. Tek bir domain uzerinde tum dilleri yonetmenizi saglar, arama motorlari icin net bir yapı sunar ve uygulamasi en kolayidir.
2. Alt Alan Adi (Subdomain) Routing
Her dil icin ayri bir alt alan adi kullanilir: tr.example.com, en.example.com. Daha karmasik DNS yaplandirmasi gerektirir ancak her dil icin bagimsiz hosting ve olcekleme imkani sunar.
3. Farkli Domain
Her dil icin farkli bir domain kullanilir: example.com.tr, example.com. En maliyetli ve karmasik yaklasimdir. Genellikle buyuk uluslararasi markalar tercih eder.
next-intl ile Uygulama
next-intl, Next.js App Router ile sorunsuz entegre calislan, tip guvenli ve performansli bir i18n kutuphanesidir. Mesaj dosyalari, biclendirme (formatting), routing ve sunucu bileseni destegi sunar.
Kurulum ve Yapilandirma
- Paket yukleme: npm veya yarn ile next-intl paketini projenize ekleyin.
- Mesaj dosyalari: Her dil icin JSON formatinda mesaj dosyalari olusturun. Ornegin
messages/tr.jsonvemessages/en.json. - Middleware yapilandirmasi:
middleware.tsdosyasinda locale tespit ve yonlendirme kurullarini tanimlayin. - Layout entegrasyonu: Root layout'ta
NextIntlClientProviderile mesajlari uygulamaya saglayın. - Routing yapisi:
[locale]dinamik segmenti ile dil bazli routing yapilandirin.
Mesaj Dosyasi Yapisi
Mesaj dosyalari ic ice (nested) JSON yapisi kullanir. Bu, buyuk projelerde mesajlari mantiksal gruplara ayirmanizi saglar. Ornegin:
common: Genel ceviri anahtarlari (butonlar, etiketler, gezinme)home: Ana sayfa icerikleriabout: Hakkimizda sayfasi iceriklericontact: Iletisim sayfasi iceriklerierrors: Hata mesajlari
Cevirileri Kullanma
Sunucu bilesenlerinde useTranslationshook'u ile cevirilere erismek mumkundur. Parametre iceren ceviriler icin degisken yerlestirme (interpolation), cogul formlar icin ICU MessageFormat sozdizimi kullanilir.
Locale Tespiti ve Yonlendirme
Kullanicinin tercih ettigi dili dogru tespit etmek, sorunsuz bir coklu dil deneyiminin temelidir.
Tespit Yontemleri
- URL yolu: En guvenilir yontem. URL'deki locale segmentine gore dil belirlenir.
- Accept-Language basligi: Tarayicinin dil tercihini HTTP basligindanokuyarak ilk ziyarette otomatik yonlendirme yapilir.
- Cookie: Kullanicinin onceki dil tercihini saklar. Tekrar ziyarette dogru dile yonlendirir.
- Cografi konum (GeoIP): IP adresine gore ulke tespiti. Accept-Language ile birlikte kullanilarak daha dogru sonuc verir.
next-intl Middleware
next-intl middleware'i, locale tespiti ve yonlendirme islemlerini otomatik olarak yonetir. Varsayilan dili, desteklenen dilleri ve yonlendirme kurullarini yapilandirma dosyasinda tanimlarsiniz. Middleware, her istekte locale'i kontrol eder ve gerekirse dogru URL'e yonlendirir.
Tarih, Sayi ve Para Birimi Biclendirme
Coklu dil destegi yalnizca metin cevirisinden ibaret degildir. Tarih, sayi ve para birimi formatlarıda dile ve bolgeye gore degisir.
- Tarih formati: Turkce'de "27 Mart 2026", Ingilizce'de "March 27, 2026", Almanca'da "27. Marz 2026".
- Sayi formati: Turkce'de "1.234,56", Ingilizce'de "1,234.56".
- Para birimi: "1.250,00 TL" vs "$1,250.00" vs "1.250,00 EUR".
- Cogul formlar: Turkce'de "1 urun" / "5 urun", Ingilizce'de "1 item" / "5 items", Arapca'da alti farkli cogul form.
next-intl, JavaScript'in yerlesik IntlAPI'sini kullanaraak tum bu biclendirme islemlerini locale'e uygun sekilde otomatik olarak yapar.
i18n ve SEO
Coklu dil sitelerin arama motorlarinda dogru sekilde dizinlenmesi icin ozel SEO yapilandirmasi gereklidir.
hreflang Etiketleri
hreflang etiketleri, arama motorlarina bir sayfanin hangi dil ve bolge versiyonlarinin mevcut oldugunu bildirir. Her sayfanin <head> bolumune tum dil alternatifleri icin hreflang etiketleri eklenmelidir. x-default degeri ile varsayilan dil versiyonunu belirtmeyi unutmayin.
Canonical URL'ler
Her dil versiyonu icin kendi canonical URL'si olmalidir. /tr/hakkimizda ve /en/aboutayri sayfalar olarak degerlendirilir ve her birinin kendi canonical'i vardir.
Sitemap
XML sitemap'inizde tum dil versiyonlarinin yer almasi ve her URL icin hreflang alternatiflerinin belirtilmesi gerekir. Bu, arama motorlarinin tum dil versiyonlarini kesfetmesini ve dogru indekslemesini saglar.
Meta Etiketler
- Her dil versiyonu icin cevirilmis title ve meta description kullanin.
- Open Graph ve Twitter Card etiketlerini de dile gore guncelleyin.
- HTML etiketinin
langozelligini dogru locale ile ayarlayin. - Sag-sola diller icin
dir="rtl"ozelligini ekleyin.
En Iyi Uygulamalar
- Metin kodda sabit olmasin: Tum kullaniciya gorunen metinleri mesaj dosyalarina tasiyın. Kodda sabit Turkce/Ingilizce metin birakmaktan kacinin.
- Metin uzunlugu farklarini goz onunde bulundurun: Almanca metinler Ingilizce'den %30 daha uzun olabilir. UI tasariminizi buna gore esnek yapin.
- Gorsellerdeki metinleri cevirmeyi unutmayin: Banner gorselleri, infografikler ve ikon uzerindeki metinler de cevirilmelidir.
- Tarih ve sayi formatlarini yerellesirin: Yalnizca metni degil, tum biclendirmeleri locale'e uygun yapin.
- Ceviri anahtarlarini aciklayici secin:
btn1yerinecontact.form.submitButtongibi anlamli anahtarlar kullanin. - Profesyonel ceviri kullanin: Otomatik ceviri araclari baslangic icin faydali olsa da, uretim iceriginde profesyonel cevirmenler tercih edin.
- Dil degistiriciyi gorunur konumlandirin: Kullanicinin dil degistirme secenegini kolayca bulabilmesi gerekir. Bayrak ikonu yerine dil adini metin olarak yazin.
- RTL (sag-sola) destegini planlayin: Arapca, Ibranice gibi diller icin tum layout'un aynali olarak calismasi gerekir.
i18n Kontrol Listesi
- Hedef dilleri ve routing stratejisini belirleyin.
- next-intl veya baska bir i18n kutuphanesini projenize entegre edin.
- Mesaj dosyasi yapisini ve adlandirma kurallarini olusturun.
- Middleware ile locale tespiti ve yonlendirme yapilandirin.
- Tum kullaniciya gorunen metinleri mesaj dosyalarina tasiyın.
- Tarih, sayi ve para birimi biclendirmelerini yerellestirin.
- hreflang etiketlerini ve cevirilmis meta etiketleri ekleyin.
- XML sitemap'i tum dil versiyonlarini icerecek sekilde guncelleyin.
- Dil degistirici bileseni ekleyin.
- Tum dillerde kapsamli test yapin — ozellikle uzun metinler, cogul formlar ve ozel karakterler.
Sonuc: Coklu dil destegi, web sitenizin global erisimini artirmanin ve uluslararasi pazarlarda rekabet etmenin anahtaridir. Dogru planlama, uygun arac secimi ve SEO uyumlulugu ile kusursuz bir coklu dil deneyimi olusturabilirsiniz. Megis olarak, musterilerimizin projelerinde next-intl gibi modern araclarla performansli ve SEO uyumlu coklu dil cozumleri uyguluyoruz.