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
. 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;

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…

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
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'); ?>
Konu hakkında soru ve görüşleriniz için “yorum” yazmaktan kaçınmayın
Unutmadan yaptığım sistemin örneğini http://www.cangarden.com/ adresinden görebilirsiniz.
Bol WordPress’li günler !




merhaba, makalenizi okuduktan sonra cesaretlendim ve hazırladığım siteye dil eklemeye çalışıyorum. sizin yönergeleri izlerken 3.aşamada wp-includes/default-constants.php düzenlemesinde takıldım. ben de key alanı yok!.. (wordpress içindeki eklenti alanından qtranslete ekledim ilgisi olur mu), sizce nasıl yol izleyeyim, teşekkürler
A.Cetin Yucesoy
Çetin bey aynı satırda olmayabilir.
$wp_default_secret_key olarak arama yaparsanız işiniz daha kolaylaşır.
Yücesoy’un dediğim gibi default-constants.php dosyasında wp_default_secret_key bölümü yok. Aca yeni versiyonlarsa gerek kalmadı mı.
eline yüreğine sağlık kardeş de *wp-content/languages/xx_XX.php mesala bu klasörün xx_XX.php olan kısmın değiştirecez demi böyle bir klasor yok languages diye bir klasor var tamam da onun içeridinde diller var. bunu nasıl değiştirecez . ayrıca widgetlerde kullamınında bu kodları nereye yazıcaz
bayrakalr için eklenecek kodlar var bunları nereye eklıyoruz ? biraz fazla soru oldu ama bilginiz varsa beklıyorum . paylaşım için teşekkürler
vermiş olduğunuz örnek sitedeki gibi bayrak resimlerini nasıl büyük kullanabilirim. bir de header kısmına nasıl ekleyebilirim.
Merhaba, öncelikle ellerinize sağlık çok yardımcı oldunuz, fakat benim tek sorunum var, ben bayrak ikonlarının daima sağ üst köşede bulunmasını istiyorum, hangi kodu nereye yazmam gerekir, yardımcı olursanız sevinirim, teşekkürler
headar.php () kodu ekliyorum yanlız sayfanın solunda gözüküyor. Bunu sağa nasıl çekebilirim.
@cem, @emin, @ferhat;
Yazının sonunda header.php dosyasına eklemeniz gereken kodları vermiştim. Biraz daha dikkatli ve özenli olarak faydalanırsanız cevap verme sürem kısalacak. Yorumlarınız için teşekkürler.
Ben Transposh Çeviri Filtresi adlı eklentiyi kullanıyordum bunuda denemek istiyorum yazınız çok açıklayıcı olmuş çok teşekkürler.