WordPress’te iki ayrı dil ayarı vardır: sitenin dili ve her kullanıcının kendi profil dili. Site dili ziyaretçinin gördüğü ön yüzü belirler, profil dili ise yalnızca o kullanıcının yönetim panelini. İkisinin karışması, “panel Türkçe ama sitem İngilizce” ya da tam tersi şikâyetlerinin en sık nedenidir. Aşağıdaki açıklamalar WordPress’in resmî belgelerine ve çekirdek kaynak koduna dayanır; menü adlarını İngilizce arayüzdeki karşılıklarıyla birlikte veriyoruz.
Site dili ne değiştirir
Site dili Settings > General (Türkçe panelde Ayarlar > Genel) ekranındaki Site Language alanından seçilir. WordPress 4.0’dan bu yana bu değer veritabanında WPLANG adlı bir seçenek olarak saklanır. Eskiden wp-config.php dosyasına yazılan WPLANG sabiti aynı sürümde kullanımdan kaldırıldı. Eski bir kurulumda bu satırı hâlâ görebilirsiniz, ancak dili belirleyen artık Genel Ayarlar ekranıdır.
Bu ekranda yeni bir dil seçip kaydettiğinizde çekirdek kod şunu yapar: kullanıcınızın dil kurma yetkisi (install_languages) varsa ve sunucu dosya yazmaya izin veriyorsa, seçilen dilin çekirdek dil paketini WordPress.org’dan indirir. Bu iş wp_download_language_pack() fonksiyonuyla yapılır ve fonksiyon yalnızca çekirdek paketini indirir. Tema ve eklenti çevirileri bu anda gelmez, aşağıda anlatılan güncelleme denetimiyle gelir.
Site dili ön yüzde şunları etkiler:
- Temanın ve eklentilerin ziyaretçiye gösterdiği arayüz metinleri (“Devamını oku”, “Yorum yap”, arama kutusu, 404 sayfası metni gibi), tabii ki o dilde çevirisi varsa
- Ay ve gün adları
<html>etiketindekilangözniteliği- Profil dili seçmemiş kullanıcıların yönetim paneli
Profil dili (WordPress 4.7’den beri)
WordPress 4.7 ile her kullanıcı Users > Profile (Kullanıcılar > Profil) ekranındaki Language alanından kendi dilini seçebiliyor. Seçim, kullanıcının locale adlı meta alanına yazılır. Alanda “site varsayılanı” seçeneği de vardır; bunu seçen kullanıcı site dilini kullanır.
Hangi isteğin hangi dili kullanacağına determine_locale() fonksiyonu karar verir. Yönetim paneli isteklerinde kullanıcının dili (get_user_locale()), ön yüz isteklerinde site dili (get_locale()) kullanılır. Yani siteniz Türkçeyken bir editör paneli İngilizce görebilir; ziyaretçiye giden sayfa yine Türkçe kalır.
Profil ekranındaki dil alanı, sitede en az bir ek dil kuruluysa ya da kullanıcı dil kurabiliyorsa görünür. Kullanıcı kurulu olmayan bir dili seçerse ve yetkisi varsa WordPress o dili kaydederken indirir. Yetki yoksa ya da indirme başarısız olursa seçim boşaltılır ve kullanıcı site dilinde kalır.
| Ayar | Yeri | Saklandığı yer | Etkilediği yer |
|---|---|---|---|
| Site dili | Ayarlar > Genel | WPLANG seçeneği |
Ön yüz ve profil dili seçmemiş kullanıcıların paneli |
| Profil dili | Kullanıcılar > Profil | Kullanıcı meta alanı locale |
Yalnızca o kullanıcının paneli |
Bir ayrıntı daha: 4.7 ile gelen switch_to_locale() fonksiyonu, kod içinde dili geçici olarak değiştirmeye yarar. Çekirdek ekibinin duyurusu bunu örneğin bir e-postayı alıcının dilinde göndermek için önerir. Bir eklentinin gönderdiği e-postaların hangi dilde gittiği bu yüzden eklentiden eklentiye değişebilir.
Dil değiştirince tema çevirileri nasıl gelir
Siteye Türkçe çekirdek paketi kurulunca tr_TR, kurulu diller listesine (get_available_languages()) girer. WordPress’in tema güncelleme denetimi (wp_update_themes()) kurulu temaların listesini, kurulu çevirileri ve bu dil listesini api.wordpress.org’a gönderir. Sunucu, kurulu temalar için Türkçe dil paketi varsa bunu yanıtta bildirir.
Bundan sonra iki yol vardır:
- Dashboard > Updates (Türkçe panelde Başlangıç > Güncellemeler) ekranının en altındaki Translations bölümünde “New translations are available” uyarısı ve Update translations düğmesi çıkar. Düğmeye bastığınızda çekirdek çevirileri
wp-content/languages, tema ve eklenti çevirileri bu klasörün altındaki alt klasörlere kurulur. - Elle bir şey yapmasanız da çeviri dosyaları varsayılan olarak otomatik arka plan güncellemesiyle kurulur. WordPress belgesine göre çeviri güncellemeleri küçük çekirdek sürümleri gibi varsayılan olarak açıktır ve
auto_update_translationfiltresiyle kapatılabilir.
Dil değiştirdikten hemen sonra tema hâlâ İngilizceyse, önce Güncellemeler ekranına bakıp çeviri denetimini elle yenilemek gerekir. Çeviri hiç görünmüyorsa genellikle temanın Türkçe dil paketi yoktur. Türkçe dil paketinin ne zaman oluştuğu, yani %90 eşiği, dil paketi %90 kuralı yazısının konusu.
Verimize göre ayrı sayfası olan 107 tema ile 15 varsayılan Twenty temasından oluşan 122 temanın 54’ü için WordPress.org çeviri API’si Türkçe (tr_TR) dil paketi döndürüyor. 15 varsayılan temanın hepsi bu 54’ün içinde. Kalan 68 temada panelden otomatik gelen bir Türkçe paket yok. Tam çevrilmiş temaların listesi Türkçe seviyesi tam sayfasında, ölçümün nasıl yapıldığı veri ve yöntem sayfasında. Paket yoksa ya da kendi çevirinizi kullanmak istiyorsanız dosyaları elle yerleştirmeniz gerekir; bunların güncellemede neden silinebileceğini po ve mo dosyaları yazısında anlattık.
html lang ve dir öznitelikleri
Klasik temalar header.php dosyasında <html <?php language_attributes(); ?>> satırını kullanır. Blok temalarında bu etiketi çekirdeğin template-canvas.php şablonu aynı fonksiyonla basar. Fonksiyonun arkasındaki get_language_attributes() iki şey yapar:
- Dil sağdan sola yazılıyorsa (
is_rtl()doğruysa)dir="rtl"ekler. langdeğeriniget_bloginfo( 'language' )ile alır. Bu değer, çeviri dosyasındahtml_lang_attributedizesi için tanımlanmış bir dil etiketi varsa onu, yoksa geçerli yerel ayarın alt çizgisinin kısa çizgiye çevrilmiş hâlini kullanır. Türkçe çekirdek dil paketi bu dize içintrdeğerini tanımladığı için Türkçe sitelerde sonuçlang="tr"olur (WordPress 7.1.3 Türkçe paketi, 18 Ekim 2026).
Etiket ön yüzde site dilinden üretilir. Profil dilini İngilizce yapmanız ziyaretçinin gördüğü lang değerini değiştirmez. Kontrol etmek için sayfa kaynağını açıp ilk satırlarda <html lang="tr" ifadesini arayabilirsiniz. lang değeri tarayıcının heceleme, ekran okuyucunun telaffuz ve CSS’in büyük harf dönüşümü gibi dile bağlı davranışlarını etkiler; Türkçe İ/ı dönüşümüyle ilgili ayrıntılar Türkçe karakter sorunları yazısında. dir özniteliğinin tema seçimine etkisini erişilebilir ve RTL temalar yazısında ele aldık.
Saat dilimi, tarih biçimi ve hafta başlangıcı
Aynı Genel Ayarlar ekranında dilden bağımsız ama Türkçe bir sitenin görünümünü doğrudan etkileyen dört alan daha vardır.
Saat dilimi (Timezone). WordPress belgesi sabit bir UTC farkı yerine sizinle aynı saat dilimindeki bir şehri seçmenizi önerir. Türkiye için listede İstanbul bulunur. Yazıların yayın saati ve zamanlanmış yazılar bu ayara göre hesaplanır.
Tarih biçimi ve saat biçimi. Belgeye göre bu iki ayar sitenizin ön yüzünde tarih göstermek için tema geliştiricilerine yöneliktir ve yönetim ekranlarındaki tarih gösterimini kontrol etmez. Biçim PHP tarih karakterleriyle yazılır:
| Biçim | Çıktı (18 Ekim 2026, 13.05) |
|---|---|
j F Y |
18 Ekim 2026 |
d.m.Y |
18.10.2026 |
H:i |
13:05 |
Ay ve gün adlarını Türkçeye çeviren biçim ayarı değil, dil paketidir. wp_date() fonksiyonu ay ve gün adlarını geçerli dilin WP_Locale nesnesinden alır; site dili Türkçeyse F karakteri “Ekim” olarak çıkar. Tarih biçimini değiştirdiğiniz hâlde temanızda tarih aynı kalıyorsa tema bu ayarı okumuyor, kendi biçimini kullanıyordur.
Haftanın ilk günü (Week Starts On). Takvimlerde ilk sütunda hangi günün duracağını belirler. Belgeye göre varsayılan değer pazartesidir, bu da Türkiye’deki kullanımla örtüşür. Ayar, takvim bloğu gibi WordPress takvimlerini etkiler.
Tüm bu ayarları sonradan kontrol etmenin kısa bir yolu da var: Tools > Site Health > Info (Türkçe panelde Araçlar > Site sağlığı > Bilgi) ekranının WordPress bölümünde site dili, kullanıcı dili ve saat dilimi bir arada listelenir.