Grav Multisite (Çoklu Site) ve Multilang (Çoklu Dil) Kullanımı

WordPress MU çoklu site kontrolü başlıklı yazımda WordPress üzerinden tek kurulumla nasıl pek çok siteyi yönetebileceğimizden ve Google Analytics ile takip edebileceğimizden bahsetmiştim. Bu yazıda ise bu işlemleri Grav ile nasıl yapabileceğimden bahsedeceğim.

Unutmadan, bu yazıdaki işlemler öncesinde grav ile subdomain ve subdirectory çoklu site yayını yapabileceğinizi hatırlatmak istiyorum. Örnek senaryoda subdomain üzerinden ilerleyecek ve işlemlerin sonucunda Türkçe, İngilizce ve Fransızca dilleri üzerinden 3 site yönetiyor olacağız.

Grav Multisite (Çoklu Site) İşlemleri

Bir üst paragrafta da belirttiğim gibi, Grav üzerinden subdomain ve subdirectory olarak pek çok site oluşturabilir ve komut satırı arabirimi ve/ya admin eklentisi üzerinden kolaylıkla yönetebiliriz. Elbette her sitenin kendi yönetici paneli olacağını unutmamalısınız.

Örnek senaryomuzda subdomain kurulumunu tercih edeceğim ve İngilizce yayın yapan bir e-ticaret sitesi oluşturacağım. Adresini ise shop.ornekwebsitesi.com olarak belirleyeceğim. Diğer yandan ornekwebsitesi.com üzerinden yayın yapan ana site İngilizce ve Fransızca, alt marka için oluşturulan ve altmarka.ornekwebsitesi.com üzerinden yayın yapacak olan site ise İngilizce, Fransızca ve Türkçe dillerine sahip olacak. Özetlemek gerekirse;

  • Ana Site (ornekwebsitesi.com)
    • İngilizce
    • Fransızca
  • Alt Site (altmarka.ornekwebsitesi.com)
    • İngilizce
    • Fransızca
    • Türkçe
  • Alışveriş Sitesi (shop.ornekwebsitesi.com)
    • İngilizce

Öncelikle DigitalOcean üzerinden uygun bir droplet ile alanımızı oluşturalım ve Grav kurulumumuzu gerçekleştirelim. Grav uygulaması veritabanı gerektirmediği için farklı alternatifleri de rahatlıkla değerlendirebilirsiniz. Ek olarak HawkHost ve 1and1 gibi firmalar da Softaculous ve/ya diğer hızlı kurulum araçları vasıtasıyla pratik bir şekilde Grav kurulumu yapabilmenizi sağlamaktalar.

Artık subdomain işlemlerine geçebiliriz. Grav subDomain (alt alanadı) multisite kullanımı başlıklı yönergelere uygun olarak user/sites/ altında shop.ornekwebsitesi.com ve altmarka.ornekwebsitesi.com klasörlerini ve bu klasörler altında da pages klasörünü oluşturuyorum. config klasörü ise Grav tarafından oluşturulacak. Diğer yandan, cPanel üzerinden (ya da Apache ya da NGINX üzerinden el yordamıyla) wilcard olarak subdomain tanımlamamı gerçekleştiriyorum.

Elbette wilcard dışında doğrudan shop ve altmarka olarak da subdomain tanımlaması yapabilirsiniz.

Bu işlemin ardından bir özet oluşturmak gerekirse;

  • Grav kurulumumuzun olduğu dizinde setup.php adında bir dosya oluşturduk ve içeriğini buradaki gibi doldurduk.
  • cPanel üzerinden (veya Apache ya da NGINX yapılandırması ile) Subdomain tanımlamalarımızı yaptık.
  • user klasörü altında sites adında bir alt klasör ve bu alt klasörün altında da shop.ornekwebsitesi.com ile shop.ornekwebsitesi.com klasörlerimizi oluşturduk.
  • Oluşturduğumuz site klasörleri için ayrı ayrı pages içerikleri oluşturduk.

