WordPress, dünya genelinde milyonlarca kullanıcıya hizmet veren bir içerik yönetim sistemidir. Hal böyle olunca, geliştirilen eklentilerin farklı dillerde kullanılabilmesi, hem kullanıcı deneyimi hem de global erişim açısından büyük önem taşır. Bu makalede, bir WordPress eklentisinin çok dilli (multilingual) hale nasıl getirileceğini adım adım ve teknik detaylarıyla ele alacağız.
1. Uluslararasılaştırma (Internationalization – i18n) Nedir?
Uluslararasılaştırma, bir eklentinin farklı dillere çevrilebilecek şekilde tasarlanmasıdır. Yani yazılımın çok dilli destek için hazırlanması sürecidir. Bu, çeviriyi doğrudan içermez; ancak çevirinin yapılabileceği altyapının kurulması anlamına gelir.
WordPress, uluslararasılaştırma işlemi için gettext sistemini kullanır. Bu sistem, __(), _e(), _n() gibi özel işlevlerle metinleri çevrilebilir hale getirir.
2. Lokalizasyon (Localization – l10n)
Lokalizasyon, hazırlanmış olan çevrilebilir metinlerin belirli bir dile çevrilmesidir. Yani, İngilizce bir metnin Türkçeye çevrilmesi gibi. Bu işlem .po ve .mo dosyaları ile gerçekleştirilir.
3. Eklentinizde Metinleri Çevrilebilir Hale Getirme
a) __() ve _e() Fonksiyonlarını Kullanmak
PHP dosyalarınızda sabit metinleri çevrilebilir hale getirmek için şu şekilde kullanmalısınız:
// Ekrana yazdırılmadan önce
$message = __('Merhaba dünya', 'benim-eklentim');
// Direkt olarak yazdırmak için
_e('Yorum yapın', 'benim-eklentim');
İkinci parametre olan 'benim-eklentim', eklentinizin text domainidir. Bu sabit olmalıdır ve genellikle eklenti dosya adıyla aynıdır.
b) Plural (Çoğul) Kullanımlar için _n()
printf(_n('%s yorum var', '%s yorum var', $yorum_sayisi, 'benim-eklentim'), $yorum_sayisi);
4. Dil Dosyaları Oluşturma
WordPress eklentilerinde dil dosyaları .pot, .po, ve .mo formatlarında bulunur:
.pot: Şablon dosyasıdır, çeviri yapılacak tüm metinleri içerir..po: İnsan tarafından okunabilir çeviri dosyasıdır..mo: Makine tarafından okunabilir derlenmiş çeviri dosyasıdır.
a) .pot Dosyası Oluşturma
Bu işlem için Poedit gibi bir yazılım kullanabilir ya da WP-CLI aracını tercih edebilirsiniz.
Örnek WP-CLI komutu:
wp i18n make-pot ./ benim-eklentim/languages/benim-eklentim.pot
b) .po ve .mo Dosyalarını Oluşturma
.pot dosyasını Poedit ile açarak çevirilerinizi yapabilir, ardından .po ve .mo dosyalarını kaydedebilirsiniz.
5. Eklentide Dil Dosyalarının Yüklenmesi
Eklentinizin ana PHP dosyasına şu kodu ekleyerek dil dosyalarının yüklenmesini sağlamalısınız:
function benim_eklentim_load_textdomain() {
load_plugin_textdomain( 'benim-eklentim', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
add_action( 'plugins_loaded', 'benim_eklentim_load_textdomain' );
Bu kod, WordPress’in doğru dil dosyasını bulmasını ve metinleri çevirmesini sağlar.
6. Dizin Yapısı
Çok dilli destek sağlayan bir eklentide dil dosyaları genellikle şu şekilde yer alır:
benim-eklentim/
├── includes/
├── languages/
│ ├── benim-eklentim.pot
│ ├── benim-eklentim-tr_TR.po
│ └── benim-eklentim-tr_TR.mo
├── benim-eklentim.php
7. Çevirileri WordPress.org Üzerinden Yayınlama
Eğer eklentiniz WordPress eklenti deposunda yer alıyorsa, çeviriler Translate WordPress platformu üzerinden yönetilir. Siz sadece load_plugin_textdomain() ve .pot dosyanızı sağlamalısınız.
8. Çok Dilli Web Sitelerinde Uyum
Bazı kullanıcılar WPML, Polylang veya TranslatePress gibi çok dilli eklentiler kullanabilir. Uyumlu olabilmek için:
- Her sabit metni çevrilebilir hale getirin.
- Kısa kod çıktılarında da
__()fonksiyonunu kullanın. - Ayarlar sayfalarında, giriş kutularına yazılan varsayılan metinleri de çevirilebilir yapın.
Değerlendirme
WordPress eklentinizi çok dilli hale getirmek, küresel ölçekte kullanıcı kitlenizi artırır ve eklentinizin profesyonelliğini gösterir. Bu süreç, ilk başta zahmetli gibi görünse de, doğru bir yapı kurulduğunda çeviri işlemleri kolaylaşır ve sürdürülebilir hale gelir. Unutmayın: iyi yazılmış, çevrilebilir bir eklenti, uluslararası başarıya giden yolda önemli bir adımdır.







