Grav - Çoklu Dil

Çoklu Dil, web sitenizde farklı dillerin kullanılması olarak tanımlanır. Grav sitenizde çoklu dilleri kullanmanıza yardımcı olacak farklı prosedürleri öğreneceğiz.

Çoklu Dil Temelleri

Temel olarak Grav , herhangi bir sayfanın gösterimi için bir .md dosyasına ihtiyaç duyar . Çoklu dil desteğini etkinleştirdiğinizde, aşağıdaki gibi bir dosya arayacaktır.default.en.md veya default.fr.md..

Dil Yapılandırması

Öncelikle, cihazınızda bazı temel dil yapılandırması kurmalısınız. user/config/system.yamldosya. dosya.

Language:
   Supported:
      - en
      - Fr

Bunu yaparak, Grav'da çoklu dil desteğini etkinleştirmiş oldunuz. Yukarıdaki kodda,en İngilizce anlamına gelir ve frFransızca anlamına gelir. Bu, sitenizin bu iki dili destekleyeceği anlamına gelir. Burada varsayılan dil en (İngilizce) 'dir . Önce Fr (Fransızca) yazarsanız , bu varsayılan diliniz olur.

Çoklu Dil Sayfaları

Varsayılan diliniz olarak ayarlanmışsa English, sonra Grav arayacak default.en.mddosya. Bu dosya bulunamazsa, Grav ayarladığınız başka bir dili arar. Her iki dil de bulunamazsa, o zamandefault.md dosya.

Example

default.en.md dosyası

---
title: Home
---

# Grav is Running!
## You have installed **Grav** successfully

Yukarıdaki kod aşağıdaki çıktıyı üretecektir -

Varsayılan dil olarak Fransızca için default.fr.md dosyası -

---
titre: Accueil
---

# Grav est en marche!
## Vous avez installé ** ** Grav succès

Yukarıdaki kod aşağıdaki çıktıyı üretecektir -

URL aracılığıyla Aktif Dil

Web sitenizin URL'sini bir dil koduyla güncellemek istiyorsanız, şu adımları izleyin -

Example

Sitenizin İngilizce olmasını istiyorsanız, tarayıcınıza aşağıdaki satırı yazın -

http://www.mysite.com/en

Sitenizin Fransızca olmasını istiyorsanız, tarayıcınıza aşağıdaki satırı yazın -

http://www.mysite.com/fr

Tarayıcı Üzerinden Aktif Dil

Grav, http_accept_languagebunları değerleyin ve desteklenen dili sunmak için karşılaştırın. Bunun çalışmasını istiyorsanız,user/system.yaml dil bölümünde dosya -

language :
   http_accept_language : true

Dil Bazlı Ana Sayfa

Dil tabanlı bir ana sayfaya sahip olmak için, aşağıdaki kodu sayfanızda etkinleştirmelisiniz: site.yaml dosya -

home:
   aliases:
      en: /homepage
      fr: /page-d-accueil

Bu şekilde Grav, aktif dillerden hangi dili kullanacağını bulacaktır.

Aşağıdaki kod, Grav'ı sizi varsayılan dil rotanıza yönlendirmeye zorlayacaktır. İnclude_route seçeneği , URL'nize aşağıdaki gibi dil kodunu eklemeye zorlar:http://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

Dil Tabanlı Twig Şablonları

Dosyanız default.en.md ise , Grav default.html.twig olarak bir twig dosyası arayacaktır . Dile özgü bir dal dosyasına ihtiyacınız olduğunda, bunu dil klasörünün kök düzeyinde yüklemeniz gerekir. Mevcut temanıztemplates/default.html.twig bir tane yaratmalısın templates/en/ klasörünü açın ve İngilizce'ye özgü klasörünüzü şu şekilde yerleştirin: templates/en/default.html.twig

Dil Değiştirici

Dil değiştirici eklentisi Grav Package Manager'da (GPM) mevcuttur .

Twig üzerinden çeviriler

Dal filtresi ve t () işlevini kullanın. Her ikisi de benzer şekilde çalışır. Başka bir dal dosyanız varsa, bir diziden çeviri yapmanıza izin verir.

Eklenti ve Tema Dili Çevirileri

Çevirilerinizi eklentilerde ve temalarda sağlayın languages.yaml dosya temanızın veya eklentinizin (/user/plugins/error/languages.yaml) kök dizininde yer almalı ve desteklenen tüm dilleri içermelidir.

Çeviri Geçersiz Kılmaları

Çeviriyi geçersiz kılmak istiyorsanız, değer çiftini kullanıcı / diller / klasörünüzdeki dil dosyasına koymalısınız .

ileri

Environment – Based Language Handling

Kullanıcıları URL'ye göre sitenizin doğru sürümüne yönlendirmek mümkündür. Sitenizin url’sihttp://english.yoursite.com, standardınız için bir takma ad http://www.yoursite.com, daha sonra olarak bir konfigürasyon oluşturabilirsiniz /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

Tersine çevrilmiş dil düzeni kullanır. Yukarıdaki kodda, fr varsayılan dildir. Eğer tutarak sıralamayı değiştirin tr üst ve en fr altta, o zaman en tr varsayılan dil haline gelir.

Dilin Takma Adlı Yolları

Aynı sayfanın farklı dil sürümleri arasında geçiş yapmak çok zordur, Page.rawRoute()sayfa nesnenizdeki yöntem. Tek bir sayfanın farklı dil çevirileri için aynı ham yolu alır. Doğru bir rota elde etmek için dil kodunu öne koyun.

Özel bir rotayla Fransızca sayfasındaysanız -

/ma-page-francaise-personnalisee

İngilizce sayfada özel rota var -

/my-custom-french-page

Fransızca sayfanın ham sayfasını elde edersiniz ve bu -

/blog/custom/my-page

Ardından, yeni URL'niz olacak istediğiniz dili eklemeniz yeterlidir.

/en/blog/custom/my-page

Çeviri Desteği

Grav, temalarda ve eklentilerde kullanılmak üzere Twig'de PHP aracılığıyla çeviriler sağlamak için basit bir mekanizma sağlar. Varsayılan olarak etkindir ve kullanırenbelirli bir dil tanımlanmamışsa dil. Etkinleştirmek veya devre dışı bırakmak için system.yaml dosyasına gidin ve değişiklikleri yapın.

languages:
   translations: true

Birçok şekilde ve farklı yerlerde çeviri sağlayabilirsiniz. İlk yer sistem / diller klasörüdür. Dosyalar şurada oluşturulmalıdır:en.yaml, fr.yamlvb. format. Her yaml dosyası bir dizi veya iç içe geçmiş anahtar çiftlerinden oluşmalıdır.

SITE_NAME: My Blog Site
HEADER:
   MAIN_TEXT: Welcome to my new blog site
   SUB_TEXT: Check back daily for the latest news

Session Based Active Language

Etkin dilin oturuma dayalı depolamasını etkinleştirebilirsiniz. Etkinleştirmek için sahip olmanız gerekirsession : enables : true system.yaml'de ve dil ayarını etkinleştirin.

languages:
   session_store_active: true

Language Switcher

GPM'den bir dil değiştirme eklentisi yükleyin.

Setup with language specific domains

Varsayılan dilleri atamak için Ortam tabanlı dil işleme yapılandırmasına sahip olun. Bu seçeneği system.yaml dosyanıza ekleyin; true olarak ayarlanmalıdır.

pages.redirect_default_route: true

Aşağıdakileri ekleyin: .htaccess dosyalayın ve ihtiyaçlarınıza göre dil sümüklü böceklerini ve alan adlarını seçin.

# http://www.cheat-sheets.org/saved-copy/mod_rewrite_cheat_sheet.pdf
# http://www.workingwith.me.uk/articles/scripting/mod_rewrite

# handle top level e.g. http://Grav-site.com/de
RewriteRule ^en/?$ "http://Grav-site.com" [R = 301, L]
RewriteRule ^de/?$ "http://Grav-site.de" [R = 301, L]

# handle sub pages, exclude admin path
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^en/(.*)$ "http://Grav-site.com/$1" [R = 301, L]
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^de/(.*)$ "http://Grav-site.de/$1" [R = 301, L]