WordPress eklentilerini çevirme hakkında bilmeniz gereken her şey
WordPress’i çevirme hakkında birçok makale olmasına rağmen, çok azı bunun nasıl yapıldığı ve her gün yönetildiği hakkında belirli ayrıntıları tartışıyor.
WordPress, varsayılan olarak ABD İngilizce’de (EN_US) görüntülenmesine rağmen, bu yazılımın herhangi bir dilde kullanılabilecek doğuştan gelen yeteneği vardır. Koddaki bir şeyi değiştirdiğinizde ne olur? Yeni bir dize eklediğinizde ne olur? Eklentiyi yeni bir sürüme güncellediğinizde ne olur? Bu, bu makalede cevaplayacağım soru türüdür. Herhangi bir eklentiyi herhangi bir dile çevirebilmeniz için size yeni eklentiler ve güncellemeler için bunu nasıl çözeceğinizi adım adım göstereceğim.Başlayalım!
Elbette atmanız gereken ilk adım eklentisini yapmak bir eklenti yapmaktır. Zaten sahipseniz, iyi değilse, ayrıntılı eklentilerimizin geliştirilmesi için ilk yönergeleri izleyebilirsiniz. Hızlı bir eklenti örneğine ihtiyacınız varsa, şimdi birlikte yapalım. Tek yapacağımız başlığa motivasyonel bir metin eklemek. Şarkı sözleri değil, açık motivasyonel metin ile Hello Dolly eklentisini düşünün. İlk olarak, eklenti dizininizde bir klasör oluşturun ve WP-Admin-Motivation adını adlandırın. Ardından, klasörde wp-admin-motivation.php adıyla bir dosya oluşturun. Aşağıdaki dosyaya eklenecek kod.
Çekirdek D051DFA1F952969D4004
İlk işlev get_motivation_text () motivasyonel dize dizisi içerir. Dizi çalkalanır ve ilki iade edilir. Bu etkili bir rastgele, bu işlevin sonucu rastgele seçilmiş bir dizi öğesi olacaktır. Daha sonra show_motivation_text () işlevini admin_notices’e bağlarız. Rastgele motivasyon metinleri alma işlevi ve WP-Admin-Motivasyon Kimliği ile bir paragrafta yankılanıyor. Bu aşamada metnimiz görülecek, ancak birkaç CSS ile ekran seçeneği/Yardım sekmesinin hemen yakınında konumlandıralım. Merhaba Dolly eklentisi, CSS’yi sadece başlıkta kaldırarak ekledi. Bu aslında bir şey yapmanın doğru yolu değil, bunun yerine stil sayfası yapalım. Bu, Motivation_assets () işlevini admin_enqueue_scripts’e bağlayarak ve stil sayfasını beklemekle yapılır. Stil sayfası metni konumlandırır ve RTL problemini (sağdan sola) işler.
Çekirdek D051DFA1F952969D4004
Her şey bittikten sonra, tek sorun bunun sadece İngilizce çalışmasıdır. Başka bir dil kullanmak istiyorsanız, aynı eklentiyi yapmanız gerekir, dizeyi hedef dile değiştirmeniz gerekir. Bu boşuna gibi görünüyor, olması gerekiyor ve gerçekten daha iyi bir yol var. International Plugins International eklentileri temelde tercüme edilmeye hazır hale getiren anlamına gelir. Bu, doğru çeviriyi yüklemek için daha sonra kullanılacak özel işlevlere çevrilebilen bir dizenin sarılmasını içerir.
Bir dizi uluslararasılaşma işlevi var, ancak basit eklentilerimiz için sadece bir tane göreceğiz ve sonra örneği anladıktan sonra diğeri hakkında konuşacağız. Kullanacağımız işlev __ (). Bu işlev iki argüman gerektirir: çevrilecek metin ve metin alanı, eylemde böyle görünüyor: d051dfa1f952969d4004’ün çekirdeğini içerir
Varsa işaretlenmiş dizeler için çevirileri geri yükleme işlevi. Değilse, orijinal dize döndürülür. Gereken çeviriyi belirlemek için geçerli dili kullanır. Dili WordPress’teki Ayarlar bölümünde değiştirebilirsiniz, orada seçilen ayarlar tüm çevirilere uygulanacaktır.
Metin alanı kayıp bulmacanın son kısmıdır. Metin alanı, paylaşılan çeviriyi gruplandırmanın bir yoludur. Çalıştığınız temanın kendi metin alanı olacak ve tüm eklentileriniz de olacak. Bu, aralarında ayrım yapmayı kolaylaştırır. Eklentiler için metin etki alanının eklenti klasörünün adı olması gerektiğini unutmayın. Örneğimizde bu, metin alanının WP-admin-motivasyon olması gerektiği anlamına gelir. Eklentilerimizi uluslararlaştırmak için, tek yapmamız gereken dizemizi __ () işlevine sarmaktır.
Çekirdek D051DFA1F952969D4004
Çevirimizi uygulamak artık hazır bir -translasyon dizesi olarak işaretlendi, ancak görünür bir çeviri yok. WordPress’e eklentimizin çevirisinin nerede olduğunu söylemeliyiz. Standart, eklentimizdeki Lang dizinidir. Şimdi yapın ve WordPress’e çeviri nerede bulunacağını söylemek için ana eklenti dosyasında aşağıdaki kodu kullanın.
Çekirdek D051DFA1F952969D4004
Load_plugin_textdomain () işlevi buradaki anahtardır ve Plugins_Loaded’e bağlı işlevin içinden çağrılmalıdır. İlk argüman, tartıştığımız metin alanıdır, ikincisi terk edilmiş ve üçüncüsü dil klasörünün yeridir. Çeviri dosyalarımız [eklenti-adı]-[yerel] .mo olarak adlandırılacaktır. Size nasıl daha sonra yapacağınızı göstereceğim, şimdilik dosyanızı buraya yerleştireceğinizi unutmayın. Örneğimizde, Alman dosyası WP-Admin-Motivation-De_de.mo olarak adlandırılacaktır. Bilmiyorsanız yerel WordPress’i arayabilirsiniz. Bu aşamada bir dil dosyamız varsa, son adım bir çeviri yapmak için her şey iyi çalışacaktır. Çeviriler Yapma Çeviri yapmanın birkaç yolu vardır, ancak sonuç her zaman aynıdır. İki dosya, PO dosyaları ve MO dosyaları alacaksınız. PO dosyaları, insanların okuyabileceği dosyalardır. Herhangi bir metin düzenleyicisinde açabilir ve düzenleyebilirsiniz. MO dosyası, makine-readbale formatına dönüştürülmüş bir PO dosyasıdır. Bu çok daha küçük ama elbette gerçekten okunamıyor. Aşağıda, çevrilmeyen bir PO dosyası örneğidir. Gördüğünüz gibi, üstteki çeviriler, çevirmenler ve projeler hakkında bazı temel bilgiler var, ardından çevrilebilecek bir dizeler listesi ve yapılacak çeviri vardır.
Çekirdek D051DFA1F952969D4004
Çevrilebilen bit şu şekilde genelleştirilebilir:
Çekirdek D051DFA1F952969D4004
Dizenin konumu satır numarasına verildiğinden, bunun yapmak ve sürdürmek biraz zor olacağını düşünebilirsiniz. Bu yüzden bize yardımcı olacak özel araçlarımız var! Bir depoda bir eklentiniz olduğunda, yönetici aracı .po üretmenize izin verir, ancak şaşırtıcı ve ücretsiz poed ile de yapabilirsiniz. Çeviri dosyasının temel ayrıntıları indir ve çalıştırın Poitd, yeni bir katalog. Görünen pencerede, bilgilerinizi doldurun. Şimdi karakter dizisi ve çoğul şekiller hakkında endişelenmenize gerek yok, sadece temel ayrıntılar.
Kaynak yola dönüp temel yolları ve yolları tartışalım. Büyük kutu etiketli yollar, Poedit’e temel yola göre çevrilebilecek bir ipin nerede bulunacağını söyler.
Çevirimizi eklenti alt-dizinimize yerleştireceğiz. Bu, iki seçeneğimiz olduğu anlamına gelir:
Temel yolu …/ (ana dizin) olarak ayarlayın ve yoldaki yolu ayarlayın. (Mevcut Dizin) Temel yolu ayarlayın. Geçerli dizin ve yoldaki yolu ayarlayın …
İlk örnekte, Poitd’e kodumuzun aslında dil klasörünün ana dizininde olduğunu söylüyoruz. Ana dizine gitmeli ve daha sonra dizini aramalıdır (bu nedenle yolda kullanın).
İkinci örnekte, mevcut dizinimizin bu dil dosyasının bulunduğu yer olduğunu söylüyoruz. Ancak, kontrol etmemiz gereken dosya, üstümüzdeki dizinlerden biridir, bu yüzden …/ Yollar bölümünde kullanıyoruz. Her iki durumda da iyi olacak, sanırım ilk sürüm, eklenti için şimdiye kadar ikincisini kullanma eğiliminde olmama rağmen. Bir sonraki adım, “Anahtar Kelime Kaynağı” bölümünde kullandığımız anahtar kelimeleri ayarlamaktır. Burada kullandığımız çevirmen işlevlerinin adlarını tanımlıyoruz. Bizim durumumuzda, sadece bir tane eklememiz gerekiyor – __. Büyük olasılıkla buraya en az 2-3 işlev ekleyeceksiniz, daha fazla çeviriye daha fazla bakacaksınız. Tıkladığınızda, Poedit dosyaları tarar ve tercüme edilen dizeler yayınlar. Bu, tıklayabileceğiniz, çeviriyi en düşük sayfaya yazabileceğiniz listede ayarlayacaktır. Dize POEDIT ile çevrilir
Çevirinizden memnun kaldığınızda, dosyayı kaydedin, MO dosyası sizin için otomatik olarak oluşturulur. Varsayılan olarak, dosya adı, yukarıda tartışılanlara göre değiştirmeniz gereken varsayılan olacaktır:
[eklenti adı]-[yerel] .mo. PO dosyanızın adı, akıl sağlığı uğruna aynı isim vermemelse de önemsizdir. Örneğimde, dosya adım WP-Admin-Motivation-hu_hu.mo olacak şekilde Macar’a tercüme ettim. Bu dosya yerleştirildikten sonra, eklenti, Macaristan’ı kullanmak için düzenlendiğim WordPress kurulumu sırasında Macar’da belirtilen metni görüntüler. Çeviri Güncelleme Çevirisi’nin sürdürülmesi acı verici bir şey değildir. PO dosyasının satır numarasına çevrilen metnin konumunu içerdiği doğru olsa da, WordPress dosyayı kullandığında bu dikkate alınmaz. Konum ve satır numaraları, çevirmenin gerekirse bir dize bulabilmesi içindir. Çevrilen dize içeriğini değiştirmeden kodu çevirdiğiniz sürece, dil dosyasını güncellemenize gerek yoktur. Genellikle yaptığım şey bir pot dosyası oluşturmak, dize değişmemiş olsa bile, eklentiyi her güncellediğimde güncellediğim tek dosya. Pot dosyası PO dosyasıyla aynıdır, ancak gerçek çeviriyi içermez – dosya bir şablon dosyasıdır. Bu şablon dosyası güncellendiği ve her dize için doğru satırları içerdiği sürece, yeni çeviriler kolayca yapılabilir. Poed’de açmanız ve güncelleme simgesine tıklamanız gereken dil dosyasını güncellemeniz gerekiyorsa. Poedit size değişen ve yeni değişikliklerden bahsedecek ve daha sonra gerektiği gibi girip düzenleyebilirsiniz. Karışıklık gördüğüm bir yerin çevirisini almak (en azından ilk başta bununla karıştırıldım) çevirinin onu nasıl bir eklenti haline getirmesiydi.
Eklentiyi indirirsem, kendi çevirimi nasıl ekleyebilirim? Bu işlemin bir şekilde otomatik olduğunu düşünüyorum, bir eklenti yüklemek gibi, ama değil. Birisi bir eklentiyi seviyorsa, eklentideki bir pot dosyası kullanarak kendi diline çevirir ve sonuçları geliştiriciye gönderir. Geliştirici daha sonra Lang klasörüne ekledi, yeni bir sürüm yaptı ve WordPress deposuna itti. Kullanıcı bir güncelleme aldığında, eklenti, dil klasöründe ise dilde mucizevi bir şekilde görünecektir. GitHub’daki tüm depolarımı, geliştiricilerin bana bu dosyaları gerilme isteklerini kullanarak göndermelerini çok kolaylaştırdım. Tek yapmam gereken düğmeye basmak ve WordPress deposu için yeni bir sürüm oluşturmak. Devam eden çeviriniz artık değeri geri yükleyen __ () işlevini kullanarak temel dizeyi nasıl çevireceğinizi biliyor. Çoğunuz bunlardan 3-4’ü kullanacak olsa bile, çevirinizi mükemmelleştirmek için kullanabileceğiniz toplam 14 işlev vardır. En yaygın olanla başlayalım. __ () Bu gördüğümüz temel bir işlevdir, bir dize alır ve varsa çeviriyi geri yükler. _E () Bu işlev daha önce olduğu gibi aynı şeyi gerçekleştirir, ancak sonuçları döndürmek yerine, bu işlev hemen tekrarladı. _N () Bu işlev, çoğul şekilleri zarif bir şekilde işlemenizi sağlar. 4 parametre, tek form, çoğul form, bir veya diğerine dayalı sayılar ve metin alanı alır. Aşağıdakiler kısa bir örnek: Çekirdek D051DFA1F952969D4004
_X () Bu işlevin amacı benzer kelime kelimelerini önlemektir. Eklentiniz, bazı kişilerin ve cihazı Bluetooth aracılığıyla eşleştirme anlamında eşleştirmesi anlamında “çiftler” kullanıyorsa, çarpışmalar ortaya çıkabilir. Yabancı dil her ikisi için de çok farklı kelimeler kullanabilir. _X () niyetinizi göstermenize izin verir. D051DFA1F952969D4004’ün çekirdeğini belirtin
_EX () ve _NX, arkadaşları yukarıdan önleyen çarpışmamızla aynıdır, ancak birincisi sonuçları doğrudan yansıtır ve ikincisi karışıma çoğul şekil eklemenizi sağlar. Çeviriden kuruluşta, özniteliklerde ve HTML’de güvenli kullanım için değerlerden kaçınmamızı sağlayan altı işlev vardır. İsimleri çok açıklayıcı, eminim ne yapacaklarını tahmin edebileceksiniz:ESC_ATTR __ ()
ESC_ATTR_E ()
ESC_ATTR_X ()
ESC_html __ ()
ESC_HTML_E ()
ESC_HTML_X ()
Bu Noop çevirisi oldukça karmaşıktır, bu yüzden sizi Constantin Kovshenin’in iyi makalesine _n_noop hakkında yönlendireceğim. NOOP işlevi temel olarak çoğul ipleri bir pot dosyasına kaydeder, ancak çevirmez. Bunun nedeni, sayının daha önce bilinmemesidir, yani onu almak için başka bir işlev eklememiz gerektiği anlamına gelir. Bu nedenle Noop işlevini kullanıyoruz ve gerçek değeri daha sonra çeviriyoruz. Bu işleve ihtiyacınız olan sadece birkaç durum vardır, daha fazla bilgi için yukarıdaki makaleye bakın. Bunu WordPress’te gerçekleştiren işlevler:
_n_noop ()
_nx_noop ()
çevirisi_nooped_pural ()
JavaScript’i çevirme JavaScript’inizde birkaç diziniz varsa, onunla ne yapacağınızı merak ediyor olabilirsiniz. WordPress, WP_LOCALICAL_SCRIPT () işlevi aracılığıyla sizin için bir çözüme sahiptir. Bu işlev üç argüman gerektirir: tercüme etmek istediğiniz komut dosyasının kavraması, komut dosyasında ve çeviride kullanılacak nesnenin adı. Aşağıdakiler bir örnek: Çekirdek D051DFA1F952969D4004
Çevirinizi buraya ekledikten sonra, kayıtlı bir JS dosyasında kullanabilirsiniz. Nesnenin adını ve çeviri hattı anahtarını kullanmanız gerekir:
Çekirdek D051DFA1F952969D4004
Sonuç Milyonlarca insan WordPress’i kendi dillerinde kullanıyor ve neden ürünlerimizle yapmalarına yardımcı olmuyorsunuz? Eklenti çevirmemizi hazırlamak kolaydır ve korunmak da rahatsız olmaz. Dizimizi çeviriler için işaretleyerek ve PO/MO dosyaları oluşturarak, herkese yardımcı olur ve ürünlerimizi süreçte daha iyi hale getiririz. Bu arada, bu öğreticide yaptığımız eklentinin küçük bir örneğini görmek istiyorsanız, buradan indirebilir ve deneyebilirsiniz. Şimdi bildiğinize göre, neden beğendiğiniz ve çevirmenize yardımcı olduğunuz bir eklenti bulmuyorsunuz? Eklentileri çevirmek için hangi kaynakları kullanıyorsunuz? Bize aşağıdaki yorumlarda anlatın. Etiket:
Çevirmek