• 24-03-2019, 03:43:11
    #1
    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
  • 24-03-2019, 03:51:16
    #2
    Üyeliği durduruldu
    Güzel bir bilgi olmuş eline sağlık hocam.
  • 24-03-2019, 03:56:08
    #3
    softwareman adlı üyeden alıntı: mesajı görüntüle
    Güzel bir bilgi olmuş eline sağlık hocam.
    Teşekkürler hocam