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
very nice blog