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]