Files

83 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Faz 7 Auth, Hata ve Erişilebilirlik Bütünlüğü
description: Auth öncesi locale seçimi, stabil hata kodları, edge ekranlar ve a11y metinleri çıktıları.
phase: 7
status: completed
last_updated: 2026-07-19
---
# Faz 7 Auth, Hata ve Erişilebilirlik Bütünlüğü
Faz-7, kullanıcı oturumu oluşmadan önce ve sistem edge ekranlarında görünen
metinlerin locale modeliyle tutarlı çalışmasını tamamlar.
## Tamamlananlar
- Login ekranı aktif instance dillerini listeleyen locale seçici ile açılır.
- Register ekranı aynı locale seçiciyi kullanır ve ilk admin kurulumu instance
default locale/cookie davranışına bağlanır.
- Auth shell sol pazarlama alanı, feature etiketleri ve footer kopyası `auth`
namespace'inden beslenir.
- Forgot/reset password ekranları eklendi ve katalog metinleriyle render edilir.
- 404 ekranı server catalog üzerinden `common.notFound.*` anahtarlarını kullanır.
- Error boundary için built-in TR/EN fallback eklendi.
- Maintenance copy sözleşmesi `common.maintenance.*` anahtarlarıyla kataloglandı.
- Login/signup server action redirect'leri raw mesaj yerine stabil `code`
parametresine taşındı.
- Portal invite error/success redirect'leri stabil auth code kullanır.
- Invite kabulünden sonra invitation locale'i cookie'ye yazılır; login ekranı aynı
dilde açılır.
- `/api/i18n/locale` response'u kullanıcı metni yerine `messageKey` döndürür.
- Locale select kontrolünde label + `aria-label` korunur.
- Auth formlarındaki label, link ve pending metinleri katalogdan gelir.
- Interpolation ve plural davranışı built-in TR/EN katalogları için smoke test ile
doğrulandı.
- RTL temel direction helper smoke testi eklendi.
## Hata kodu sözleşmesi
Auth sayfaları query üzerinden aşağıdaki modeli kabul eder:
```text
/login?error=true&code=auth.messages.invalidCredentials
/register?error=true&code=auth.messages.signupFailed
/login?code=auth.invite.success
```
Geriye dönük uyumluluk için eski `message` parametresi okunur; yeni server
action'lar raw mesaj üretmez.
## Bildirim/e-posta locale sözleşmesi
İleride e-posta veya notification sistemi eklendiğinde locale önceliği şu
sırayı izlemelidir:
1. Client portal hesabı için `clients.portal_locale`
2. Auth user preference için `user_preferences.language`
3. Invite veya event üzerinde snapshot locale
4. Instance default locale
5. Built-in fallback `tr`
Template key'leri UI kataloglarıyla aynı namespace mantığını kullanmalı, fakat
uzun mail içerikleri ayrı `notification` veya `email` namespace'ine taşınmalıdır.
## RTL notu
`directionForLocale("ar" | "fa" | "he" | "ur")` temel RTL direction üretir.
Faz-7 smoke testi auth shell ve form katmanının direction bilgisini bozmadığını
doğrular. Tam görsel RTL polish için sonraki hardening fazında sayfa bazlı görsel
kontrol önerilir.
## Verification
Çalıştırılan komutlar:
```bash
pnpm i18n:phase7-smoke
pnpm typecheck
pnpm build
git diff --check
```
Sonuçlar başarılı olduğunda Faz-7 tamamlanmış kabul edilir.