Çok dilli (i18n) bir frontend uygulamasını nasıl tasarlarsınız?

Cevap

i18n sadece metin çevirisi değildir: çoğul kuralları, tarih/sayı/para biçimleri, yazı yönü (RTL), URL yapısı ve çeviri dosyalarının yüklenmesi birlikte tasarlanmalıdır.

Temel ilkeler

  • Metinleri kodda sabit yazmayın; anahtarlarla (checkout.total) ve ICU MessageFormat ile yönetin (react-intl, i18next, next-intl).
  • String birleştirmeyin. Dillerde kelime sırası farklıdır; değişkenli mesaj kullanın.
{count, plural, =0 {Sepetiniz boş} one {# ürün} other {# ürün}}
  • Biçimlendirme için Intl API'leri:
new Intl.NumberFormat("tr-TR", { style: "currency", currency: "TRY" }).format(1234.5);
// "₺1.234,50"
new Intl.DateTimeFormat("tr-TR", { dateStyle: "long" }).format(new Date());
"istanbul".toLocaleUpperCase("tr-TR"); // "İSTANBUL" (locale vermezseniz "ISTANBUL")

Mimari kararlar

  • Locale tespiti: URL (/tr/..., SEO için en iyisi) > kullanıcı tercihi (cookie) > Accept-Language.
  • Çeviri dosyalarını dil ve sayfa bazında lazy load edin; tüm dilleri bundle'a koymayın.
  • SEO: <html lang="tr">, hreflang alternatif linkleri.
  • RTL: dir="rtl" ve CSS logical properties (margin-inline-start, padding-block) kullanın; ikonların yönü gerekirse çevrilir.
  • Tasarım: Almanca gibi dillerde metin %30-40 uzayabilir; sabit genişlikli butonlardan kaçının.
  • Çeviri süreci: eksik anahtar tespiti, fallback dil, çevirmenler için bağlam açıklamaları (TMS entegrasyonu).
  1. Bir autocomplete (typeahead) arama bileşenini nasıl tasarlarsınız?ZorFrontend Sistem TasarımıFrontend
  2. Bir frontend sistem tasarımı mülakatına nasıl yaklaşırsınız? Hangi adımları izlersiniz?KolayFrontend Sistem TasarımıFrontend
  3. Offline-first çalışan bir web uygulamasını (ör. not alma uygulaması) nasıl tasarlarsınız?ZorFrontend Sistem TasarımıFrontend
  4. Micro-frontend mimarisi nedir? Ne zaman tercih edilir, dezavantajları nelerdir?ZorFrontend Sistem TasarımıFrontend
  5. Büyük bir React uygulamasında state management mimarisini nasıl kurgularsınız?OrtaFrontend Sistem TasarımıFrontend
  6. Şirket genelinde kullanılacak bir design system / component library nasıl kurarsınız?OrtaFrontend Sistem TasarımıFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle