# Çok dilli bir WordPress sitesinde çevrilmemiş metinler

> Çok dilli bir WordPress sitesi bazı yerlerde hâlâ kaynak dildeki metni gösteriyor: sitenin WPML mi yoksa Polylang mi kullandığına göre neden hiçbir zaman tam olarak aynı değildir; çevrilmemiş bir metin ya bir yerde kayıtlı değildir ya da kod düzeltilmediği sürece yapısal olarak çevrilmesi mümkün değildir.

- Source canonique : [https://allaux.fr/tr/wordpress-woocommerce/problemes/traduction-incomplete](https://allaux.fr/tr/wordpress-woocommerce/problemes/traduction-incomplete)
- Langue : TR
- Dernière mise à jour : 2026-09-30

## Doğrudan yanıt

> Önce dizeyi tema veya eklenti dosyalarında arayın ve __(), _e() ya da esc_html__() işlevlerinden geçip geçmediğine bakın. Bir şablona doğrudan yazılmışsa hiçbir araç onu çeviremez: düzeltme, tercihen bir alt temanın functions.php dosyasından, kodda yapılır. gettext üzerinden geçiyorsa uyuşmayan şey bildirilen text domain ya da yüklenen .mo dosyasıdır.

## Nasıl ilerliyorum

1. **Metnin kaynağının bulunması** — Metnin temadan mı, bir WooCommerce eklentisinden mi, yoksa JavaScript ile eklenen bir içerikten mi geldiğini kontrol ediyorum, çünkü her durum farklı şekilde ele alınır.
2. **Text domain kontrolü** — load_plugin_textdomain() veya load_theme_textdomain() fonksiyonunun beklenen /languages klasörünü doğru şekilde yüklediğini ve eklenti veya tema başlığında belirtilen text domain’i doğru gösterdiğini kontrol ediyorum.
3. **Kod içinde arama** — Metnin __(), _e() veya esc_html__() üzerinden geçip geçmediğini kontrol ediyorum. Bir şablona veya PHP dosyasına sabit olarak yazılmışsa, hangi araç kullanılırsa kullanılsın çevrilebilir olarak hiç kaydedilmemiştir.
4. **Çeviri veya kod düzeltmesi** — Zaten kayıtlı ama çevrilmemiş bir metin için WPML String Translation veya Polylang çeviri editörüne ekliyorum. Sabit kodlanmış bir metin için ise kaynağı, bir gettext fonksiyonundan geçecek şekilde düzeltiyorum.
5. **Güncelleme sonrası kontrol** — Yakın zamanda yapılan bir tema veya eklenti güncellemesinin, bir sonraki dağıtımda üzerine yazılabilecek şekilde saklanan özel çevirileri sıfırlayıp sıfırlamadığını kontrol ediyorum.

## Düzenli olarak ele aldığım durumlar

- Sitenin geri kalanı çevrilmişken bir düğme, hata mesajı veya sepet metni kaynak dilde kalıyor
- Bir metin WPML String Translation’da doğru şekilde görünüyor ama sitede hiçbir zaman çevrilmiyor
- JavaScript ile eklenen bir metin, doğrulama mesajı veya bildirim, hiçbir zaman çeviriden geçmiyor
- Bir tema veya eklenti güncellemesinden sonra özel çeviriler kayboldu
- Yeni bir dil eklendiğinde birden bir düzine hiç çevrilmemiş metin ortaya çıkıyor

## Bir metin neden çevrilmeden kalır

Çok dilli bir WordPress sitesi genellikle WPML veya Polylang üzerine kuruludur; bu iki eklenti, WordPress’in gettext fonksiyonları — __(), _e(), esc_html__() — üzerinden kaydedilen ve ilgili tema ya da eklentinin text domain’ine bağlı metinleri çevirir. Bir metin çeviri aracında hiçbir zaman görünmüyorsa, bunun ilk nedeni genellikle yapısal olarak çevrilebilir olmamasıdır: gettext’ten geçmeden bir PHP dosyasına veya şablona sabit olarak yazılmıştır.

İkinci sık görülen durum ise şudur: metin çevrilebilir bir metin olarak gerçekten mevcuttur, ancak text domain doğru şekilde yüklenmemektedir; örneğin load_plugin_textdomain() eksiktir veya yanlış /languages klasörünü göstermektedir. .po ve .mo dosyaları vardır, ama WordPress onları hiçbir zaman aramaz.

WPML’nin String Translation modülü yalnızca doğru şekilde kaydedilmiş olanı bulur: JavaScript ile eklenen bir metin veya gettext’e bütün olarak verilmek yerine PHP içinde birleştirilerek oluşturulan bir metin, tarama tarafından düzenli olarak atlanır.

## Birkaç metni çevirmek, kod düzeltmek değildir

> Zaten çevrilebilir olan birkaç metni kaydedip çevirmek, doğrudan WPML veya Polylang üzerinde yapılan bir yapılandırma işidir. Temada veya bir eklentide sabit kodlanmış metni gerçekten çevrilebilir hâle getirmek ise kaynak kodun gettext fonksiyonlarından geçecek şekilde değiştirilmesini gerektirir: bu bir geliştirme işidir.

## İlgili sayfalar

- **Özel eklenti geliştirme** — Sabit kodlanmış bir metni gerçekten çevrilebilir hâle getirmek kaynak kodun değiştirilmesini gerektirir. ([/wordpress-woocommerce/extension-sur-mesure](/wordpress-woocommerce/extension-sur-mesure))
- **Mağazada görünmeyen ürünler** — Orijinaline bağlanmamış bir WPML çevirisi de bir ürünü bir dilde görünmez hâle getirebilir. ([/wordpress-woocommerce/problemes/produits-invisibles-boutique](/wordpress-woocommerce/problemes/produits-invisibles-boutique))
- **WordPress bakımı** — Her güncellemeden sonra yapılan düzenli takip, özel çevirilerin kaybolmasını önler. ([/services/maintenance](/services/maintenance))

## FAQ

### Bazı metinler WPML String Translation’da neden hiç görünmüyor?

Çünkü kod içinde çevrilebilir olarak kayıtlı değiller: bir PHP dosyasına sabit kodlanmış veya birleştirme yoluyla oluşturulmuş bir metin WPML tarafından hiçbir zaman taranmaz. Önce kodun bir gettext fonksiyonundan geçecek şekilde düzeltilmesi gerekir.

### WPML yerine Polylang kullanıyorum, bu bir şeyi değiştirir mi?

Prensip aynıdır: ikisi de WordPress’in gettext fonksiyonlarına ve doğru yüklenmiş bir text domain’e dayanır. Sadece çeviri arayüzü ve saklama yöntemi farklıdır.

### Tema güncellemesi yaptığım çevirileri sildi, neden?

Bu, çeviri eklentisinin bu metinleri nasıl sakladığına bağlıdır: bazı saklama yöntemleri, kaynak dil dosyalarını yeniden oluşturan bir güncelleme tarafından üzerine yazılır. Herhangi bir şeyi düzeltmeden önce bu mekanizmayı kontrol ediyorum.

### Eksik metinlerin çevrilmesi ne kadar sürer?

Zaten çevrilebilir ama çevrilmemiş metinler için hızlıdır, çoğu zaman birkaç saat sürer. Sabit kodlanmış metni çevrilebilir hâle getirmek ise ilgili dosya ve tekrar sayısına bağlıdır.

### Metin önizlemede çevrilmiş görünüyor ama canlı sitede görünmüyor, neden?

Bu genellikle bir önbellek sorunudur: çeviri kaydedilmeden önce önbelleğe alınmış bir sayfa, önbellek temizlenene kadar eski hâlini göstermeye devam eder.
