Bir WordPress eklentisi nasıl yerelleştirilir ve çevrilir – eklenti geliştiricileri için ayrıntılı bir kılavuz

Yayınlanan: 2020-01-20

Bir eklenti geliştirirken, İngilizceyi ana dili olarak kullanmayan kitlelere de ulaşabileceğinden, onu çeviriye hazır hale getirmek her zaman iyi bir fikirdir. Bir çeviri seçeneğinin ne kadar önemli olduğunu merak ediyorsanız, depoyu kontrol edebilir ve her bir popüler eklentinin dil yerelleştirme için uygun olduğunu görebilirsiniz. Bu seçeneğin UpdraftPlus, MetaSlider, WP-Optimize, Contact Form 7 ve WooCommerce'de ve daha pek çoğunda mevcut olduğunu göreceksiniz. Bunlar, mevcut en popüler eklentilerden bazılarıdır ve herkesin bunları kendi ana diline kolayca çevirmesine izin verecek şekilde kodlanmıştır.

Bu blogun amacı, okuyucularımıza bir eklentinin yerelleştirilmesi ve desteklenen herhangi bir WordPress diline çevrilmesi için nasıl kodlanabileceğini göstermektir. Örneğin, bir eklentiyi Fransızca'ya çevirmek istersek, aşağıdaki adımlar eklenti çevirisine izin verecek ve ayrıca onu desteklenen tüm WordPress dilleri için hazır hale getirecektir.

Başlarken

Eklenti oluştururken eklenti metin alanını yüklediğimizden emin olmalıyız. WordPress bu işlevi sağlar:

load_plugin_textdomain()

Bu kod, eklentinin çevrilmiş dizelerini yükleyecektir. Biraz kafa karıştırıcı görünebilir, ancak okumaya devam edin, nasıl çalıştığını kısaca açıklayacağız.

Öncelikle eklenti kodumuza bu fonksiyonu nasıl ekleyeceğimize bir göz atalım. Eklenti klasörünüzde 'diller' adında bir dizin oluşturun. Ardından, eklenti ana dosyanıza aşağıdaki kodu ekleyin.

 * Load plugin textdomain. */ function plugin_load_textdomain() { load_plugin_textdomain( 'udp', false, basename( dirname( __FILE__ ) ) . '/languages/' ); } add_action( 'init', 'plugin_load_textdomain' );

Yukarıdaki kodda ilk parametreyi (domain) 'udp' olarak tutuyoruz. Bu alan adını eklenti adımıza göre tutmalıyız. İkinci parametre varsayılan olarak false olur. Üçüncü parametre, 'diller' dizinimizin yoludur. Bu kod, çeviri dosyalarımızı WordPress başlatma sırasında hazır tutar.

__() ve _e() Yöntemlerinin Kullanımı

Eklentimizi tüm dillerde kullanıma sunmayı hedeflediğimiz için, tüm eklenti metnimizi aşağıdakilerden birinin içine sarmalıyız:

__() veya _e() işlevleri.

Bu yöntemleri kullanmak çok kolaydır. Her iki yöntem de tamamen aynı şekilde çalışır ancak her ikisini de kullanmanın bir kuralı vardır.

Eklenti kodumuzda normalde iki tür metin bulunur. Birincisi doğrudan HTML'ye sarılır ve ikincisi PHP yankı işlevi kullanılarak görüntülenir. Aşağıda her iki türe de örnekler verilmiştir:

Tip 1

 <h2>My Plugin Title</h2>

Tip 2

 <?php echo 'Eklenti Ayarlarım'; ?>

Genel kural, PHP yankı kullanarak metin yazdırıyorsanız, metni aşağıdaki koda kaydırmanız gerektiğidir:

<code>__()</code>

HTML'deyse şu kodu kullanın: <code>_e()</code>.

Yukarıdaki kod aşağıdaki şekilde yazılmalıdır:

 <h2><?php _e('Eklenti Başlığım', 'udp'); ?></h2>

ve

 <?php echo __('Eklenti Ayarlarım', 'udp'); ?>

Yukarıdaki örneklerde görüldüğü gibi ikinci parametre eklenti metin alanımız olan 'udp' olarak yazılmıştır. Bu etki alanını kullanmak, metnimizi daha sonra herhangi bir dile çevirmemize izin verecektir. Diğer eklentiler, eklenti çevirilerini bu şekilde hazır hale getirir.

Dilerseniz eklentimize göz atabilirsiniz:

UpdraftPlus

'updraftplus' metin alanını ararsanız, eklentimizin metninin __() ve _e() işlevlerine nasıl sarıldığını göreceksiniz.

Örnek Eklenti Oluşturun

Bir sonraki aşama, çevirilerimizi test edebilmemiz için bazı metinlerle örnek bir eklenti oluşturmaktır. İlk önce eklenti dizininizde bir 'udp' klasörü oluşturun. Bu klasörün içinde şu dosyayı oluşturun: udp.php ve languages klasörü. Ardından, eklenti dosyasına aşağıdaki kodu ekleyin.

udp.php

 <?php
/*
Eklenti Adı: UDP
Açıklama: Bu, eklenti metin alanını test etmek için örnek bir eklentidir.
Yazar: Editoryal Personel
Sürüm: 1.0
Lisans: GPLv3 veya üstü
Metin Alanı: udp
Etki Alanı Yolu: /diller
*/

