Çevrilebilecek WordPress temaları ve eklentileri oluşturma: Geliştirici Kılavuzu
Geçen yıl, mevcut temaların veya eklentilerin uluslararasılaşmasına odaklanan WordPress’in çeşitli yönlerinin çeviri serisini gerçekleştirdik. Bugünün gönderisinde, tema ve eklenti geliştiricileri için bazı bilgilerle diziyi genişleteceğiz ve tamamlayacağız, yani temanızı veya eklentinizi nasıl yerelleştireceğinizi veya çevrilmeye hazır olacağız. Kullanıcıların bunları kendi dillerine kolayca çevirebilmelerini sağlamak için yeni ürünler oluştururken ne yapmanız gerektiğini göreceğiz. WordPress.com sitelerinin% 29’u yabancı dillerde kullanıldığından ve WordPress topluluğundaki uluslararasılaşmaya daha büyük odaklanıldığından, temalarınızın ve eklentilerinizin tercüme edilmeye hazır olduğundan emin olmak için eskisinden daha önemlidir.
Öyleyse, temalar ve eklentiler oluştururken doğru işlevleri ve metodolojileri kullandığımızdan emin olmak için sürece ayrıntılı olarak bakalım. Metin Etki Alanı Yapmanız gereken ilk şey metin alanınızı belirlemektir. Metin alanı nedir? Metin alanı, paylaşılan çeviriyi işaretlemenin bir yoludur. Dil dosyasını çok daha taşınabilir, modüler ve okunması kolay hale getirir. Etki alanı metin adı vermek basit bir sorundur, çünkü eklentinizin/temanızın adlandırılması ne olduğunu belirler. Metin alanı, genellikle onu içeren klasörün adı olan temanızın veya eklentinizin sümüğüyle eşleşmelidir.
Yaklaşan yirmi on beş tema için temanın adı elbette yirmi on beş. Klasörün adı olan salyangoz “yirmi -fifteen” dır. Metin alanı sümüklü ile aynı olması gerektiğinden, metin alanı da “yirmi -fifteen” dır. Metin etki alanınızı göstermeniz gereken ilk yer, temanızın veya eklentinizin ilk yorum bloğudur. Bu, eklentinizin yazarın adı, eklenti adı, tema etiketleri vb. Gibi temel özelliklerini belirlemek için kullanılır. “Etki alanı metni” özelliğini de eklediğinizden emin olun. Aşağıdaki Style.css dosyasında yirmi on beş yorumu bloke eder. Çekirdek F3A342F38EFCCB8E190DB00BD35BA2A
Dizeyi tercüme etmek için çoğu geliştiricinin çevirisi için dizeyi işaretleyerek, onu tekrarlamak için onu geri yüklemek için __ () işlevine sarmalısınız. Aslında çevirilerin mükemmelliği için kullanabileceğiniz 11 işlev daha var, ancak çoğu durumda yukarıdaki ikisini gerçekten kullanacaksınız. Tüm seçeneklerimize ve ne olduklarına bakalım: __ () Bu, en temel çeviri işlevlerinden biridir. Kardeşlerinin çoğu gibi, iki parametre alır: çevrilecek dize ve metin alanı.
Core 38520494733ecef68827cfcec47b9e67’yi içerir
Bu, çeviriler için basit bir dize işaretlemek ve başka bir yerde kullanılacak değerleri geri yüklemek istediğinizde kullanılır. Bu genellikle işlevlerde olur – yazı türünü kaydetmeyi düşünün. Aşağıdaki kodeks örneğinde, tüm dizi üyelerinin nasıl tercüme edileceği işaretlendiğini görebilirsiniz:
0E48A7845E20DB9D310F2A26C99B5F8C’nin özünü içerir
_E (), değerin yankılanması dışında, yukarıdaki işlevle neredeyse aynıdır. Bu, HTML İçerik Dizini’nde çevirdiğinizde kullanılabilir: 68DDACD1F60A825295B4570E2AFB7148’in özünü içeriyor
_N () Bu işlev, dizeleri koşullu çoğulla çevirirken kullanılır. Bu, dizenin çoğul veya tek bir şekil kullanıp kullanmayacağını önceden bilmediğiniz anlamına gelir, çünkü birkaç parametrenin anlık değerine bağlıdır. İyi bir örnek, yorum sayısıdır.
Örneğin, yorum sayısı bir ise, tek bir form kullanmanız gerekir: “Bir yorum”. Yorum sayısı 0 veya birden fazla ise, çoğul formları kullanacaksınız: “Çok sayıda yorum”. Bu, _N () işlevi kullanmanın yanı sıra yapılabilir. Dört parametre gereklidir: tek şekil, çoğul form, kontrol edilecek sayı ve metin alanı:
B9DD17CA47E6FE86CE77DB9DD6AC024’ün özünü içerir
Sprintf () sprintf () işlevini kullanmak, birkaç parametreye göre biçimlendirilmiş dizeleri kaldırmak için kullanılan orijinal PHP işlevidir. Bu, değişkenlerin sıklıkla kullanıldığı birkaç daha karmaşık çeviriye göre cömertçe kullanılır. Genel olarak aşağıdaki görünüm:
Çekirdek DF266A46FF7375E65B1B1B227DE33CC9AA
En yaygın iki kap, String için %s ve tamsayılar için %D’dir. Bu yer tutucuyu kullanırsanız, kullandığınız yer tutucu sayısı kadar sprintf’e ek argüman devam etmelisiniz. Bir yer tutucunun önce ikinci bir yer tutucu kullanması için endekslenmesi de mümkündür. Bu işlevin kullanılması için PHP belgelerine bakın. Yukarıdaki çevirimizin bir örneğini biraz daha iyi hale getirmek için, 0 değerini hesaplamak için Sprintf () ile kombine _n () kullanabiliriz. Çekirdeği 53697387 BAE65A2D2EB62E0CA7594BEA
Bu örnekte $ yorum_count değişkeninin kullanımı biraz kafa karıştırıcı olabilir. _N () işlevinde kullanıldığında, tek veya çoğul bir versiyona göre hangi sürümün kullanılacağını belirleriz. Daha sonra satırda kullanıldığında, sprintf () için ikinci parametre olarak, değeri %s’nin yerine kullanırız. _X (), _ex () ve _nx (), benzer bir çeviri metin parçasından gelen karışıklığı temizlemek için “X” tadı işlevi mevcuttur. Örneğin “Post” kelimesi bir fiil olarak ve bir blogdaki giriş türünün adı olarak kullanılır. Farklı dillerde iki çok farklı kelime kullanabilirler. Bunu ayırt etmek için, bağlam eklemek ve sonuçları geri yüklemek için _x () kullanırız, bağlam eklemek ve sonuçları yankılamak için _ex () ve çoğul çeviriye bağlam eklemek için _nx ().
Çekirdek D0FA466E6504CD16620954A12F71EE2E
Özniteliklerden Kaçış Çevirilen dizeden çıkmak için üç işlevden oluşan iki set vardır. Özniteliklerde kullanılan bir dizi taşıma dizesi, diğer setler HTML için folnlines kullanır. Burada:
ESC_ATTR __ ()
ESC_ATTR_E ()
ESC_ATTR_N ()
ESC_html __ ()
ESC_HTML_E ()
ESC_html_n ()
Daha önce her türlü işlevi gördüğümüz için yeterince açık olmalıdır. İşte hızlı bir örnek:
Çekirdek 23732a1ea9804062e0b833dffd7df96 içerir
Bu işlevin nooped çevirisi doğru bir şekilde bahsedilmez ve sadece belirli durumlarda yararlıdır, bu da açıklamayı zorlaştırır. _n_noop () ve _nx_noop () Çeviriler için kayıt dizileri, ancak hemen tercüme etmezler.
İngilizce oldukça kolaydır çünkü tek ve bir çoğul form var. Diğer dillerde – Rusya gibi – o kadar basit değil. Nooped işlev, çevirileri kullanımından ayrı olarak kaydetmenize olanak tanır. Gerçek çıktı, translate_nooped_pural () işlevi kullanılarak üretilir. Codex, nasıl çalıştığına dair iyi bir örnek sağlar:
Çekirdek 958A351186E7C6DEF1BF58AC8748FE96 içerir
JavaScript’i çevirme JavaScript için çeviri işlevi yoktur, ancak WP_LOCALICAL_SCRIPT () işlevini kullanarak sunucu tarafında çözebiliriz. Fikir, dize nesnelerimizi oluşturmak ve belgelerimize ekleyerek komut dosyamıza devam etmektir. Bir çeviri dosyası varsa, dize yayınlanmadan önce çevrilir.
Core 5B1635BCBB097B3E68E39DE1BCD1D1E0 içerir
Komut dosyası önce teslim edilir ve sonra yerelleştirilir. Yerelleştirme işlevinin ilk parametresi, yerelleştirdiğimiz komut dosyasının adıdır. İkincisi, dizemizi saklamak için kullanılan benzersiz nesnenin adıdır. Bir sonraki parametre anahtar dizisi ve komut dosyamızda kullanacağımız değerdir. Sonunda JavaScript tarafında uygulayabiliriz:
B51F60E7305A0DA4D275FFC4EC06AC5A’nın özünü içerir
Çeviri dizemizi etkinleştirmek için bir metin alanı içerir, çeviri dosyaları vermemiz gerekir. WordPress çeviri işlevini her gördüğünde, geçerli dil çeviri dosyasını bulur ve işlevde belirtilen metni arar. Metin bulunamazsa, metin ne olduğunu döndürür. WordPress’e depolandığımız eklentiler/temalar için çeviri dosyamızın nerede olduğunu söylemeliyiz. Bu, Plugins_Loaded eylemine bağlanması gereken Load_Plugin_TextDomain () () İşlevi kullanılarak yapılabilir.
Bu aşamada her şey işlev görmelidir – HTML ve JavaScript kolayca çevrilmeniz gerekir. Kullanıcılarımıza yardımcı olmak için, gerçekten bir çeviri şablonu dosyası olan bir pot dosyası oluşturmamız gerekiyor. Çeviri Dosyaları Çeviri işlemi sırasında üç tür dosya göreceksiniz. Birincisi, .pot dosyası, bir çeviri şablonu dosyasıdır. Bu dosyalar insanlar tarafından okunabilen dosyalardır, .mo dosyası, diğer çeviri dosyası türü, makineyi okunabilen bir çeviri dosyasıdır. Yeni dil dosyaları oluşturulduğunda genellikle pot dosyasından başlar. Yerel kullanılarak çoğaltılır ve adlandırılır, örneğin zh_ch.po (ZH Çin için bir dil kodu ve CH Çin için bir ülke kodudur). Daha sonra PoEdit gibi bir araç kullanılarak açıldı ve tüm dizeler çevrildi. Kaydedildiğinde, Poedit .mo sürümünü yaptı. Sonunda WordPress .mo sürümünü kullanır çünkü verimlilik için çok yoğundur. Bunların hepsi iyi ve iyi, ama nasıl yapacağız. Birkaç yol var, ilk seyahatinizde Poitd kullanmanızı öneririm. Açık Poed ve Aç Dosya> Yeni Katalog’u yükleyin ve ayrıntıları doldurun.
Bir sonraki sekmeye (kaynak yolu) geçmek ve yolunuzu ayarlamak için doldurulmuş bazı katalog özellikleri. Yol, aday dosyanızın konumuna göre olmalıdır. Bir eklenti üzerinde çalışıyorsanız ve bir katalog dosyası kullanmanız gereken dillerde olacak …/ kaynağınız için. “Kaynak Anahtar Kelime” sekmesinde kontrol etmek istediğiniz işlevi seçmelisiniz. Yalnızca temel işlevleri kullanıyorsanız, sadece __ ve _e ekleyebilirsiniz, ancak her şeyi eklerseniz daha iyidir. Bazı kaynak anahtar kelimeler “Tamam” ı tıkladıktan sonra ayarlanır, dosyanızın konumunu seçebilirsiniz. Poedit aslında bir .po ve .mo dosyası oluşturacaktır. Sadece boş .po dosyasını kopyalayıp adını değiştirerek bir pot dosyası oluşturabilirsiniz. Uluslararasılaşma görüşüme göre özet bir zorunluluktur. Bunu yapmak kolaydır, bu nedenle ziyaretçileri sitenizden İngilizce konuşmayan veya okumayan veya okumayan bir neden yoktur. Bu makalede çevirinin temellerini, metin alanı nedir, kullanabileceğimiz işlevleri ve çeviri dosyalarının nasıl oluşturulacağını gördük. Çeviri uygulamanın daha hızlı yolunu biliyor musunuz? Çok belirsiz bir dil konuşuyor musunuz ve buna çevirmek mi istiyorsunuz? Bize aşağıdaki yorumlarda anlatın.