Labs, WP Tricks

WordPress Çoklu Dil Desteği – POedit, Loco Translate ve PolyLang Kullanımı

Merhaba, Bugünkü konumuz wordpress’te yazdığımız kendi temamıza veya eklentimize çoklu dil desteği ekleyeceğiz. Tabiki İLK ADIMIMIZ temamızdaki statik yazılarımızı dinamikleştirerek WordPress’in anlayacağı dilden kodlamak. Kodlara geçmeden önce Text-Domain nedir onu bilmemiz şart. […]

yzr: Hakkı Cengiz
A+ A A- okuma

Merhaba,
Bugünkü konumuz wordpress'te yazdığımız kendi temamıza veya eklentimize çoklu dil desteği ekleyeceğiz.

Tabiki İLK ADIMIMIZ temamızdaki statik yazılarımızı dinamikleştirerek WordPress'in anlayacağı dilden kodlamak. Kodlara geçmeden önce Text-Domain nedir onu bilmemiz şart.

BİLGİ # Text-Domain nedir?

Sizin style.css dosyanızın altında belirttiğiniz temanızın ID'si diyebiliriz. Benzersiz bi isim belirlemeye çalışın yoksa bir bakarsınız kendi temanıza güncelleme gelmiş ne alaka diyebilirsiniz.

Örnek:
/*
Theme Name: MoonRise
Theme URI: https://hakkicengiz.com
Author: Hakki Cengiz
Author URI: ....
Description: .....
Version: ...
Text Domain: moonrise
*/

1. DURUM : Normal yazılar (html kodlar çalışır)

0. <h3>Örnek bir yazı başlığı</h3>

1. <h3><?php _e( 'Örnek bir yazı başlığı', 'text-domain' ); ?></h3>

- <h3><?php _e( 'Örnek bir <b>yazı</b> başlığı', 'text-domain' ); ?></h3>

2. DURUM : < title, value, alt değerleri için > (html kodlar çalışmaz)

0. <a href="#" title="Örnek Link Açıklaması"> Örnek bir link</a>

1. <a href="#" title="<?php esc_attr_e( 'Örnek Link Açıklaması', 'text-domain' ); ?>"> Örnek bir link</a>

2. <a href="#" title="<?php esc_attr_e( 'Örnek Link Açıklaması', 'text-domain' ); ?>"> <?php _e( 'Örnek bir link', 'text-domain' ); ?></a>

3. DURUM : Label, submit vs. (html kodlar çalışmaz)

<label for="nav-menu">
<?php esc_html_e( 'Kategori Seç:', 'text-domain' ); ?>
</label>


4. DURUM : PHP Dizi içerisinde kullanımı - __( 'Gönder' )

<?php

0. Çeviriye hazır olmayan yazılar

$comments_args = array(
'label_submit' => 'Gönder',
'title_reply' => 'Bi yoruma ne dersin ?',
);

1. Çeviriye hazır hale gelişi

$comments_args = array(
'label_submit' => __( 'Gönder', 'text-domain' ),
'title_reply' => __( 'Bi yoruma ne dersin ?', 'text-domain' ),
);

comment_form($comments_args); ?>

5. DURUM : Dizi içinde dizi olduğunda kullanımı - _x( 'Yorum', 'text-domain' )

<?php

$comments_args = array(
'label_submit' => __( 'Gönder' ),
'title_reply' => __( 'Bi yoruma ne dersin ?' ),
'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Yorum', 'text-domain' ) . '</label><br /><textarea id="comment" name="comment" aria- required="true" cols="110" rows="4"></textarea></p>',
);

comment_form($comments_args); ?>

YARDIMCI EKLENTİ # Loco Translate
- .POT dosyası oluşturmamızı sağlar. .POT uzantısı, ana, saf tercüme dosyamızdır.
- Statik yazılarımızı değiştirdikçe kontrol edip görmek için de Loco Translate eklentisini kullanabiliriz.
- POedit'in yaptığı herşeyi bu eklenti ile de yapabilirsiniz.

YARDIMCI PROGRAM # Poedit
- Oluşturduğumuz .POT dosyasının .PO ve .MO uzantılı farklı dillerdeki dosyalarını masaüstünde düzenlememizi, yenilerini oluşturmamızı sağlar.

YARDIMCI EKLENTİ # PolyLang
Herkese tavsiye ederim. Ne işe yarar? Bizi bi kere subdomain açalım da orda da sitenin ingilizce klonu olsun'dan kurtarır.
- Polylang cheatsheet: https://polylang.pro/doc/developpers-how-to/

GOLD # Peki ya sayfa (Page)? Sayfalarda yazdıklarımızı nasıl çeviriye dahil edeceğiz? Onlar temadan bağımsızlar. Onlar için araştırmam devam ediyor.
Wordpress Shortcodes (Kısakodlar)'ı kullanacağız. ben normal bi shortcode'un return kısmının da başına __() ekleyip değiştireyim olur diye düşündüm. Fakat olmadı. Biraz araştırınca benzer başka bi konuya geldim. Remi abimiz bunu çözüme kavurmuş bir fonksiyonla. Derken yakın bir konuyu çözüme kavuşturmuş diyelim.

Kaynak: https://remicorson.com/how-to-create...dy-shortcodes/

DETAYLI BİLGİ # WordPress Documentation

Internationalization
https://developer.wordpress.org/them...tionalization/

- ÜCRETLİ TEMAYA ÇOKLU DİL DESTEĞİ EKLEME İŞİ YAPILIR

Bunun dışında takıldığınız yerler olduğunda yardımcı olmaya çalışırım

0 Yorumları: - Yorum Formunu: -

Henüz yorum eklenmemiş.

Bi yoruma ne dersin ?

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir