websitetema.online veri: 26 Ekim 2026
Türkçe

Hugo, Jekyll ve Astro temasının arayüz metinlerini Türkçeleştirmek

5 dk okuma · yayın 21 Ekim 2026 · son kontrol 20 Ekim 2026 · 6 kaynak

Bu yazıda
  1. Hugo, i18n klasörü
  2. Jekyll, ui-text ve locales dosyaları
  3. Astro, temaya göre değişir
  4. Türkçeye özgü üç tuzak
  5. Çevirinizi temaya geri gönderin

Bir temayla Türkçe yazı yayımlamak kolaydır; içerik sizin yazdığınız metindir. Zor olan, temanın kendi kalıp metinleridir: yazı listesinin altındaki “Read more”, etiket kutusunun başlığı “Tags”, sayfalama düğmelerindeki “Previous” ve “Next”, “5 min read” gibi okuma süresi ifadesi, İngilizce ay adlarıyla yazılmış tarihler. Bunlar şablonun içine gömülüdür ya da ayrı bir dil dosyasından gelir. Hangisi olduğu, Türkçeleştirmenin beş dakika mı yoksa bir öğleden sonra mı süreceğini belirler.

20 Ekim 2026 ölçümümüzde izlediğimiz temalardan hazır Türkçe dil dosyası taşıyanlar Hugo’da 18, Astro’da 1, Jekyll’da 4 taneydi. Bunların listesi Türkçe destekli temalar sayfasında. En az bir dil dosyası olan, yani çeviri altyapısını kullanan ama Türkçesi olmayan tema sayısı ise 33; bu temalarda çeviri eklemek tek bir dosya işidir.

Hugo, i18n klasörü

Hugo’da kalıp metinler çeviri tablolarında durur. lang.Translate belgesine göre çeviri tablosu i18n klasöründe bir JSON, TOML ya da YAML dosyasıdır ve RFC 5646 dil etiketine göre adlandırılır; belgedeki örnekler en.toml, pl.toml ve pt-BR.toml. Türkçe için dosya adı tr.toml (ya da tr.yaml, tr.json) olur. Şablonlarda bu tabloya T kısaltmasıyla erişilir; T, lang.Translate işlevinin takma adıdır.

Temada i18n/tr.toml yoksa yapmanız gereken, temanın İngilizce dosyasını (genellikle i18n/en.toml) bulup projenizin kökünde i18n/tr.toml adıyla kopyalamak ve değerleri çevirmektir:

[readMore]
other = "Devamını oku"

[tags]
other = "Etiketler"

[previousPage]
other = "Önceki sayfa"

Anahtar adları (readMore, tags gibi) temadan temaya değişir; temanın en.toml dosyasındaki adları birebir kullanmanız gerekir. Okuma süresi gibi sayı içeren metinlerde tema, değerin içine sayıyı yerleştiren bir şablon ifadesi kullanır; o ifadeyi olduğu gibi bırakıp yalnızca çevresindeki kelimeleri çevirin.

Bu dosyayı temanın klasörüne değil, projenin kendi i18n klasörüne koyun. Hugo’nun tema bileşenleri belgesi, çeviri ve veri dosyalarının proje ile temalar arasında çeviri kimliği düzeyinde derin birleştirildiğini ve önce projeye bakıldığını söyler. Yani yalnızca değiştirmek istediğiniz anahtarları yazmanız yeterlidir; tema güncellendiğinde dosyanız yerinde kalır.

Çoğul biçimlere dikkat edin. Belge, çoğul kategorilerin Unicode CLDR kurallarına göre belirlendiğini anlatır. Türkçede sayıdan sonra isim tekil kalır (“5 dakika”, “3 yazı”), bu yüzden one ve other biçimlerinde aynı ismi kullanmak doğaldır. İngilizceden çevirirken “minutes” karşılığını “dakikalar” yazmak sık görülen bir hatadır.

Eksik çeviri ne olur? Hugo’nun çok dilli mod belgesine göre bir metnin geçerli dilde çevirisi yoksa Hugo varsayılan dildeki değeri kullanır. Yapılandırmada enableMissingTranslationPlaceholders açarsanız çevrilmemiş metinler [i18n] kimlik biçiminde işaretlenir; bu ayar, hangi anahtarları atladığınızı görmek için işe yarar, yayından önce kapatılmalıdır.

Son olarak sitenin dilini ayarlayın: yapılandırmada defaultContentLanguage = "tr" ve languageCode = "tr-TR" gibi bir satır, hem doğru çeviri tablosunun seçilmesini hem de sayfanın lang özelliğinin Türkçe olmasını sağlar. Bazı temalar lang özelliğini başka bir parametreden okur; derlenen sayfanın kaynağında <html lang="tr"> göründüğünü kontrol edin.

Jekyll, ui-text ve locales dosyaları

