WPML Siteleri için Metin Okuma: Gerçekten İşe Yarayan Yöntemler

11 dk okuma 14 dk dinleme
WPML Siteleri için Metin Okuma: Gerçekten İşe Yarayan Yöntemler

WPML kullanan bir sitede her çevirinin kendi dilinde seslendirilmesini istiyorsanız, seçtiğiniz eklentinin üç şeyi doğru yapması gerekir: çevrilen gönderiyi okuması, her dil için ayrı bir ses dosyası oluşturması ve AJAX çağrıları sırasında aktif dili doğru algılaması. Çoğu metin okuma eklentisi bu üç noktadan birinde başarısız olur. Metin Okuma - TTSWP, bu üçünü de karşılamak üzere geliştirildi.

Bu yazı, Weglot rehberimizin pratik karşılığıdır. Teknik yaklaşım tam tersi olduğundan, önce nedenini açıklayarak başlayacağız.

WPML çevirileri gerçek gönderiler olarak saklar. Weglot saklamaz.

WPML ve Weglot, çok dilli WordPress sorununu birbirinden çok farklı şekillerde çözer. Bu fark, bir metin okuma eklentisinin ne yapması gerektiğini belirler.

WPML her çeviri için ayrı bir gönderi kaydı oluşturur. Bir makalenin İngilizce versiyonu wp_posts tablosunda bir ID ile, İspanyolca versiyonu ise farklı bir ID ile aynı tabloda yer alır. WPML bunları icl_translations tablosu üzerinden birbirine bağlar. Çevrilen metin, insan tarafından ya da WPML'nin makine çevirisi hattıyla düzenlenen gerçek bir veritabanı içeriğidir.

Weglot bunun tam tersidir. Veritabanında yalnızca orijinal içerik bulunur. Çeviriler çalışma zamanında üretilir ve sayfa tarayıcıya ulaşmadan önce çıktı HTML'sine eklenir. Weglot kullanan bir sitede get_post() ile içerik okuyan bir eklenti her zaman yalnızca kaynak dili görür.

Metin okuma açısından bu her şeyi değiştirir. WPML'de gönderi içeriğini veritabanından okumak doğrudur; çevrilen metin zaten oradadır. Sorunlar, eklentinin hangi gönderiyi okuduğu, hangi dilde olduğunu düşündüğü ve tek bir ses dosyası mı yoksa birden fazlasını mı sakladığıyla ilgilidir.

WPML'nin ayrı gönderi saklama modelini Weglot'un çalışma zamanı çevirisiyle karşılaştıran ve her model için ses dosyası sonuçlarını gösteren diyagram
WPML her çeviriyi veritabanında ayrı bir gönderi olarak tutar. Weglot çeviriyi çalışma zamanında yapar. Bu iki model, farklı metin okuma stratejilerini zorunlu kılar.

WPML metin okuma eklentilerinin düştüğü dört tuzak

Çok dilli bir WPML test ortamında çeşitli kurulumları denedik. Aynı dört sorun tekrar tekrar karşımıza çıktı. Mevcut eklentinizde bunlardan herhangi biri varsa, ziyaretçilerinizin duyduğu ses yayınladığınızı sandığınız ses değildir.

1. AJAX dil algılama hatasından kaynaklanan yanlış dil sesi

Bu, sessiz sedasız zarar veren bir sorudur. Çoğu metin okuma oynatıcısı, sayfa yüklendikten sonra ses dosyasını veya akış URL'sini bir admin-ajax ya da REST isteğiyle çeker. Bu istek sırasında WordPress ön uç URL bağlamını kaybeder. Eklenti WPML'ye "hangi dildeyiz?" diye sorar ve yanlış yanıt alır.

Yaygın neden, eski ICL_LANGUAGE_CODE sabitidir. Bu sabit, istek başında bir kez tanımlanır ve WPML'nin başlangıçta algıladığı dili yansıtır. İspanyolca bir sayfadan tetiklenen bir AJAX çağrısında bu sabit çoğu zaman İspanyolca yerine varsayılan dili döndürür. Metin okuma eklentisi bunun üzerine İspanyolca bir makale için İngilizce ses üretir ya da önbellekteki İngilizce dosyayı çekip İspanyolca oynatıcının altında oynatır.

