Grav - wielojęzyczny
Wielojęzyczność oznacza użycie różnych języków w Twojej witrynie. Poznamy różne procedury, które pomogą Ci używać wielu języków w Twojej witrynie Grav.
Podstawy wielu języków
Zasadniczo Grav potrzebuje pliku .md do reprezentacji dowolnej strony. Po włączeniu obsługi wielu języków będzie szukać pliku takiego jakdefault.en.md lub default.fr.md..
Konfiguracja języka
Najpierw musisz ustawić podstawową konfigurację języka w swoim user/config/system.yamlplik. plik.
Language:
Supported:
- en
- Fr
W ten sposób włączyłeś obsługę wielu języków w Grav. W powyższym kodzieen oznacza język angielski i froznacza francuski. Oznacza to, że Twoja witryna będzie obsługiwać te dwa języki. Tutaj domyślnym językiem jest en (angielski) . Jeśli najpierw napiszesz Fr (francuski) , stanie się on Twoim językiem domyślnym.
Strony w wielu językach
Jeśli Twoim domyślnym językiem jest English, wtedy Grav będzie szukał default.en.mdplik. Jeśli ten plik nie zostanie znaleziony, Grav szuka innego ustawionego języka. Jeśli nie zostaną znalezione oba języki, szuka rozszerzeniadefault.md plik.
Example
Plik default.en.md
---
title: Home
---
# Grav is Running!
## You have installed **Grav** successfully
Powyższy kod wygeneruje następujące dane wyjściowe -
W przypadku języka francuskiego jako języka domyślnego plik default.fr.md będzie miał postać -
---
titre: Accueil
---
# Grav est en marche!
## Vous avez installé ** ** Grav succès
Powyższy kod wygeneruje następujące dane wyjściowe -
Aktywny język za pośrednictwem adresu URL
Jeśli chcesz zaktualizować adres URL swojej witryny za pomocą kodu języka, wykonaj następujące kroki -
Example
Jeśli chcesz, aby Twoja witryna była w języku angielskim, wpisz poniższy wiersz w przeglądarce -
http://www.mysite.com/en
Jeśli chcesz, aby Twoja witryna była w języku francuskim, wpisz poniższy wiersz w przeglądarce -
http://www.mysite.com/fr
Aktywny język za pośrednictwem przeglądarki
Grav ma możliwość uzyskania pliku http_accept_languagewycenić i porównać je z obecnym obsługiwanym językiem. Jeśli chcesz, aby to działało, włączuser/system.yaml plik w sekcji językowej jako -
language :
http_accept_language : true
Strona główna oparta na języku
Aby mieć stronę główną opartą na języku, musisz włączyć następujący kod w swoim site.yaml plik -
home:
aliases:
en: /homepage
fr: /page-d-accueil
W ten sposób Grav na podstawie aktywnych języków dowie się, jakiego języka użyć.
Poniższy kod zmusi Grav'a do przekierowania Cię na domyślną trasę językową. A opcja include_route wymusza dodanie kodu języka do adresu URL, takiego jakhttp://www.mysite.com/en/home
languages:
home_redirect:
include_lang: true
include_route: false
Szablony Twig oparte na językach
Jeśli twój plik to default.en.md , wówczas Grav będzie szukał pliku gałązki jako default.html.twig . Jeśli potrzebujesz pliku gałązki specyficznego dla języka, musisz go przesłać na poziomie głównym folderu języka. Jeśli Twój obecny motyw jest w formacietemplates/default.html.twig musisz utworzyć templates/en/ folder i umieść w nim swój folder specyficzny dla języka angielskiego jako: templates/en/default.html.twig
Przełącznik języka
Wtyczka do przełączania języków jest dostępna w Grav Package Manager (GPM) .
Tłumaczenia za pośrednictwem Twig
Użyj filtra twig it () . Obie działają podobnie. Jeśli masz inny plik gałązki, umożliwia on tłumaczenie z tablicy.
Tłumaczenia wtyczek i motywów językowych
Udostępnij swoje tłumaczenia we wtyczkach i motywach, tworząc plik languages.yaml plik w katalogu głównym motywu lub wtyczki (/user/plugins/error/languages.yaml) i musi zawierać wszystkie obsługiwane języki.
Zastąpienia tłumaczenia
Jeśli chcesz nadpisać tłumaczenie, musisz umieścić parę wartości w pliku językowym w folderze user / languages / .
zaawansowane
Environment – Based Language Handling
Możliwe jest kierowanie użytkowników do właściwej wersji Twojej witryny zgodnie z adresem URL. Jeśli adres URL Twojej witryny tohttp://english.yoursite.com, alias dla twojego standardu http://www.yoursite.com, możesz utworzyć konfigurację jako /user/english.yoursite.com/config/system.yaml..
languages:
supported:
- fr
- en
Używa odwróconej kolejności języków. W powyższym kodzie fr jest językiem domyślnym. Jeśli zmienisz kolejność, pozostawiając en na górze i fr na dole, to en staje się językiem domyślnym.
Trasy aliasów języków
Bardzo trudno jest przełączać się między różnymi wersjami językowymi tej samej strony, możesz skorzystać z Page.rawRoute()na obiekcie strony. Pobiera tę samą nieprzetworzoną trasę dla różnych tłumaczeń językowych jednej strony. Umieść kod języka z przodu, aby uzyskać właściwą trasę.
Jeśli jesteś na stronie w języku francuskim z niestandardową trasą -
/ma-page-francaise-personnalisee
Strona w języku angielskim ma niestandardową trasę -
/my-custom-french-page
Otrzymujesz nieprzetworzoną stronę francuskiej strony i może to być -
/blog/custom/my-page
Następnie po prostu dodaj żądany język, który będzie nowym adresem URL.
/en/blog/custom/my-page
Wsparcie tłumaczeń
Grav zapewnia prosty mechanizm dostarczania tłumaczeń w Twig przez PHP do użycia w motywach i wtyczkach. Jest domyślnie włączona i używaenjęzyk, jeśli nie określono konkretnego języka. Aby włączyć lub wyłączyć, przejdź do pliku system.yaml i wprowadź zmiany.
languages:
translations: true
Możesz zapewnić tłumaczenia na wiele sposobów iw różnych miejscach. Pierwsze miejsce to folder system / języki. Pliki muszą zostać utworzone wen.yaml, fr.yamlitp. format. Każdy plik yaml musi składać się z tablicy lub zagnieżdżonych tablic par kluczy.
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
Możesz aktywować sesyjne przechowywanie aktywnego języka. Aby włączyć, musisz miećsession : enables : true w system.yaml i włącz ustawienie języka.
languages:
session_store_active: true
Language Switcher
Zainstaluj wtyczkę do zmiany języka z GPM.
Setup with language specific domains
Mieć konfigurację obsługi języka opartą na środowisku, aby przypisywać języki domyślne. Dodaj tę opcję do swojego system.yaml; musi być ustawione na true.
pages.redirect_default_route: true
Dodaj następujące elementy do swojego .htaccess plik i wybierz informacje o błędach językowych i nazwy domen zgodnie z własnymi wymaganiami.
# 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]