Artık sitelerimiz yayında ve her site için ayrı ayrı tema ve eklenti işlemleri gerçekleştirebiliriz. Burada bir dipnop düşmek istiyorum. bin/gpm ile eklenti ve/ya tema indirdiğinizde tüm siteleriniz altından bu tema ve eklentileri görebilirsiniz. Bu aşamadan sonra kullanmak istediğiniz temayı Themes altından seçip Active Theme linkini tıklamanız yeterli olacaktır. Örneğin, ana site için ben Quark (bin/gpm install quark) temasını kullanırken altmarka için Aerial (bin/gpm install aerial), shop için ise shop-site temasını belirledim. SnipCart eklentisi ise sadece shop için aktifleştirdim.

Evet, multisite (çoklu site) işlemlerimiz bu şekilde tamamlanmış oldu. Artık dil düzenlemelerine geçebiliriz.

Grav Multilang (Çoklu Dil) İşlemleri

Grav 0.9.30 sürümü itibariyle çoklu dil özelliğine sahip. Ek olarak ön tanımlı site dilini de pratik bir şekilde değiştirebilmektesiniz. Bu işlemleri eğer admin eklentisini kurduysanız bu işlemleri Admin > Configuration > Languages yolunu takip ederek düzenleyebilirsiniz. Ana sitemiz örnek senaryomuz itibariyle İngilizce ve Fransızca dillerinde içeriklere sahip olacağı için Languages başlığı altındaki Supported alanına en ve fr tanımlamamarını girip kaydediyorum.

Bu işlemle birlikte /user/sites/altmarka.ornekwebsitesi.com/config/system.yaml dosyasına belirlediğim diller eklenmiş olacak. admin eklentisi yerine el yordamıyla dil tanımlaması yapmak isteseydim yine bu dosya üzerinden ilerleyecek ve dosyaya şu satırları dahil edecektim.

languages:
  supported:
    - fr
    - en
  include_default_lang: true
  translations: true
  translations_fallback: true
  session_store_active: true
  http_accept_language: false
  override_locale: false

Benzer düzenlemeler altmarka için de geçerli. Elbette altmarka için site dilini tr olarak belirlediğimizde supported altında - tr satırı da yer alacaktır. shop için ise site dilini en olarak belirlememiz yeterli.

İçerikleri üreteceğimiz zaman ise yapmamız gereken admin eklentisi kullanıyorsak Pages > Add Page yolunu takip etmek. Sayfa oluşturma işleminin ardından Save butonunu içeriğinde Save as English, Save as Français gibi aktif dillerin listelendiğini görebilirsiniz. Bu sayede her içeriği farklı dillerle oluşturmanız mümkün hale gelecektir.

Farklı dillerde içerikleri admin eklentisini kullanmadan gerçekleştirmek istediğimizde her zamanki gibi sayfa oluşturma işlemine ek olarak dil tanımını dosya adıyla birlikte belirtmemiz yeterli olacaktır. Yani, 01.home/default.md içeriğimizin İngilizce versiyonunu oluşturmak istediğimizde içeriğimizi 01.home/default.en.md;

---
title: Home
---
 
# Grav is Running!
## You have installed **Grav** successfully

Fransızca için ise 01.home/default.fr.md olarak oluşturmalıyız;

---
titre: Accueil
---
 
# Grav est en marche!
## Vous avez installé ** ** Grav succès

Evet işlemlerimi bu kadar! Artık diğer içerikleri de benzer şekilde farklı dillerde oluşturabilirsiniz. İlgili içeriği tanımlı dillerde oluşturduğunuzda içerik bölümünde ilgili dil seçiminin mor ile işaretlendiğini görebilirsiniz.

Dil kullanımına dair (ana sayfa düzenlemeleri, sayfa url’lerinin dillere göre düzenlenmesi ve diğer işlemler için) Grav > Multi-language sayfasını inceleyebilirsiniz.

Leave a Reply