Doğru yaklaşım, WPML'nin çalışma zamanı filtrelerini kullanmaktır. wpml_current_language filtresi, sorduğunuz anda aktif dili döndürür. wpml_post_language_details kancası, belirli bir gönderinin hangi dile ait olduğunu döndürür. Bu yaklaşım sesi istek durumuna değil gönderi ID'sine bağladığı için daha güvenlidir.

Bunu okuyucu olarak nasıl fark edersiniz: çevrilmiş bir makaleyi açın, oynat düğmesine basın ve sesin ilk saniyesini dinleyin. İngilizce olmayan bir sayfada İngilizce bir ses duyuyorsanız, eklentiniz yanlış dil algılama yolunu kullanıyordur.

2. Tüm çeviriler arasında paylaşılan tek ses dosyası

Bazı eklentiler orijinal gönderi yayınlandığında sesi oluşturur ve aynı dosyayı tüm çevirilere ekler. Bu hızlı ve ucuzdur. Ama yanlıştır. İspanyolca okuyan bir ziyaretçi İngilizce anlatım ya da okuduğu sayfayla uyuşmayan yapay bir aksanla karşılaşır.

WPML çevirileri ayrı ID'lere sahip ayrı gönderiler olduğundan, doğru davranış her çevrilen gönderi için yeni bir ses dosyası oluşturmaktır. Her dosya kendi gönderi ID'sine karşı saklanır ve yalnızca o çeviriye sunulur. TTSWP bu modeli benimser ve orijinal ID yerine gönderi ID'sini önbellek anahtarı olarak kullanır.

3. Her dili aynı sesin okuması

İngilizce eğitimli bir sesle okunan Fransızca bir makale, kelimeler doğru olsa bile kulağa yanlış gelir. ElevenLabs sesleri, eğitim verilerinden gelen aksanı ve konuşma ritmini taşır. Amerikan İngilizcesi üzerine eğitilmiş bir ses, hedef dile uygun bir ses atamadığınız sürece Fransızcayı Amerikan aksanıyla okur.

TTSWP, her WPML dili için bir ElevenLabs sesi atamanıza olanak tanır. İspanyolca çeviriye İspanyolca eğitimli bir ses, Almanca çeviriye Almanca bir ses atanır ve böyle devam eder. Kurulum için dil-ses eşleme belgelerine bakabilirsiniz.

4. Sesin dilini belirtmeyen şema

Bu, çoğu eklentinin görmezden geldiği AEO detayıdır. AudioObject yapılandırılmış verisi bir inLanguage özelliği taşımalıdır. Bu değer, sayfanın hreflang etiketiyle eşleşen bir IETF BCP 47 etiketi (es, de, tr) olmalıdır.

Eşleşen bir inLanguage değeri, arama motorlarına ve yapay zeka araçlarına sesin hangi dilde olduğuna dair açık, makine tarafından okunabilir bir sinyal verir. Sayfada zaten bulunan hreflang sinyalini güçlendirir. Şema eksikse ya da her çeviri aynı yalnızca İngilizce değeri taşıyorsa bu sinyal kaybolur ve dil farkında sistemler sürümleri birbirinden ayırt edemez. Yapay zeka motorlarının sesi nasıl değerlendirdiğini AEO ve ses rehberimizde ele aldık.

WPML kapsamı için doğru ElevenLabs modelini seçmek

ElevenLabs birden fazla model sunar ve tüm modeller aynı dilleri desteklemez. WPML'nin sunduğu bir dil, seçtiğiniz modelde ElevenLabs tarafından desteklenmiyorsa o çeviriyi düzgün şekilde seslendirmeniz mümkün değildir.

2026 itibarıyla güncel kapsam şu şekildedir:

  • Multilingual v2, İngilizce, İspanyolca, Fransızca, Almanca, İtalyanca, Portekizce, Hollandaca, Lehçe, İsveççe, Danca, Fince, Türkçe, Arapça, Hintçe, Japonca, Korece ve Çince dahil 29 dili destekler.
  • Flash v2.5, v2'nin tüm dillerine ek olarak Macarca, Norveççe ve Vietnamcayı da kapsayan 32 dili yaklaşık 75 ms model gecikmesiyle destekler.
  • Eleven v3, 74 dil desteğiyle tüm modeller arasında en geniş kapsamı sunar. Bununla birlikte, ekstra özelliklerinin ağır bastığı bir kısıtlaması vardır: gerçek zamanlı kullanım için tasarlanmamıştır. ElevenLabs bunu açıkça belirtir. Model daha büyüktür ve daha yüksek kaliteli bir ses kodeki kullanır, bu nedenle üretim süresi daha uzundur. Gerçek zamanlı veya sohbet tabanlı kullanım senaryoları için ElevenLabs Flash v2.5'i önerir.

