Files

2.5 KiB
Raw Permalink Blame History

I18n V2 Faz 0 — Mimari kararlar

Tarih: 2026-07-20

ADR-001 — Locale bağlama göre çözülür

Tek bir genel resolver yerine dört açık bağlam kullanılır:

  • Public auth: instance default
  • Invitation: invitation snapshot, ardından instance default
  • Freelancer: user preference, ardından instance default
  • Portal: user preference, client portal default, instance default

Public auth locale çözümünde cookie ve Accept-Language kullanılmaz. Locale cookie'si dil değiştirme ve resolver akışından kaldırılır; authenticated tercih veritabanından, public dil instance ayarından çözülür.

ADR-002 — Kişisel tercih ve yönetim ayarı ayrıdır

user_preferences.language, clients.portal_locale ve instance_i18n_settings.default_locale aynı kavram değildir:

  • User preference kişinin açık seçimidir.
  • Client portal locale adminin müşteri için belirlediği başlangıç/default dildir.
  • Instance default public yüzeylerin ve fallback zincirinin dilidir.

Bu değerler farklı action/service fonksiyonlarıyla değiştirilir.

ADR-003 — Ayarlar gerçek alt rotalara ayrılır

Component state ile değişen tek ayarlar ekranı kullanılmaz. /settings/* altındaki her bölüm gerçek bir route olur. Ortak layout başlık, kalıcı iç navigasyon, loading ve error sınırını sağlar. Her sonraki settings fazı kendi veri yükleme ve mutation sınırını ayırır.

ADR-004 — Sayfa tamamlanma birimi

Bir sayfa yalnız title çevrildiğinde tamamlanmış sayılmaz. Header, form, dialog, toast, validation, loading/error/empty state, accessibility metni ve locale formatlama aynı sayfa fazının kapsamındadır.

ADR-005 — Dinamik metin ve iletişim içeriği ayrıdır

Proje, görev, takvim, finans ve benzeri yönetilen kayıtların çevrilebilir metin alanları locale tab'larıyla saklanır. Chat mesajı ve revizyon talebi gibi bir kişinin yazdığı iletişim metni çoğaltılmaz; kaynak dili korunur.

ADR-006 — V1'den korunan parçalar

Korunacak:

  • instance_locales
  • instance_i18n_settings
  • instance_ui_translations
  • content_translations
  • Built-in TR/EN katalog ve fallback temeli
  • Locale-aware Intl helper'ları

Düzeltilecek:

  • Resolver öncelikleri
  • Preference doğrulaması
  • Settings bilgi mimarisi
  • Katalog kapsamı
  • Translation registry kapsamı
  • Sayfa bazlı payload sınırı

Sonraki fazlarda kaldırılabilecek:

  • Auth sayfalarına bağlı locale select yüzeyi
  • Eski monolit settings composition
  • Katalog içindeki tamamlanmamış genel namespace yapısı