if (!defined('ABSPATH')) die('Doğrudan erişime izin verilmez');/**
* Eklenti metin alanını yükleyin.
*/
işlev udp_load_textdomain() {
load_plugin_textdomain( 'udp', false, basename( dirname( __FILE__ ) ) .'/languages/');
}
add_action('init', 'udp_load_textdomain'); 

işlev udp_menu_page() {
add_menu_page(
__( 'UDP Ayar Sayfası', 'udp' ),
__( 'UDP Ayar Sayfası', 'udp' ),
'manage_options',
'udp_setting_page',
'udp_setting_page',
'',
6
);
}
add_action('admin_menu', 'udp_menu_page');

işlev udp_setting_page() {
?>
<h2><?php _e('Eklenti Başlığım', 'udp'); ?></h2>
<?php
}

Çeviri Dosyalarını Oluşturun

Çeviri dosyalarımızı oluşturmak için aşağıdaki çeviri düzenleyici yazılımını kullanacağız:

POEDIT

Çeviri dosyaları (.po ve .mo), çevrilecek dizeyi ve çevrilmiş dizeyi içerir. .po dosyasını oluştururken onu '{domain}-dil kodu' formatında kaydetmemiz gerekiyor. Bu örnekte, dosya udp-fr_FR.po olacaktır.

Ardından, POEDIT yazılımını sisteminize kurun. Bu yazılım tüm platformlar için mevcuttur ve Windows, Linux veya Mac üzerine kurulabilir.

Kurulduktan sonra, POEDIT'i açın ve pencere isteminde dil kodumuzu gireceğimiz Dosya->Yeni'ye gidin.

'Kaydet' simgesine tıklayın, ardından dosya gezgini açılacaktır. Eklenti dilleri dizinine gidin ve aşağıdaki gibi kaydedin: udp-fr_FR.po .

Artık eklenti metnimiz için Fransızca çevirisini ekleyebiliyoruz. Bunu yapmak için, 'Kaynaklardan alıntı' bölümüne tıklayın.

Bu, bir katalog özellikleri açılır penceresi açacaktır. Şimdi şu üç sekmeyi yapılandırmamız gerekiyor: Çeviri Özellikleri, Kaynak Yolları ve Kaynak Anahtar Kelimeler. Çeviri Özellikleri sekmesinde, proje adı olarak 'udp' alan adımızı ekleyin. Kaynak Yollar bizim eklenti klasörümüz olacak ve Kaynak Anahtar Kelimelerin içine '__ ve _e' ekleyeceğiz.

Eklentinin içinde birden fazla klasörünüz varsa, her dizini ayrı ayrı seçmemiz gerekecek.

Eklenti klasörünü seçtikten sonra '.' görmelisiniz. Yollar bölümünde. Gerekirse eklenti dizininizdeki diğer klasörler için aynı işlemi tekrarlayın.

Kaynak Anahtar Kelimeler altında, + simgesine tıklayın ve anahtar kelime olarak '__' ve '_e' ekleyin ve Tamam düğmesini tıklayın.

Bir sonraki pencerede, Kaynak metin altında, eklentinizden çevirebileceğiniz tüm dizelere sahip olacaksınız. Dizeyi tek tek seçin ve dizeye Fransızca çevirinizi ekleyin.

Tüm çevirileri ekledikten sonra Kaydet simgesine tıklayın. Bu, tüm dize çevirinizi otomatik olarak udp-ft_FR.po dosyanıza kaydeder. .po dosyanız şimdi aşağıdaki kodu içerecektir:

 #: udp.php:24 udp.php:25
msgstr "UDP Ayar Sayfası"
msgstr "Sayfa yapılandırması UDP"

#: udp.php:37
msgstr "Eklenti Başlığım"
msgstr "Titre de mon eklentisi"

Eklenti Çevirimizi Test Edin

Artık eklentimiz için .po ve .mo dosyaları oluşturma görevini tamamladık. Şimdi eklentimizi test etme ve Fransızca çevirisini kontrol etme zamanı.

Öncelikle aşağıdaki adresten dil dosyamızı indirin:

WordPress Dil deposu.

Fransız dili için yol aşağıdaki gibidir:

Fransızca WordPress Dil deposu.fr_FR.mo ve fr_FR.po

Dosyaları bu bağlantıdan indirin ve wp-content/languages ​​dizininde saklayın. Zaten yoksa, 'diller' klasörünü oluşturun.

Ardından, WordPress kurulumumuzun varsayılan dilini değiştirmemiz gerekiyor. wp-config.php dosyasını açın ve dili aşağıdaki gibi ekleyin:

 define('WPLANG', 'fr_FR');

Şimdi kontrol paneline giderseniz, eklentiniz Fransızca dilinde görüntüleniyor olmalıdır.

Sonuç olarak

WordPress eklentiniz için yerelleştirilmiş bir çeviri oluşturmak, ilk başta biraz göz korkutucu ve karmaşık görünebilir. Ancak, Brezilya, Fransa ve Almanya gibi İngilizce konuşulmayan büyük ülkelere eklentinizi kendi ana dillerinde sunmanın potansiyel faydaları, eklentinizi yepyeni ve takdir edilen bir kitleye açmanıza yardımcı olabilir. Çok iş gibi görünse de, ödüller önemli olabilir.

Bir WordPress eklentisi nasıl yerelleştirilir ve çevrilir - eklenti geliştiricileri için ayrıntılı bir kılavuz ilk olarak UpdraftPlus'ta yayınlandı. UpdraftPlus – WordPress için yedekleme, geri yükleme ve taşıma eklentisi.