Norveççe çevirisi olan bir WPML sitesi için Multilingual v2 yeterli olmaz. Flash v2.5 olur. Yalnızca v3'ün desteklediği bir dile ihtiyaç duyan bir site, daha geniş kapsam karşılığında daha yüksek üretim gecikmesini kabul etmek zorundadır. TTSWP her dili seçtiğiniz bir sese yönlendirir, böylece gerektiğinde modelleri karma kullanabilirsiniz.

Metin okuma eklentinizin WPML'yi gerçekten karşılayıp karşılamadığını test etmek

Bunu anlamak için kod okumanıza gerek yok. Tarayıcıda beş dakika yeterlidir.

  1. Dili değiştirin. Orijinal makaleyi açın, ardından WPML dil değiştirici aracılığıyla bir çeviriye geçin. URL'nin değiştiğini (örneğin /es/ olduğunu) ve gönderi slug'ının çevrilmiş slug olduğunu doğrulayın.
  2. Oynat düğmesine basın ve dinleyin. Ses, sayfanın diliyle eşleşmelidir. İspanyolca bir sayfada İngilizce ses duyuyorsanız eklenti ilk adımda başarısız olmuştur.
  3. Ses URL'sini inceleyin. Oynatıcıya sağ tıklayın, ses kaynağını kopyalayın. Bunu orijinal makaledeki ses URL'siyle karşılaştırın. Her iki URL diller arasında aynıysa eklenti tek bir dosya kullanıyordur.
  4. Sayfa kaynağını açın ve AudioObject arayın. Bir inLanguage alanı olup olmadığına bakın. Bu değer sayfanın dil koduna eşit olmalıdır. Alan eksikse ya da her zaman en gösteriyorsa şema yanlıştır.
  5. hreflang etiketini kontrol edin. Sesteki inLanguage değeri sayfadaki hreflang etiketiyle eşleşmelidir. Uyuşmazlıklar yapay zeka aramayı karıştırır ve dil başına alıntıyı bozar.

Herhangi bir şey satın almadan önce bu kontrol listesini uygulayın. Yalnızca TTSWP için değil, her metin okuma eklentisinde çalışır.

Doğru bir WPML metin okuma kurulumu nasıl görünür?

Bir üretim WPML sitesi için önerilerimiz şunlardır. Her adım, yukarıda belirtilen bir hata moduna karşılık gelir.

KonuYanlış yaklaşımDoğru yaklaşım
AJAX'ta dilICL_LANGUAGE_CODE sabitiGönderi ID'sine bağlı wpml_current_language filtresi veya wpml_post_language_details
Ses depolamaÇeviriler arasında paylaşılan tek dosyaÇevrilen gönderi ID'si başına bir dosya, CDN üzerinden sunulan
Ses seçimiHer dil için aynı sesHer WPML dili için eşlenmiş bir ElevenLabs sesi
Model seçimiTüm diller için sabit kodlanmış modelDil başına Multilingual v2, Flash v2.5 veya Eleven v3 seçimi
ŞemaEksik veya yalnızca İngilizce AudioObjectSayfanın hreflang etiketiyle eşleşen inLanguage içeren AudioObject

TTSWP varsayılan olarak sağ sütunu izler. Eklenti çevrilen gönderiyi doğrudan okur, gönderi ID'si başına yeni bir ses dosyası oluşturur, bunu CloudFront üzerinden sunar ve dil başına AudioObject şeması yayınlar. Kurulum adımları için WPML entegrasyon belgelerine bakabilirsiniz.

Bilinen bir sınırlama

