EMZETT.
Giriş yap

i18n

Kısaca: “Internationalization” (uluslararasılaştırma; i ile n arasında 18 harf) kısaltması — yazılımın birden fazla dilde ve bölgede çalışacak şekilde hazırlanması.

Biraz daha ayrıntılı: i18n örneğin metinlerin çeviri dosyalarına taşınmasını, tarih/sayı/para biriminin yerele göre biçimlendirilmesini ve metin yönünün (LTR/RTL) dikkate alınmasını kapsar. Belirli bir dile asıl çeviri ise “yerelleştirme” (l10n) olarak adlandırılır. Emzett’te i18n, next-intl ile uygulanır.

Ayrıntılı

Bu sayısal kısaltmalar hep aynı kalıbı izler: ilk ve son harf artı arada kalan harf sayısı. i18n (uluslararasılaştırma) ve l10n (yerelleştirme) dışında örneğin a11y (erişilebilirlik) veya k8s (Kubernetes) de vardır — 1970’lerden bir gelenek; aslen uzun sözcüklerin delikli kartlarda/terminallerde yer tasarrufuyla not edilmesi için kullanıldı.

Bir uygulamada tipik i18n iş adımları:

  1. Metin çıkarma: kodda sabit yazılmış tüm metinler, kaynak kodda sabit yazılmak yerine ayrı çeviri dosyalarına (örn. de.json, en.json) taşınır.
  2. Yerel algılama: uygulama kullanıcının hangi dili/bölgeyi tercih ettiğini belirler — tarayıcı başlıkları, bir URL öneki (/de/..., /en/...) veya kayıtlı bir kullanıcı ayarı aracılığıyla.
  3. Biçimlendirme: sayılar, tarihler ve para birimleri yerele göre farklı gösterilir (örn. Almanya’da 1.234,56 €, ABD’de $1,234.56) — bunu kendiniz programlamak yerine bunun için Intl.NumberFormat gibi özel API’ler vardır.
  4. Çoğul kuralları: farklı dillerin farklı çoğul biçimleri vardır (Almanca: tekil/çoğul; Lehçe gibi bazı dillerin daha fazla biçimi var) — i18n kütüphaneleri bunu basit dize birleştirme yerine özel çoğullaştırma sözdizimiyle ele alır.

Emzett’te URL yapısının kendisi artık tamamen İngilizce işler (örn. Almanca karşılıkları yerine /shop, /help), ancak görünen metin next-intl ile birden fazla dilde denetlenebilir kalır.

Ayrıca bak: next-intl