Grav - Multi Language

Multi-idioma é definido como o uso de diferentes idiomas em seu site. Aprenderemos diferentes procedimentos que o ajudarão a usar vários idiomas em seu site Grav.

Multi - Idiomas Básico

Basicamente, Grav precisa de um arquivo .md para a representação de qualquer página. Quando você ativa o suporte a vários idiomas, ele irá procurar por um arquivo comodefault.en.md ou default.fr.md..

Configuração de idioma

Você deve primeiro definir alguma configuração básica de idioma em seu user/config/system.yamlArquivo. Arquivo.

Language:
   Supported:
      - en
      - Fr

Ao fazer isso, você habilitou o suporte a vários idiomas no Grav. No código acima,en significa a língua inglesa e frsignifica francês. Isso significa que seu site oferecerá suporte a esses dois idiomas. Aqui, o idioma padrão é en (inglês) . Se você escrever Fr (francês) primeiro, esse se tornará seu idioma padrão.

Páginas com vários idiomas

Se o seu idioma padrão for definido como English, então Grav irá procurar default.en.mdArquivo. Se esse arquivo não for encontrado, o Grav procura outro idioma que você definiu. Se os dois idiomas não forem encontrados, ele procura odefault.md Arquivo.

Example

arquivo default.en.md

---
title: Home
---

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

O código acima irá gerar a seguinte saída -

Para o francês como idioma padrão, o arquivo default.fr.md será -

---
titre: Accueil
---

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

O código acima irá gerar a seguinte saída -

Linguagem ativa via URL

Se você deseja atualizar um URL para o seu site com um código de idioma, siga estas etapas:

Example

Se você quiser que seu site esteja em inglês, digite a linha abaixo em seu navegador -

http://www.mysite.com/en

Se você quiser que seu site seja em francês, digite a linha abaixo em seu navegador -

http://www.mysite.com/fr

Linguagem ativa via navegador

Grav tem a capacidade de obter o http_accept_languagevalorizar e compará-los com o idioma compatível atual. Se você quiser que isso funcione, ative o seuuser/system.yaml arquivo na seção de idioma como -

language :
   http_accept_language : true

Página inicial baseada no idioma

Para ter uma página inicial baseada no idioma, você deve habilitar o seguinte código em seu site.yaml arquivo -

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

Desta forma, Grav descobrirá qual idioma usar a partir dos idiomas ativos.

O código a seguir forçará o Grav a redirecioná-lo para sua rota de linguagem padrão. E a opção include_route força a adicionar o código do idioma em seu url comohttp://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

Modelos Twig baseados em linguagem

Se o seu arquivo for default.en.md , Grav irá procurar por um arquivo twig como default.html.twig . Quando você precisa de um arquivo twig específico do idioma, deve carregá-lo no nível raiz da pasta do idioma. Se o seu tema atual está emtemplates/default.html.twig você deve criar um templates/en/ pasta e coloque sua pasta específica em inglês como: templates/en/default.html.twig

Alternador de idioma

O plugin de troca de idioma está disponível no Grav Package Manager (GPM) .

Traduções via Twig

Use o filtro de galho e a função t () . Ambos funcionam de forma semelhante. Se você tiver outro arquivo twig, ele permite que você traduza de um array.

Plugin e traduções de linguagem de tema

Forneça suas traduções em plug-ins e temas criando um languages.yaml arquivo na raiz do seu tema ou plugin (/user/plugins/error/languages.yaml) e deve conter todos os idiomas suportados.

Substituições de tradução

Se você deseja substituir a tradução, deve colocar o par de valores no arquivo de idioma em seu usuário / idiomas / pasta.

Avançado

Environment – Based Language Handling

É possível direcionar os usuários para a versão correta do seu site de acordo com o URL. Se o url do seu site forhttp://english.yoursite.com, um alias para seu padrão http://www.yoursite.com, então você pode criar uma configuração como /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

Ele usa a ordem de linguagem invertida. No código acima, fr é o idioma padrão. Se você alterar a ordem mantendo en na parte superior e fr na parte inferior, en se tornará o idioma padrão.

Rotas de alias de idioma

É muito difícil alternar entre versões de idiomas diferentes da mesma página, você pode usar o Page.rawRoute()método em seu objeto de página. Ele obtém a mesma rota bruta para traduções em diferentes idiomas de uma única página. Coloque o código do idioma na frente para obter uma rota adequada.

Se você estiver na página em francês com uma rota personalizada de -

/ma-page-francaise-personnalisee

A página em inglês tem a rota personalizada de -

/my-custom-french-page

Você obtém a página bruta da página em francês e pode ser -

/blog/custom/my-page

Em seguida, basta adicionar o idioma desejado, que será seu novo URL.

/en/blog/custom/my-page

Suporte para traduções

Grav fornece um mecanismo simples para fornecer traduções em Twig via PHP para serem usadas em temas e plug-ins. Está habilitado por padrão e usaenidioma se nenhum idioma específico for definido. Para habilitar ou desabilitar, vá para o arquivo system.yaml e faça as alterações.

languages:
   translations: true

Você pode fornecer traduções de várias maneiras e lugares diferentes. O primeiro lugar é a pasta sistema / idiomas. Os arquivos devem ser criados emen.yaml, fr.yaml, formato etc. Cada arquivo yaml deve consistir em uma matriz ou matrizes aninhadas de pares de chaves.

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

Você pode ativar o armazenamento baseado em sessão do idioma ativo. Para habilitar você deve tersession : enables : true em system.yaml e habilitar a configuração de idioma.

languages:
   session_store_active: true

Language Switcher

Instale um plug-in de troca de idioma do GPM.

Setup with language specific domains

Ter configuração de manipulação de linguagem baseada no ambiente para atribuir idiomas padrão. Adicione esta opção ao seu system.yaml; deve ser definido como verdadeiro.

pages.redirect_default_route: true

Adicione o seguinte ao seu .htaccess arquivo e escolha os slugs de idioma e nomes de domínio de acordo com seus requisitos.

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