Muharrem Önel

MUHARREM

Önel
Full Stack Developer
|
Blog'a Dön
Teknoloji18 Ağustos 20267 dk okuma

Web Projelerinde Çoklu Dil Desteği (i18n) Nasıl Yapılır?

M
Muharrem ÖnelFull Stack Developer

Çoklu Dil Desteği Neden Gerekli?

Dijital dünyada coğrafi sınırlar kalktı. Türkçe bir web sitesi Almanya'daki Türk diasporasına, İngilizce versiyonu ise global pazara hitap edebilir. Çoklu dil desteği (internationalization/i18n), potansiyel müşteri kitlenizi katlayabilir.

i18n vs l10n: Fark Nedir?

  • i18n (Internationalization): Uygulamayı birden fazla dili destekleyecek şekilde tasarlama — altyapı
  • l10n (Localization): Belirli bir dile ve kültüre uyarlama — içerik

Önce i18n altyapısını kurarsınız, sonra her dil için l10n yaparsınız.

URL Stratejileri

Çoklu dil desteğinde URL yapısı SEO açısından kritiktir:

Alt dizin yaklaşımı (önerilen):

  • muharremonel.com/tr/hakkimda
  • muharremonel.com/en/about
  • Tek domain, tek hosting, kolay yönetim
  • Google tarafından en iyi desteklenen yöntem

Alt domain yaklaşımı:

  • tr.muharremonel.com
  • en.muharremonel.com
  • Daha fazla yapılandırma gerektirir

Domain bazlı:

  • muharremonel.com.tr (Türkçe)
  • muharremonel.com (İngilizce)
  • Her domain ayrı SEO otoritesi — genellikle önerilmez

Dil Dosyası Yapısı

Çevirileri JSON dosyalarında tutmak en yaygın yaklaşımdır:

  • Her dil için ayrı dosya (tr.json, en.json)
  • Nested yapı ile organize edin (common, about, contact gibi kategoriler)
  • Değişken içeren metinler için interpolation desteği
  • Çoğul form desteği (1 yorum, 5 yorum gibi)

SEO ve Çoklu Dil

Arama motorlarının farklı dil versiyonlarını doğru indexlemesi için:

  • hreflang etiketleri: Her sayfada tüm dil versiyonlarını belirtin
  • Canonical URL: Her dil versiyonunun kendi canonical'ı olsun
  • Sitemap: Her dil versiyonu sitemap'te ayrı ayrı listelenmeli
  • Meta tag'ler: Title, description her dilde ayrı olmalı
  • Yapısal veri: JSON-LD'de inLanguage belirtin
  • İçerik kalitesi: Makine çevirisi yerine profesyonel çeviri veya en azından kaliteli AI çevirisi kullanın

Tarih, Sayı ve Para Birimi Formatlama

Dil değiştiğinde sadece metin değil, formatlar da değişmelidir:

  • Tarih: 04/08/2026 (TR) vs 08/04/2026 (US) vs 2026-08-04 (ISO)
  • Sayılar: 1.234,56 (TR) vs 1,234.56 (EN)
  • Para birimi: 1.500,00 ₺ vs $1,500.00
  • Ölçü birimleri: Kilometre vs mile

Intl API (JavaScript built-in) bu formatlama işlemlerini kolaylaştırır.

Çeviri Yönetimi

Çeviri sürecini verimli yönetmek için:

  • Çeviri anahtarlarını anlamlı isimlendirin (button_submit yerine common.buttons.submit)
  • Eksik çevirileri tespit eden araçlar kullanın
  • Fallback dili belirleyin — çeviri yoksa varsayılan dilde gösterin
  • Context sağlayın — çevirmene metnin nerede kullanıldığını açıklayın
  • Düzenli çeviri review'ları yapın

Yaygın Hatalar

  • Metinleri doğrudan koda yazmak (hardcode) — çevrilemez
  • Cümle parçalarını birleştirerek cümle oluşturmak — dil yapıları farklıdır
  • String uzunluğunu hesaba katmamak — Almanca metinler İngilizce'den %30 daha uzun olabilir
  • Sağdan sola (RTL) dilleri düşünmemek — Arapça, İbranice
  • Tarih ve sayı formatlarını sabit kodlamak
  • Sadece UI'ı çevirmek, URL ve meta tag'leri ihmal etmek

Sonuç

Çoklu dil desteği, doğru altyapı ile baştan kurulduğunda proje boyunca sorunsuz çalışır. Sonradan eklemeye çalışmak ise büyük refactoring gerektirir. URL stratejisi, SEO uyumu ve formatlama detaylarına dikkat ederek, web uygulamanızı global pazara açabilirsiniz.

Projenize çoklu dil desteği eklemek mi istiyorsunuz? İletişime geçin.

i18nInternationalizationNext.jsSEOLocalizationMulti-language

Diğer Yazılar