Dil başına ses oluşturmak, paylaşılan tek bir dosyaya kıyasla daha fazla karakter tüketir. 1500 kelimelik bir makaleyi beş dile çevirirseniz, bir değil beş üretim için ödeme yaparsınız. Bu, doğruluğun bedelidir. Tek bir dosya paylaşmak daha ucuz olurdu, ancak ses sayfayla eşleşmezdi. Okuyucu deneyimini kredi tasarrufu uğruna feda etmenizi önermiyoruz ve bunu kredi belgelerinde açıkça belirtiyoruz.

Bütçeniz kısıtlıysa, yalnızca gerçek trafik alan diller için ses oluşturun. WPML'nin dil istatistikleri ve analizleriniz, hangi çevirilerin seslendirilmeye değer olduğunu size gösterir.

Sık sorulan sorular

TTSWP, WPML'yi kutudan çıkar çıkmaz destekliyor mu?

Evet. Her iki eklenti de etkinleştirildiğinde TTSWP, WPML'yi algılar, her dil için çevrilen gönderi içeriğini okur ve çeviri başına ayrı bir ses dosyası saklar. TTSWP ayarlarında her dil için bir ses atarsınız, ardından çevirileri normal şekilde yayınlarsınız. Bir çeviri güncellendiğinde ses yeniden oluşturulur. Kurulum adımları için WPML entegrasyon sayfasına bakabilirsiniz.

Mevcut metin okuma eklentim neden çevrilmiş sayfalardaki her şeyi İngilizce okuyor?

En olası neden, bir AJAX çağrısı içindeki eski ICL_LANGUAGE_CODE sabitidir. AJAX sırasında bu sabit, aktif dil yerine sitenin varsayılan dilini döndürür; bu yüzden eklenti İngilizce olmayan sayfalarda İngilizce ses oluşturur veya sunar. Çözüm, wpml_current_language filtresine geçmek ya da dili doğrudan gönderi ID'sinden okumaktır.

WPML dillerine göre farklı ElevenLabs sesleri kullanabilir miyim?

Evet. TTSWP, her WPML diline bir ElevenLabs sesi eşler. İspanyolca çeviriler İspanyolca bir ses tarafından okunur, Almanca çeviriler Almanca bir ses tarafından okunur ve bu böyle devam eder. Hedef dilin yalnızca Flash v2.5 veya Eleven v3 tarafından desteklendiği durumlarda, dil başına farklı modeller de seçebilirsiniz.

ElevenLabs, WPML siteleri için hangi dilleri kapsıyor?

Multilingual v2 29 dili, Flash v2.5 32 dili (Norveççe, Macarca ve Vietnamca eklenerek), Eleven v3 ise 74 dili kapsar. Gecikme bütçenizin izin verdiği en geniş kapsamlı modeli seçin. Çoğu WPML sitesi Multilingual v2 veya Flash v2.5 ile iyi sonuçlar alır. Daha nadir dillere ihtiyaç duyan siteler, söz konusu çeviriler için Eleven v3'e geçer.

TTSWP, yapay zeka araması için dil başına şema yayınlıyor mu?

Evet. TTSWP, her çevrilen gönderi için sayfanın hreflang etiketiyle eşleşen bir inLanguage değeri içeren bir AudioObject yayınlar. Bu, arama motorlarına ve yapay zeka araçlarına hangi sesin makalenin hangi dil sürümüne ait olduğunu açıkça bildirir. Her çevirinin aynı şekilde etiketlenmesinin önüne geçer.

Sonraki adım

Şu an kullandığınız metin okuma eklentisine beş adımlı tarayıcı testini uygulayın. Herhangi bir adım başarısız olursa, daha fazla çeviri eklemeden önce o sorunu çözmeniz gerekir. Beşini de kutudan çıkar çıkmaz karşılayan bir kurulum istiyorsanız, WordPress.org'dan Metin Okuma - TTSWP'yi yükleyin, TTSWP arka ucuna bağlayın ve her WPML dili için bir ses atayın. Gerisini eklenti halleder.

Metin Okuma Nedir? Sade Bir Anlatım

Metin Okuma Nedir? Sade Bir Anlatım

Metin okuma, yazılı içeriği sesli anlatıma dönüştürür. Nasıl çalıştığını, neden önemli olduğunu ve WordPress sitenize nasıl ekleyebileceğinizi öğrenin.

11 dk okuma Has audio