Grav-다중 언어

다중 언어는 웹 사이트에서 다른 언어를 사용하는 것으로 정의됩니다. Grav 사이트에서 다국어를 사용하는 데 도움이되는 다양한 절차를 배웁니다.

다중 – 언어 기초

기본적으로 Grav 는 모든 페이지를 표현하기 위해 .md 파일이 필요합니다 . 다국어 지원을 활성화하면 다음과 같은 파일을 찾습니다.default.en.md 또는 default.fr.md..

언어 구성

먼저 몇 가지 기본 언어 구성을 설정해야합니다. user/config/system.yaml파일. 파일.

Language:
   Supported:
      - en
      - Fr

이렇게함으로써 Grav에서 다국어 지원을 활성화했습니다. 위의 코드에서en 영어를 의미하며 fr프랑스어를 의미합니다. 이는 귀하의 사이트가이 두 가지 언어를 지원한다는 것을 의미합니다. 여기서 기본 언어는 en (영어) 입니다. Fr (프랑스어)를 먼저 쓰면 기본 언어가됩니다.

여러 언어 페이지

기본 언어가 다음과 같이 설정된 경우 English, 그러면 Grav가 default.en.md파일. 해당 파일이 없으면 Grav는 사용자가 설정 한 다른 언어를 찾습니다. 두 언어가 모두 발견되지 않으면default.md 파일.

Example

default.en.md 파일

---
title: Home
---

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

위의 코드는 다음 출력을 생성합니다.

기본 언어로 프랑스어의 경우 default.fr.md 파일은 다음과 같습니다.

---
titre: Accueil
---

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

위의 코드는 다음 출력을 생성합니다.

URL을 통한 활성 언어

언어 코드로 웹 사이트 URL을 업데이트하려면 다음 단계를 따르세요.

Example

사이트를 영어로 작성하려면 브라우저에 아래 행을 입력하십시오.

http://www.mysite.com/en

사이트를 프랑스어로 작성하려면 브라우저에 아래 행을 입력하십시오.

http://www.mysite.com/fr

브라우저를 통한 활성 언어

Grav는 http_accept_language값을 비교하고 지원되는 언어를 제시하십시오. 이 기능을 사용하려면user/system.yaml 다음과 같이 언어 섹션의 파일-

language :
   http_accept_language : true

언어 기반 홈페이지

언어 기반 홈페이지를 만들려면 다음 코드를 활성화해야합니다. site.yaml 파일-

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

이런 식으로 Grav는 활성 언어에서 사용할 언어를 찾습니다.

다음 코드는 Grav가 기본 언어 경로로 리디렉션하도록합니다. 그리고 include_route 옵션은 URL에 다음과 같은 언어 코드를 추가하도록합니다.http://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

언어 기반 Twig 템플릿

파일이 default.en.md 이면 Grav는 twig 파일을 default.html.twig 로 찾습니다 . 언어 별 twig 파일이 필요한 경우 언어 폴더의 루트 수준에서 업로드해야합니다. 현재 테마가있는 경우templates/default.html.twig 당신은 만들어야합니다 templates/en/ 폴더를 열고 영어 전용 폴더를 다음과 같이 배치하십시오. templates/en/default.html.twig

언어 전환기

언어 전환기 플러그인은 Grav Package Manager (GPM) 에서 사용할 수 있습니다 .

Twig를 통한 번역

나뭇 가지 필터와 t () 함수를 사용합니다. 둘 다 비슷하게 작동합니다. 다른 twig 파일이있는 경우 배열에서 번역 할 수 있습니다.

플러그인 및 테마 언어 번역

플러그인과 테마로 번역을 제공하려면 languages.yaml 테마 또는 플러그인 (/user/plugins/error/languages.yaml)의 루트에있는 파일이며 지원되는 모든 언어를 포함해야합니다.

번역 재정의

번역을 재정의하려면 user / languages ​​/ 폴더 의 언어 파일에 값 쌍을 넣어야 합니다.

많은

Environment – Based Language Handling

URL에 따라 사용자를 올바른 버전의 사이트로 라우팅 할 수 있습니다. 사이트 URL이http://english.yoursite.com, 표준의 별칭 http://www.yoursite.com이면 다음과 같이 구성을 만들 수 있습니다. /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

반전 된 언어 순서를 사용합니다. 위 코드에서 fr 은 기본 언어입니다. en 을 상단에, fr 을 하단 에 유지하여 순서를 변경하면 en 이 기본 언어가됩니다.

언어 별칭 경로

동일한 페이지의 다른 언어 버전간에 전환하는 것은 매우 어렵습니다. Page.rawRoute()페이지 개체의 메서드. 단일 페이지의 다른 언어 번역에 대해 동일한 원시 경로를 얻습니다. 적절한 경로를 얻으려면 언어 코드를 앞에 넣으십시오.

사용자 지정 경로가있는 프랑스어 페이지에있는 경우-

/ma-page-francaise-personnalisee

영어 페이지는-

/my-custom-french-page

당신은 프랑스어 페이지의 원시 페이지를 얻을 수 있습니다.

/blog/custom/my-page

그런 다음 새 URL이 될 원하는 언어를 추가하십시오.

/en/blog/custom/my-page

번역 지원

Grav는 테마 및 플러그인에서 사용할 PHP를 통해 Twig에서 번역을 제공하는 간단한 메커니즘을 제공합니다. 기본적으로 활성화되어 있으며en특정 언어가 정의되지 않은 경우 언어입니다. 활성화 또는 비활성화하려면 system.yaml 파일로 이동하여 변경합니다.

languages:
   translations: true

다양한 방법과 장소에서 번역을 제공 할 수 있습니다. 첫 번째 장소는 시스템 / 언어 폴더입니다. 파일은 다음 위치에 생성되어야합니다.en.yaml, fr.yaml등 형식입니다. 각 yaml 파일은 키 쌍의 배열 또는 중첩 배열로 구성되어야합니다.

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

활성 언어의 세션 기반 저장소를 활성화 할 수 있습니다. 활성화하려면session : enables : true system.yaml에서 언어 설정을 활성화하십시오.

languages:
   session_store_active: true

Language Switcher

GPM에서 언어 전환 플러그인을 설치합니다.

Setup with language specific domains

기본 언어를 할당하기위한 환경 기반 언어 처리 구성이 있습니다. 이 옵션을 system.yaml에 추가하십시오. true로 설정해야합니다.

pages.redirect_default_route: true

다음을 귀하의 .htaccess 파일을 열고 요구 사항에 따라 언어 슬러그와 도메인 이름을 선택하십시오.

# 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]