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]