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]