73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
# 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ı
|