✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Crie um site multilíngue em PHP usando o Laravel Framework

275

Quer criar um site multilíngue em PHP? Um site multilíngue ajuda a aumentar o público de várias regiões. Neste artigo, estudamos como construir um site multilíngue em PHP usando o Framework Laravel.

O Laravel possui um recurso integrado de localização. A localização de idioma é o processo de tradução de conteúdo em diferentes idiomas. Usando este recurso embutido do Laravel, podemos adicionar suporte para vários idiomas ao site do Laravel.

No Laravel, você pode facilmente recuperar strings em vários idiomas, através dos quais você pode dar suporte a vários idiomas no aplicativo.

Existem 2 maneiras de definir as strings de tradução no Laravel – usando teclas curtas e usando as strings de tradução como chaves. Vamos dar uma olhada em um por um.

Tradução do Laravel usando teclas curtas

Para começar, você deve primeiro conhecer as estruturas de diretório usadas para tradução no Laravel.

Digamos que você precise adicionar suporte para o idioma ‘Alemão’. Portanto, crie um diretório ‘de’ na pasta ‘resources / lang’.

Crie um site multilíngue em PHP usando o Laravel Framework

Recomenda-se usar o nome da pasta de acordo com o território de acordo com os valores ISO. Você pode obter uma lista de códigos para idiomas aqui.

Crie um arquivo messages.phpna pasta ‘de’. Este arquivo contém uma matriz de strings com chave. Abaixo está o exemplo em que estamos usando a tradução alemã para a palavra inglesa ‘welcome’.

<?php
 
return [
    'welcome' => 'Herzlich willkommen',
];

Aqui, ‘bem-vindo’ é uma chave definida pelo usuário. Esta chave será usada para recuperar strings de tradução no idioma alemão. Você pode adicionar quantas chaves neste arquivo. Ao adicionar chaves, você deve usar chaves exclusivas na matriz. Chaves duplicadas resultarão em uma tradução errada.

O processo acima é fácil se o seu site não tiver muito conteúdo. Mas, se o seu site for muito rico em conteúdo, será difícil manter as chaves exclusivas. Nesses casos, escolha a segunda opção de passar strings de tradução como chaves.

Usando strings de tradução como chaves

Nessa abordagem, você não precisa passar uma chave exclusiva. O que você precisa fazer é criar um arquivo de.jsonno diretório ‘resources / lang’. Em seguida, neste arquivo JSON, passe a string de tradução como chaves.

Por exemplo, você deseja uma tradução alemã da frase em inglês ‘How are you?’ em seguida, no de.jsonarquivo, adicione o par abaixo.

{
    "How are you?": "Wie geht es dir?"
}

A chave da string de tradução deve ser exatamente o que você deseja traduzir. Isso será muito mais fácil, pois no código você terá que passar uma string de tradução diretamente.

Defina o idioma do site Laravel

Quando instalamos o Laravel, o idioma padrão definido é ‘en’. Para alterar o idioma padrão, abra o config/app.phparquivo. Encontre a chave ‘locale’ e defina o código do idioma. No nosso caso, será 'locale' => 'de'.

Como alternativa, você pode definir o tempo de execução da linguagem usando o setLocalemétodo de Appfachada. No código a seguir, defino a linguagem no construtor.

use App;
public function __construct() {
    App::setLocale('de');
}

Obtenha strings de tradução e substitua-as

Para obter o texto traduzido dos arquivos de idioma, o Laravel forneceu um método auxiliar ”. No código a seguir, estou obtendo strings de tradução de ambos messages.phpe de.jsonno arquivo blade.

{{ __('messages.welcome') }} //Output, Herzlich willkommen
 
{{ __('How are you?') }} //Output, Wie geht es dir?

No controlador, você pode obter a string de tradução usando a echofunção.

echo __('messages.welcome');
echo __('How are you?');

Marcadores de posição em strings de tradução

O Laravel também explora recursos de tradução onde você pode passar espaços reservados nas strings de tradução.

'welcome' => 'Welcome, :name',

Ou em de.josnarquivo,

{
    "How are you?": "Wie geht es dir, :name?"
}

Para substituir os espaços reservados no aplicativo, precisamos escrever o código da seguinte maneira.

{{ __('messages.welcome', ['name' => 'John']) }}
 
{{ __('How are you?', ['name' => 'John']) }}

Se escrevermos um placeholder como ‘: NAME’, a saída seria ‘JOHN’ e para ‘: Name’ a saída seria ‘John’.

Espero que você entenda como criar um site multilíngue em PHP usando o framework Laravel. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação