Files
neta/docs/self-hosted-redesign/release/i18n-self-host-upgrade.md
T

116 lines
3.4 KiB
Markdown
Raw 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: Ç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.