Jekyll’ın kendisinde Hugo’daki gibi yerleşik bir çeviri sistemi yoktur; çeviri temanın tasarımına bağlıdır. Yaygın iki düzen var:

Temada Türkçe yoksa, Jekyll’ın tema belgesindeki geçersiz kılma kuralı burada da işe yarar: Jekyll önce sitenizin dosyalarına, sonra temanın varsayılanlarına bakar. Temanın _data dosyasını aynı yolla kendi sitenize kopyalayıp Türkçe bloğu ya da dosyayı eklemeniz yeterlidir. Gem olarak kurulmuş bir temanın dosyalarının yerini bundle info --path tema-adi komutu gösterir.

Kalıp metinleri dil dosyası yerine doğrudan şablona yazan Jekyll temaları da var. Bunlarda ilgili _includes ya da _layouts dosyasını sitenize kopyalayıp metni orada değiştirirsiniz; tema güncellendiğinde bu dosyalardaki değişiklikleri elle taşımanız gerekir.

Astro, temaya göre değişir

Astro temalarında ortak bir çeviri düzeni yoktur. Bazı temalar src/i18n/ ya da src/locales/ altında dil başına dosya tutar, bazıları tüm metinleri tek bir ui.ts ya da config.ts dosyasında nesne olarak saklar, bazıları ise metni doğrudan bileşenin içine yazar. Bizim tespitimiz yalnızca ilk düzeni görebildiği için Astro’daki gerçek Türkçe destek sayısı ölçümümüzden yüksek olabilir.

Pratik yol, temanın kaynağında “Read more” gibi bir ifadeyi aramaktır. İfade tek bir yapılandırma dosyasında çıkıyorsa çeviri kolaydır; onlarca bileşende ayrı ayrı çıkıyorsa her birini değiştirmeniz gerekir.

Türkçeye özgü üç tuzak

Tarih biçimi. JavaScript tabanlı temalarda tarihler genellikle Intl.DateTimeFormat ya da toLocaleDateString ile biçimlenir. MDN belgesine göre bu API ilk parametrede bir yerel ayar etiketi alır; tema burada en-US sabitlemişse ay adları İngilizce gelir. tr-TR verdiğinizde “20 Ekim 2026” biçimi elde edilir. Hugo’da tarih biçimleri dil ayarına göre yerelleştirilebilir; temanın tarih biçimi parametresinde ay adını sayı yerine adla yazdırıyorsanız Türkçe görüntüyü derlenen sayfada kontrol edin.

Büyük harf dönüşümü. CSS’teki text-transform: uppercase ve JavaScript’teki büyük harf dönüşümü, dili bilmezse “i” harfini “I” yapar; Türkçede doğrusu “İ”dir. MDN’nin text-transform belgesine göre bu özellik Türkçe gibi dillerde noktalı ve noktasız i çiftlerini (i/İ ve ı/I) dikkate alır ve dili HTML’deki lang özelliğinden okur, bu yüzden lang="tr" doğru ayarlandığında “Etiketler” başlığı “ETİKETLER” olarak görünür. Ayar en kalırsa “ETIKETLER” yazar. JavaScript tarafında toLocaleUpperCase('tr-TR') aynı işi görür.

Adres ve slug. Başlıktan otomatik adres üreten temalarda Türkçe karakterler ya korunur ya da kodlanır; “ağ-güvenliği” adresi paylaşıldığında a%C4%9F-g%C3%BCvenli%C4%9Fi gibi görünebilir. Adresleri elle ASCII olarak yazmak (ag-guvenligi) bu sorunu önler.

Çevirinizi temaya geri gönderin

Bir dil dosyasını çevirdiyseniz, onu temanın deposuna çekme isteği (pull request) olarak göndermek hem sonraki Türk kullanıcıların işini kolaylaştırır hem de sizin dosyanızın tema güncellemeleriyle uyumlu kalmasını sağlar. Bakımı süren temalarda bu tür katkılar genellikle kabul edilir; bakımı bırakılmış bir temada ise boşa gidebilir. Önce temanın bakım durumuna bakın. Hugo temasını nasıl bağlayacağınızı seçmediyseniz modül mü alt modül mü yazısı, çeviri dosyasının nerede durması gerektiğini de gösterir.

kaynaklar

  1. Hugo belgeleri, lang.Translate
  2. Hugo belgeleri, Multilingual mode
  3. Hugo belgeleri, Theme components
  4. Jekyll Docs, Themes
  5. MDN, text-transform
  6. MDN, Intl.DateTimeFormat

Website Tema ekibi hazırladı. Yazıdaki tema sayıları sitenin gece güncellenen GitHub ölçümüne dayanır ve yayın günündeki durumu gösterir. Bir hata gördüyseniz bize yazın.

Devamını okuyun