WPML ve Polylang
4 dk okuma
Bir yazının çevirileri olduğunda (WPML veya Polylang'de) her çeviri, kendi alan değerleri satırına sahip ayrı bir yazıdır. Çok dilli entegrasyon, bu satırların birbiriyle ilişkisini alan bazında belirler. Bir ürünün SKU'su her dilde aynı olmalıdır; açıklaması çevrilmelidir; dahili bir not ise çeviriyi hiç takip etmemelidir.
Plan | Business ve Agency (özellik: |
Gereksinim | WPML veya Polylang etkin olmalıdır. Bunlardan biri yoksa ayar gizlenir ve her alan Translate gibi davranır. |
Kapsam | Yazılar (çevirisi olan tüm yazı türleri). Kullanıcılar, terimler, yorumlar ve seçenekler kapsam dışıdır. |
Ayar: "In translations"
Oluşturucuda bir alanı açın, Display sekmesi. In translations seçimi (ipucu: What a WPML or Polylang translation of the post gets for this field.) üç moda sahiptir:
Mod | Oluşturucudaki etiket | Anlamı |
|---|---|---|
| Translate (start from the original) | Çevirinin kendi değeri vardır. Çeviriyi başlattığınızda orijinalden önceden doldurulur, ardından serbestçe düzenlenir. |
| Copy (always the original value) | Çeviri her zaman orijinalin değerini taşır. İki yazıdan biri her kaydedildiğinde çeviri, orijinalin değeriyle ezilir. |
| Ignore (start empty) | Çeviri boş başlar. Hiçbir zaman kopyalanmaz veya eşitlenmez. |
Bir tanımda (dışa aktarma dosyası veya PHP kaydı) mod, alanın translation değeridir; translate varsayılandır ve dışa aktarımlarda yer almaz:
[ 'key' => 'sku', 'label' => 'SKU', 'type' => 'text', 'translation' => 'copy' ],
[ 'key' => 'title', 'label' => 'Title', 'type' => 'text' ], // translate
[ 'key' => 'note', 'label' => 'Note', 'type' => 'text', 'translation' => 'ignore' ],Bir üst düzey alanın modu, alanın sakladığı her şeyi kapsar: bir tekrarlayıcının satırları, bir bağlantının parçaları ve ona ait diğer sütunlar (bir çoğaltmanın kopyalayacağı sütunların aynısı). Alt alanlar kapsayıcılarını izler.
"Orijinal" nedir?
Eklenti | Orijinal | Çeviriler |
|---|---|---|
WPML | WPML'nin çeviri grubunun orijinali (kaynak dil) olarak işaretlediği yazı | Grubun diğer yazıları |
Polylang | Polylang'in varsayılan dilindeki yazı | Diğer dillerin yazıları |
Polylang'de, varsayılan dilde yazısı olmayan bir çeviri grubunun orijinali yoktur: bu yazılar arasında hiçbir şey kopyalanmaz veya eşitlenmez (yalnızca de ve fr yazılarıyla doğrulandı).
Ne zaman ne olur
Yeni bir çeviri başlatırsınız
Yeni yazının düzenleme ekranı, yazı kaydedilmeden önce değerleri gösterir:
- WPML: çeviri ekleme bağlantısı
triddeğerini ve yazı türünü taşır; Polylang:from_post. - Mod Translate ve Copy olan alanlar orijinalden önceden doldurulur; Ignore alanlar boştur.
- Çevirmen yazıyı kaydedene kadar hiçbir şey saklanmaz. Ön doldurma yalnızca çevirinin o grup için kayıtlı satırı olmadığı sürece geçerlidir; sonrasında kaydedilen değerler gösterilir.
Orijinalin kendisini açtığınızda özel bir şey görünmez.
Bir çeviriyi kaydedersiniz
Düzenleme ekranı değerlerini sakladıktan sonra, Copy alanları orijinalin güncel değerleriyle ezilir. Translate ve Ignore alanları çevirmenin yazdığı değeri korur. Çevirmen bir Copy alanına yazabilir, ancak değer kayıtta değiştirilir (alan salt okunur yapılmaz).
Orijinali kaydedersiniz
Orijinalin Copy alanlarının her biri, tüm çevirilerinde orijinalin değerlerine güncellenir; henüz satırı olmayan bir çeviriye bu sütunlarla bir satır eklenir. Çevirilerdeki Translate ve Ignore alanlarına dokunulmaz. Orijinalde bir Copy alanını temizlemek (orijinalin satırı varsa) çevirilerde de temizler.
Orijinalin hiç satırı yoksa, hiçbir şey kopyalanmaz ve çeviriler kendi değerlerini korur (doğrulandı).
Çoğaltırsınız (yalnızca WPML)
WPML bir yazının kopyasını başka bir dilde oluşturduğunda (icl_make_duplicate), kopya; Translate ve Copy modundaki her alanın değerlerini alır. Ignore alanlar boş kalır. Polylang'de karşılık gelen bir hook yoktur; orada yalnızca yeni çeviride ön doldurma geçerlidir.
Bir alanın modunu sonradan değiştirirsiniz
Hiçbir şey hemen yeniden yazılmaz. Copy moduna geçirilen bir alan, orijinal veya bir çeviri bir sonraki kaydedildiğinde eşitlenir.
Örnek: üç dilli ürün kataloğu
- Alanlar:
sku(Copy),price(Copy),tagline(Translate),internal_note(Ignore). - İngilizce ürünü SKU
A-100, fiyat 19.50 ve bir slogan ile oluşturun. - WPML veya Polylang'de Almanca için + simgesine tıklayın. Almanca düzenleme ekranı SKU, fiyat ve sloganla önceden doldurulmuş (slogan İngilizce, çevrilmek üzere) ve boş bir notla açılır.
- Sloganı çevirip kaydedin. Çevirmen ne yazarsa yazsın SKU ve fiyat
A-100ve19.5olarak kalır. - Daha sonra İngilizce fiyatı değiştirip güncellersiniz. Tüm çevirilerin fiyatı bunu izler.
Nasıl doğrulandı
Dokümantasyon sitesinde ne WPML ne de Polylang kurulu. Davranış, eklentinin okuduğu genel API'lerin aynı şekilde taklit edilmesiyle test edildi: WPML'nin wpml_element_trid ve wpml_get_element_translations filtreleri ile icl_make_duplicate; Polylang'in pll_get_post_translations() ve pll_default_language(). Business planı, simüle edilmiş planlarla test edildi: Pro planında ve süresi dolmuş bir lisansta ön doldurma, eşitleme ve çoğaltma hiçbir şey yapmadı ve ayar gizlendi. Her iki eklentinin gerçek çeviri ekranları (WPML'nin kendi özel alan eşitleme ayarları dahil) denenmedi.
Sınırlamalar
- Yalnızca yazılar. Çevirisi olan terimler, kullanıcılar ve seçenekler işlenmez.
- Bir alan tam olarak üç moddan biri olabilir. Dil bazında ayar yoktur ve hariç tutulacak dil listesi yoktur.
- Entegrasyon değerleri kayıtlı satırdan okur; metni çevirmez. Makine çevirisi bunun parçası değildir.
- WPML'nin veya Polylang'in kendi özel alan eşitlemesini ortadan kaldırmaz: aynı adlı bir özel alanı WPML'nin Custom Field Translation bölümünde de yapılandırırsanız WPML, eklentinin tablolarından ayrı olan yazı metasını kopyalar. Grup tablolarındaki alanlar için In translations ayarını kullanın.
- Yazı başlığı, içerik ve diğer çekirdek alanlar WPML veya Polylang tarafından yönetilir.
- Programatik SEO (Pro), oluşturulan sayfalar için kendi dil yönetimine sahiptir; bkz. Multilingual pages.
Sorun giderme
Sorun | Kontrol |
|---|---|
Oluşturucuda In translations seçimi yok | Plan Business veya Agency olmalı, WPML ya da Polylang etkin olmalı ve alan Display sekmesinde düzenlenmelidir. |
Çeviri önceden doldurulmuyor | Çevirinin o grup için zaten kayıtlı bir satırı var (daha önce kaydedildi), yazının orijinali yok veya yeni çeviri bağlantısı |
Bir Copy alanı sürekli eski haline dönüyor | Tasarım gereği: her kayıtta orijinalin değeriyle ezilir. Orijinali düzenleyin veya alanı Translate moduna geçirin. |
Polylang: hiçbir şey kopyalanmıyor | O çeviri grubunda varsayılan dilde bir yazı yok. |
Bir alan Copy moduna geçirildikten sonra değerler farklı | Orijinali bir kez kaydedin; çeviriler kayıt sırasında eşitlenir. |
Hâlâ takıldınız mı? Destek ile iletişime geçin