feat(i18n): add mobile localization release gates
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
---
|
||||
title: Çok Dilli Sistem Self-host Upgrade Prosedürü
|
||||
description: Neta i18n V2 geçişi için backup, migration, backfill, integrity ve release kabul adımları.
|
||||
last_updated: 2026-07-21
|
||||
---
|
||||
|
||||
# Çok Dilli Sistem Self-host Upgrade Prosedürü
|
||||
|
||||
Bu prosedür mevcut self-host kurulumlarda eski tek dilli içerikleri yeni
|
||||
`content_translations` modeline güvenli şekilde taşımak için kullanılır.
|
||||
|
||||
## 1. Yayın öncesi hazırlık
|
||||
|
||||
1. Uygulamanın mevcut sürümünü durdurmadan önce kalıcı data dizinini doğrula:
|
||||
`DATA_DIR` ve `DATABASE_PATH` production değerleri Dokploy/host tarafında
|
||||
aynı volume'u göstermeli.
|
||||
2. Mutlaka yedek al:
|
||||
`pnpm db:backup`
|
||||
3. Yeni migration'ları uygula:
|
||||
`pnpm db:migrate`
|
||||
|
||||
## 2. Backfill
|
||||
|
||||
Önce dry-run çalıştır:
|
||||
|
||||
```bash
|
||||
pnpm i18n:backfill
|
||||
```
|
||||
|
||||
Çıktıdaki `planned` sayısı eklenecek çeviri satırlarını gösterir. Sonuç doğruysa
|
||||
yazma modunu çalıştır:
|
||||
|
||||
```bash
|
||||
pnpm i18n:backfill -- --write
|
||||
```
|
||||
|
||||
Script idempotent çalışır; aynı kayıt/alan/locale için var olan çeviriyi ezmez.
|
||||
Kaynak dil instance default locale'dir. Default ayar bulunamazsa güvenli fallback
|
||||
olarak `tr` kullanılır.
|
||||
|
||||
## 3. Integrity raporu ve cleanup
|
||||
|
||||
Rapor modunda çalıştır:
|
||||
|
||||
```bash
|
||||
pnpm i18n:integrity -- --report-only
|
||||
```
|
||||
|
||||
Rapor; kullanıcı dil tercihi, müşteri portal dili, davet dili, bilinmeyen locale,
|
||||
desteklenmeyen field ve orphan translation satırlarını listeler.
|
||||
|
||||
Yalnız orphan/desteklenmeyen `content_translations` satırlarını temizlemek için:
|
||||
|
||||
```bash
|
||||
pnpm i18n:integrity -- --fix
|
||||
```
|
||||
|
||||
Kullanıcı tercihi veya müşteri portal dili gibi ürün kararı gerektiren tutarsızlıklar
|
||||
otomatik değiştirilmez; admin panelinden düzeltilmelidir.
|
||||
|
||||
## 4. Release gate
|
||||
|
||||
Kod tarafı hızlı kalite kapısı:
|
||||
|
||||
```bash
|
||||
pnpm i18n:release-gate
|
||||
pnpm typecheck
|
||||
pnpm lint
|
||||
pnpm build
|
||||
```
|
||||
|
||||
`i18n:release-gate` şu kontrolleri yapar:
|
||||
|
||||
- TR/EN katalog key parity.
|
||||
- Interpolation değişken parity.
|
||||
- Login/register/forgot/reset auth ekranlarında dil seçici regresyonu.
|
||||
- Bilgilendirme amaçlı hard-coded text sample raporu.
|
||||
|
||||
Browser smoke için kontrol listesi:
|
||||
|
||||
- `/login`, `/register`, `/forgot-password`, `/reset-password` ekranlarında dil
|
||||
seçici yok.
|
||||
- Owner dili yalnız `/settings/language` üzerinden değişiyor.
|
||||
- Portal dili yalnız `/portal/settings/language` üzerinden ve aktif diller
|
||||
arasından değişiyor.
|
||||
- Dashboard, müşteri, proje, görev, takvim, finans, günlük, sohbet ve portal
|
||||
sayfaları TR/EN çalışıyor.
|
||||
- Custom locale draft -> active -> archived akışı deneniyor.
|
||||
- RTL test locale ile sidebar, header, dialog ve form tab'ları kırılmıyor.
|
||||
- Create/edit formlarında çevrilebilir alanlar aktif dil sayısı kadar tab
|
||||
gösteriyor.
|
||||
|
||||
## 5. Rollback
|
||||
|
||||
Eğer migration veya backfill sonrası kritik problem çıkarsa:
|
||||
|
||||
1. Uygulamayı durdur.
|
||||
2. Alınan yedeği geri yükle:
|
||||
`pnpm db:restore`
|
||||
3. Eski image/sürüm ile uygulamayı tekrar başlat.
|
||||
|
||||
SQLite dosyası ve upload klasörü aynı volume içinde tutulduğu için restore
|
||||
öncesinde ilgili volume'un yanlışlıkla silinmediğinden emin ol.
|
||||
|
||||
## 6. Büyük veri fixture ölçümü
|
||||
|
||||
Yayın adayı image'da en az bir büyük fixture ile şu süreler ölçülmeli:
|
||||
|
||||
- `pnpm db:migrate`
|
||||
- `pnpm i18n:backfill -- --write`
|
||||
- `pnpm i18n:integrity -- --report-only`
|
||||
- İlk dashboard ve portal dashboard render süresi
|
||||
|
||||
Ölçüm sonucunda translation liste okumalarında N+1 belirtisi görülürse ilgili
|
||||
sayfanın batch resolver kullanımı tekrar denetlenmelidir.
|
||||
Reference in New Issue
Block a user