Polylang — uyumluluk notları

Polylang — uyumluluk notları

> Son güncelleme: 2026-05-06 (Hafta 17) > Durum: Native uyumlu — InvumPosI18nPolylangBridge her gateway'in description/title metnini Polylang String Translation UI'sına otomatik yükler.

Polylang, WordPress için en yaygın çoklu-dil eklentisi (700K+ aktif kullanıcı). WPML'in ücretsiz alternatifi. POS Entegratör iki katmanda Polylang ile çalışır:

| Katman | Çevirilen | Mekanizma | |——–|———–|———–| | Statik plugin string'leri | Kodda __( 'Yeni kart kullan', 'invum-pos' ) gibi geçen literallar | languages/invum-pos.pot dosyası — Loco Translate veya .po/.mo dosyaları üzerinden çevrilir. Polylang'a özgü değil; her i18n eklentisi bunu okur. | | Dinamik merchant copy | WC settings ekranında girdiğin Description / Title metni | pll_register_string() ile Polylang String Translation UI'sına surface edilir. Bu sayfanın konusu. |

Otomatik kayıt — nasıl çalışır

PolylangBridge::register_strings() init hook'unun priority 30'unda çalışır ve her aktif provider için (wc_gateway_class non-null + description boş değil) iki Polylang string'i kaydeder:

  • <provider_id>_description (multiline)
  • <provider_id>_title (single line)

Tümü "Invum POS" grubu altında toplanır → Polylang admin → Diller → Dize Çevirileri ekranında tek "Invum POS" başlığı altında listelenir.

Polylang aktif değilse?

pll_register_string fonksiyonu mevcut değildir → bridge sessizce çıkar, hiçbir yan etki yok. Yani Polylang olmayan kurulumlarda bu kod çalıştırılır ama bir şey yapmaz.

Çeviri akışı (merchant tarafı)

  1. WP admin → Diller → Diller ekranından site dillerini ekle (örn. Türkçe + İngilizce).
  2. WP admin → WooCommerce → Ayarlar → Ödemeler → iyzico'ya gir, "Description" alanına Türkçe metin yaz, kaydet.
  3. WP admin → Diller → Dize Çevirileri ekranını aç.
  4. Grup: Invum POS filtresini seç. iyzico_description satırını bul.
  5. Sağdaki sütunlara İngilizce çevirisini gir, kaydet.
  6. Müşteri checkout'a girip dilini İngilizce yaptığında iyzico tile'ında İngilizce description görür.

Manuel string ekleme (hooks/filters)

Üçüncü-parti plugin kendi gateway'ini Invum POS Provider Registry'ye ekliyorsa (wc_gateway_class ile), bridge otomatik onu da yakalar — ek kod gerekmez. Sadece özel bir merchant copy alanını Polylang'a vermek istiyorsa:

add_action( 'init', function () {
    if ( ! function_exists( 'pll_register_string' ) ) {
        return;
    }
    $custom = get_option( 'my_custom_invum_addon_message', '' );
    if ( '' !== $custom ) {
        pll_register_string(
            'my_custom_invum_message',
            $custom,
            'Invum POS',
            true
        );
    }
}, 31 ); // bridge priority 30'dan sonra çalışmak için

Bilinen sınırlamalar

  • Provider id'si dinamiktiriyzico, paytr, nestpay_akbank vb. WC gateway sınıfı registered olduktan sonra <id>_description / <id>_title Polylang'a düşer. Yeni bir provider eklendiğinde bridge onu otomatik yakalar; ama merchant ilk kez "Description" alanını doldurmadan önce o satır Polylang'a yansımaz.
  • WC admin "Translate" butonu yok — Description alanının yanında doğrudan çeviri linki yok. Merchant Polylang'ın String Translation ekranına manuel gitmek zorunda. Bu Polylang'ın WC entegrasyon şemasının doğal sınırı, bizden değil.
  • Title alanı opsiyonel kayıt — WC Title alanı her zaman bir değer içerir (boş bırakılırsa varsayılan WC etiketleri kullanılır). Bridge sadece dolu olduğunda kayıt eder; boş tutarsa Polylang'da satır oluşmaz.

Doğrulama smoke testi

# Polylang aktif WP install'da:
wp eval 'do_action("init");'
wp eval 'echo PLL()->frontend->static_pages->get_languages_links();'

# String'lerin kayıt olduğunu doğrula:
wp eval '
$registered = get_option( "polylang_string_translations", array() );
foreach ( $registered as $row ) {
    if ( "Invum POS" === ( $row["context"] ?? "" ) ) {
        echo $row["name"] . ": " . substr($row["string"], 0, 50) . "...n";
    }
}
'

WPML ile birlikte kullanım?

Polylang ve WPML aynı anda aktif olamaz. Bu sayfa sadece Polylang odaklı — WPML kullanan merchant'lar için ayrı bir bridge gerekir (Hafta 19+ atomu, çoğu merchant Polylang kullanıyor diye öncelik düşük).

Alışveriş Sepeti