WordPress ile Çok Dilli Siteler Hazırlamak

Merhabalar;

WordPress maceramıza kaldığımız yerden devam ediyoruz. Her gün hakkında yeni bir şeyler öğrendiğim sistem hakkında bilgilerimi not almaya ve size aktarmaya ara vermek istedim. Hazır az bir boş vaktim varken en son işimde yapmış olduğum “Çoklu Dil (Multi Language)” sistemini anlatmak istedim.

Öncelikle aklınıza Google Translate ya da benzeri bir araç gelmesin. Bu tür çevirilere pek güvenmediğim için yaptığım işte bu servislerden faydalanmadım. Eklenti dizinini tek tek araştırırken qTranslate isimli bir eklenti buldum ve işimi tam anlamıyla görebilecek bir eklenti olduğu kanısına vardım. Eklentiyi kurduğumda bu kadar zorlayacağını düşünmemiştim ancak umduğumdan çok daha fazla zorladı beni. Eklentiyi kurup ayarlarını yaptığımda otomatik olarak admin panelinden çıkış yaptırdı eklenti. Panele girmek istediğimde ise bu sayfaya erişim izniniz yok hatasını aldım. Sorunun çözümünü araştırırken WordPress’e bir daha aşık oldum icon smile Wordpress ile Çok Dilli Siteler Hazırlamak . Sunduğu imkanlar ile gerçekten yapılamayacak şey neredeyse yok. Hikayeyi bırakıp konumuza dönelim… (Sizde böyle bir sistem yapmak istediğinizde bu hatayla karşılacağınız için bu kısmı yazdım)

Kullanacağımız eklenti bahsettiğim gibi qTranslate. qTranslate eklentisini buradan indirip /wp-content/plugins klasörüne atıp ardından admin panelinizden etkinleştirin. Karşınıza şöyle bir ekran gelecek;
 Wordpress ile Çok Dilli Siteler Hazırlamak

Bu sayfada dil ayarlarımızı yapıyoruz. Yani yeni dil ekleyip, istemediğimiz dili çıkarabiliriz. Ayrıca varsayılan dili belirleyebiliriz. Yaptığım işte ana dil Türkçe olacağı için Türkçe’yi ilk sıraya aldım. Bu ayarı yaptıktan sonra admin paneli kapanacaktır.

Çözümü ise
WP Auth key’den geçiyor. WP Auth Key almak için şu adresi kullanabilirsiniz. Sayfayı her yenilediğinizde yeni bir key verecektir. Sayfadan aldığımız keyi gireceğimiz sayfalar ise;

*wp-config.php (45. satırdan 48. satıra kadar olan kısmı aldığınız key ile değiştirin. değiştireceğiniz satırlar)

*wp-content/languages/xx_XX.php (xx_XX yerine varsayılan olarak kullandığınız dil dosyası adı gelecektir. Türkçe kullanırsanız tr_TR.php dosyası olacak.)
xx_XX.php sayfasında tek satır kodumuz var

$wp_default_secret_key = 

karşısına almış olduğunuz auth key i yazacaksınız.

*wp-includes/default-constants.php (Bu dosyada değişiklik yapacağımız satır numarası ise 156. Ekleyeceğiniz kodu buradan görebilirsiniz).

Bunları yaptıktan sonra admin panelimize sorunsuzca girebiliriz.

Sorunlarımızı çözdükten sonra gelelim nasıl çoklu dilde yapacağımızda…
 Wordpress ile Çok Dilli Siteler Hazırlamak
Eklenti resimde görüldüğü gibi otomatik olarak çeviri işlemi yapmıyor. Elimizde mevcut olan diğer dillerdeki içerikleri girmemizi sağlıyor.

Dil ayarlarımızı yaptıktan sonra “Yeni Yazı” ve ya “Yeni Sayfa” eklerken resimdeki gibi bir görüntü ile karşılacaşacağız. Buradan her dil için ayrı başlık ve içerik girebiliyoruz.

Peki nasıl otomatik oluyor ?
Eklenti seçeneklerimizde tarayıcı diline göre otomatik olarak eklediğimiz içeriğe yöneltiyor. Yani tarayıcımız İngilizce ise otomatikman İngilizce içerik göreceğiz. Bu işi 3 türlü yapabiliyoruz. Seçeneklerimiz subdomain, sorgu biçimi ve ya ön yol. Sub domain seçersek tr.domain.com en.domain.com şeklinde oluyor. Sorgu yöntemini seçtiğimizde domain.com?lang=tr ve ya domain.com?lang=en şeklinde oluyor. Ben ön yolu kullanmayı tercih ettim. Çünkü subdomain kullanıyordum. Ön yol kullanırsakta url biçimimiz domain.com/tr/ ve ya domain.com/en/ oluyor. (ki bence en zahmetsizi ve en kullanışlısı bu).

Sorun 2: Hızlı Düzenle Seçeneği
Karşılaştığım bir diğer sorun ise hızlı düzenleme seçeğinde oldu. Sayfa sıralaması düzenlerken hızlı düzenle’den sayfa numaralarını verip geçtim ancak diğer dillere geçtiğimde de başlıkların varsayılan dilde olduğunu gördüm. Hemen geri dönüp başlıkları eski haline getirdim ve bu sorunu da çözmüş oldum.

Sayfa ve yazı harici yerlerde kullanım
Eklenti sunmuş olduğu “shortcode” (kısa kod) desteği ile wordpress’in her alanında çoklu dil desteği veriyor. Örnek olan widget başlıkları ve içerikleri için kullanabilirsiniz. widgetlerde kullanımı “[:tr]Galeri [:en]Gallery [:de]Galerie ” şeklinde. Açıklayacak olursak; dil kodu ardından başlık geliyor ve örnek olarak siteyi Almanca olarak görüntülüyorsak diğer dillerin başlıkları gözükmüyor.
Aynı şekilde widget içeriklerinde de shortcode’larımızı kullanabiliriz.

Şu an anlattıklarımla elinizde istediğiniz dilde bir WordPress siteniz var icon smile Wordpress ile Çok Dilli Siteler Hazırlamak Eklentiyi biraz daha kurcaladıkça eminim hayran kalacaksınız.

25.10.2011 – Güncelleme;

“name” isimli okurumun sorusundan aynı zamanda verdiği cevaptan alıntı yaparak; sitede kullandığımız dilleri göstermek için shortcode eklemelerini yapıyoruz…
Yalnızca bayraklar için;

< ?php echo qtrans_generateLanguageSelectCode('image'); ?> 

Yalnızca dil adı için;

< ?php echo qtrans_generateLanguageSelectCode('text'); ?>

İkisinin birlikte görünmesi için;

< ?php echo qtrans_generateLanguageSelectCode('both'); ?>

07.06.2013 Güncelleme!
Sitesine kodlarını eklemekte zorluk çeken arkadaşlar gerekli kodları ve açıklamaları alttaki adresten temin edebilirler…
http://codepen.io/bahadirtezer/pen/mBwFA

Konu hakkında soru ve görüşleriniz için “yorum” yazmaktan kaçınmayın icon smile Wordpress ile Çok Dilli Siteler Hazırlamak Unutmadan yaptığım sistemin örneğini http://www.cangarden.com/ adresinden görebilirsiniz.

Bol WordPress’li günler !