Loco Translate — uyumluluk notları
> Son güncelleme: 2026-05-06 (Hafta 17) > Durum: Native uyumlu — POT dosyamız languages/invum-pos.pot Loco Translate tarafından otomatik tanınır.
Loco Translate, WordPress admin panelinde plugin/theme stringlerini doğrudan çevirmek için en yaygın eklenti (1M+ aktif kullanıcı). POS Entegratör'ün tüm kullanıcı-yüzeyi mesajları invum-pos text-domain'i altında olduğu için Loco Translate hiçbir ek yapılandırma gerektirmeden tüm stringleri görür.
Kurulum sonrası akış
- WP admin → Eklentiler → Yeni Ekle → "Loco Translate" kur ve aktive et.
- WP admin → Loco Translate → Eklentiler ekranında "Invum POS" otomatik listede görünür (POT dosyamız
languages/invum-pos.potüzerinden detect edilir). - "Yeni dil" → istediğin dili seç (Türkçe varsayılan; Arapça/Almanca/İngilizce gibi ek dilleri ekleyebilirsin).
- Loco editöründe sayfa sayfa çevir, Kaydet ile
.po+.modosyalarıwp-content/languages/plugins/invum-pos-<locale>.poaltında oluşur — eklenti güncellemelerinde silinmez.
POT dosyasının yenilenmesi (yalnızca geliştirici)
Eklenti yeni string eklediğinde POT dosyasını yeniden üretmek gerekir. Composer/CI script'i değil, doğrudan WP-CLI kullanan basit bir bash wrapper:
bin/build-pot.sh # languages/invum-pos.pot dosyasını yeniden üret
bin/build-pot.sh --check # CI-friendly: POT stale ise exit 1
Script wp i18n make-pot komutunu çağırır, vendor/tests/node_modules/bin/docs dizinlerini hariç tutar. Çıktı languages/invum-pos.pot — repo'da tutuluyor, bu yüzden Loco Translate fresh checkout'ta da çalışır.
CI doğrulaması
Değiştirilen string'ler POT'a yansımayı unutmasın diye bir CI gate önerilir:
# .github/workflows/i18n.yml (öneri)
- name: POT freshness check
run: bin/build-pot.sh --check
Bu, PR'larda yeni string eklenmiş ama POT yenilenmemişse build'i kırar.
.po / .mo dosyalarını repo'ya koymama kararı
languages/.gitignore .po ve .mo dosyalarını dışarıda bırakır. Sebep:
- Çevirinin "kanonik" hâli yok — her merchant Loco veya GlotPress üzerinden kendi kullanıcı kitlesine uygun varyantı yapabilir.
- Eklenti zip'inin boyutunu küçük tutar (her dil eklenmiş bir POT dosyası 50-200 KB).
- Üst-düzey katkılar
WP-Polyglotsüzerinden translate.wordpress.org mirror'ına düşürülebilir (Faz 2 hedefi).
Üçüncü-parti modüller
Pro/Module/SmartRuleEngine/... ve gelecekteki tüm Pro modüller aynı invum-pos text-domain'i altında olduğu için tek bir Loco proje içinde toplu çevrilirler — her modül için ayrı domain açmadık.
Bilinen sorunlar
| Sorun | Çözüm | |——-|——-| | "Loco POT bulamıyor" uyarısı | languages/invum-pos.pot dosyasının eklenti dizininde olduğunu doğrula. Eksikse bin/build-pot.sh çalıştır. | | Yeni eklenen string Loco'da görünmüyor | POT yenilenmemiş. bin/build-pot.sh çalıştır + plugin'i yeniden yükle. | | load_textdomain_just_in_time notice'ı WP-CLI çıktısında | Bilinen erken-yükleme uyarısı (Faz 1.5 backlog'da). Loco üzerinde etki yok, çevirileri kıracak bir şey değil. |
Polylang ile birlikte kullanım
Loco Translate statik plugin string'lerini çevirir — yani kodda __( 'Yeni kart kullan', 'invum-pos' ) gibi geçen literallar. Merchant'ın WC settings ekranında girdiği dinamik string'ler (gateway description copy, vb.) için Polylang String Translation gerekir — ayrı doc: docs/integrations/polylang.md.
İki eklenti birlikte kurulduğunda çakışma yok — farklı katmanları çevirirler.