5.5 KiB
title, description, phase, status, last_updated
| title | description | phase | status | last_updated |
|---|---|---|---|---|
| Faz 0 I18n Fixture Plani | Cok dillilik migration, katalog ve portal testleri icin seed senaryolari. | 0 | completed | 2026-07-19 |
Faz 0 I18n Fixture Plani
Bu plan Faz-1 sonrasinda script veya test fixture'ina donusturulecek veri setini tanımlar. Hedef, locale resolver, fallback, domain icerik cevirileri ve portal dili davranisini ayni senaryoda dogrulamaktir.
Locale fixture'lari
| Locale | Durum | Built-in | Fallback | Amac |
|---|---|---|---|---|
tr |
active |
Evet | Yok | Instance default ve mevcut verinin ana dili. |
en |
active |
Evet | tr |
Built-in ikinci dil ve portal client testi. |
fr |
draft |
Hayir | en |
Eksik katalog/fallback testi. |
ar-XB |
test |
Hayir | en |
RTL smoke ve layout kontrolu. |
tr ve en silinemez. fr portal dili olarak ancak kritik portal namespace'leri
tamamlaninca secilebilir. ar-XB urun ayarlarinda normal kullaniciya
gosterilmez.
Katalog fixture'lari
Turkce built-in katalog
Tum namespace'lerde eksiksiz olmalidir:
commonauthnavigationdashboardclientsprojectstaskscalendarfinancejournalchatsettingsportalstatusvalidationapi
Ingilizce built-in katalog
Turkce ile ayni anahtar setine sahip olmalidir. Faz-2 testinde anahtar farki release engeli kabul edilir.
Eksik Fransizca katalog
Fallback test etmek icin bilincli olarak kismi tutulur.
Ornek:
{
"navigation.dashboard": "Tableau de bord",
"navigation.projects": "Projets",
"portal.dashboard.title": "Apercu",
"common.save": "Enregistrer"
}
Beklenen davranis: Eksik portal.tasks.title gibi anahtarlarda once en, sonra
tr fallback metni gosterilir; kullaniciya ham anahtar basılmaz.
Auth fixture'lari
| Kullanici | Rol | Dil | Baglam | |
|---|---|---|---|---|
| Freelancer | admin |
owner@neta.local |
tr |
Dashboard, ayarlar ve ceviri yonetimi. |
| Turkce musteri | client |
client-tr@neta.local |
tr |
Portal default dil testi. |
| Ingilizce musteri | client |
client-en@neta.local |
en |
Portal client locale testi. |
Freelancer hesabi instance default dilini tr olarak korur. Ingilizce musteri
icin davet kaydinda ve clients.portal_locale alaninda en beklenir.
Domain veri fixture'i
Musteriler
| ID | Ad | Portal dili | Not |
|---|---|---|---|
client-tr |
Ada Yilmaz | tr |
Turkce portal goruntusu. |
client-en |
Nova Studio | en |
Ingilizce portal goruntusu. |
Projeler
| ID | Musteri | Default baslik | EN baslik | FR baslik | Not |
| --- | --- | --- | --- | --- |
| project-website | client-tr | Web sitesi yenileme | Website refresh | Bos | Fallback testi. |
| project-brand | client-en | Marka kiti | Brand kit | Kit de marque | Portal EN ve FR content testi. |
Beklenen davranis:
tristeyen kullanici default kolon veyacontent_translations(tr)degerini gorur.enisteyen kullanici EN content translation'i gorur.fristeyen kullanici FR alan bos ise fallback zinciriyle EN veya TR gorur.
Gorevler
| ID | Proje | Public | TR baslik | EN baslik |
|---|---|---|---|---|
task-wireframe |
project-website |
Evet | Ana sayfa wireframe | Homepage wireframe |
task-internal |
project-website |
Hayir | Ic notlari toparla | Gather internal notes |
Portal yalnizca is_public_to_client = true gorevleri gosterir.
Planlama bolumleri
| ID | Proje | Kategori | TR baslik | EN baslik |
|---|---|---|---|---|
plan-scope |
project-website |
scope |
Kapsam | Scope |
plan-delivery |
project-website |
delivery |
Teslimat | Delivery |
Kategori teknik degeri cevrilmez; label status veya projects namespace'inden
gelir.
Portal davet fixture'lari
| Davet | Locale | Beklenen ekran dili | |
|---|---|---|---|
invite-tr |
client-tr@neta.local |
tr |
Turkce |
invite-en |
client-en@neta.local |
en |
Ingilizce |
invite-fr-draft |
client-en@neta.local |
fr |
Portal publish kurali nedeniyle reddedilir veya fallback EN kullanir. |
Davet ekranlari auth oncesi oldugu icin locale'i session'dan degil davet kaydindan alir.
API contract fixture'lari
/api/v1/meta Faz-8 sonunda en az su localization bilgisini dondurmelidir:
{
"localization": {
"defaultLocale": "tr",
"supportedLocales": [
{ "code": "tr", "name": "Turkce", "status": "active", "builtIn": true },
{ "code": "en", "name": "English", "status": "active", "builtIn": true },
{ "code": "fr", "name": "Francais", "status": "draft", "builtIn": false }
],
"fallbacks": {
"en": "tr",
"fr": "en"
}
}
}
Mobil istemci aktif olmayan dilleri kullanici seciminde gostermemeli, ancak ceviri yonetimi ekranlari icin admin API'de draft dilleri gorebilmelidir.
Smoke beklentileri
Faz-2 sonrasinda:
t("common.save")tricinKaydet,enicinSavedondurur.frlocale'inde eksik anahtar ham key olarak gosterilmez.formatMoney(10000, "TRY", "tr")Turkce bicim verir.formatDate(..., "en")Ingilizce ay adi verir.
Faz-6 sonrasinda:
client-enportali EN navigasyon ve EN proje basliklariyla acilir.client-trportali TR kalir.- Davet kabul edildikten sonra secilen locale client kaydina yansir.
Faz-8 sonrasinda:
/api/v1/metasupported locale listesini dondurur./api/v1/mekullanicinin etkin locale'ini ve fallback chain'ini dondurur.- API hata response'lari stabil kod + locale'e uygun insan okunur mesaj tasir.