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/

– TEMAYA veya PROJENİZE ÇOKLU DİL DESTEĞİ EKLEME İÇİN PROFESYONEL ÇÖZÜMLER SAĞLANMASINA İHTİYAÇ DUYABİLİRSİNİZ.

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

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

  • Nice Jab 14th Mayıs 2021 , 04:39

    very nice blog

    Cevapla

Yorum Ekle