2.5 KiB
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_localesinstance_i18n_settingsinstance_ui_translationscontent_translations- Built-in TR/EN katalog ve fallback temeli
- Locale-aware
Intlhelper'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ı