1.6 KiB
1.6 KiB
i18n + Dinamik Çeviri Standardı
Bu projede çok dilli yapı iki katmanlıdır:
- Statik UI metinleri
i18nile yönetilir. - Dinamik içerikler
mk_translator+ otomatik çeviri servisi (OpenAI) ile yönetilir.
1) Statik UI (Deterministik)
Kullanım alanı:
- buton metinleri
- menüler
- form label'ları
- validasyon mesajları
- sabit ekran başlıkları
- route/meta/title
Kural:
- her metin key bazlı tutulur (
$t('common.save')) - locale dosyaları:
tr,en,de,it,es,ru,ar - fallback sırası: hedef dil ->
en->tr
2) Dinamik İçerik (DB/CMS/Serbest metin)
Akış:
- Kaynak metin için
mk_translatorkontrol edilir. - Hedef dil karşılığı yoksa OpenAI ile çeviri üretilir.
- Sonuç
mk_translatortablosuna yazılır. - Sonraki isteklerde DB sonucu kullanılır (cache etkisi).
Kullanım alanı:
- ürün/kategori açıklamaları
- CMS içerikleri
- admin panelden girilen serbest metinler
- şablon bazlı metin içerikleri
Kalite ve Güvenlik Kuralları
- Prompt net olmalı: sadece çeviri dönsün, açıklama eklemesin.
- Placeholder/format korunsun:
{name},{{count}},%sgibi yapılar bozulmasın. - HTML tag'leri ve kod/SKU değerleri çevrilmesin.
- API key sadece backend'de tutulur (
OPENAI_API_KEYclient'a verilmez). - 429/5xx için retry + exponential backoff uygulanır.
- Hassas veri içeriği olan metinlerde veri politikası kontrolü yapılır.
Özet
Bu servis, i18n'in alternatifi değildir; i18n'i tamamlayan dinamik çeviri katmanıdır.
- Statik UI:
i18n - Dinamik içerik:
mk_translator+ OpenAI + cache