Bu alanda yaptığım işleri sergileyebilirim sanırım.

Wordpress

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

14 May 2019
yzr: Hakkı Cengiz

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

3 Yorum

  • I like the helpful info you provide in your articles.
    I’ll bookmark your blog and check again here regularly.
    I am quite sure I will learn many new stuff right here! Good luck
    for the next! b l o g . d n e v n i k . h r / b e r m a i n d o m i n o q i u q i u

    1 hafta önce
  • I’m not sure where you’re getting your information, however good topic.

    I must spend some time studying more or understanding more.
    Thanks for fantastic information I used to be looking for this info for my mission. c r e s c e n t m o o n h k y.com

    1 hafta önce
  • I do not even understand how I ended up here, however I assumed
    this submit was once great. I do not understand who you’re however definitely
    you are going to a well-known blogger in the event you aren’t already.
    Cheers! b a c k s t r e e t s o f h i c k o r y.com

    6 gün önce
  • Bi yoruma ne dersin ?

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


Choose A Format
Trivia quiz
Poll
Story
List
Video
Audio