Files

5.5 KiB
Raw Permalink Blame History

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:

  • common
  • auth
  • navigation
  • dashboard
  • clients
  • projects
  • tasks
  • calendar
  • finance
  • journal
  • chat
  • settings
  • portal
  • status
  • validation
  • api

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 Email 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:

  • tr isteyen kullanici default kolon veya content_translations(tr) degerini gorur.
  • en isteyen kullanici EN content translation'i gorur.
  • fr isteyen 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 Email 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") tr icin Kaydet, en icin Save dondurur.
  • fr locale'inde eksik anahtar ham key olarak gosterilmez.
  • formatMoney(10000, "TRY", "tr") Turkce bicim verir.
  • formatDate(..., "en") Ingilizce ay adi verir.

Faz-6 sonrasinda:

  • client-en portali EN navigasyon ve EN proje basliklariyla acilir.
  • client-tr portali TR kalir.
  • Davet kabul edildikten sonra secilen locale client kaydina yansir.

Faz-8 sonrasinda:

  • /api/v1/meta supported locale listesini dondurur.
  • /api/v1/me kullanicinin etkin locale'ini ve fallback chain'ini dondurur.
  • API hata response'lari stabil kod + locale'e uygun insan okunur mesaj tasir.