Laravel é uma ferramenta poderosa que permite aos desenvolvedores criar sites multilíngues. Ao implementar a localização web em seus Laravel , você pode fornecer uma experiência de usuário personalizada para visitantes de diferentes origens linguísticas, expandindo seu alcance e melhorando o envolvimento do usuário.
Orientaremos você na implementação da localização em sua aplicação Laravel e apresentaremos uma ferramenta que pode simplificar e aprimorar seus esforços de localização!
Por que você deveria localizar o site Laravel ?
Aqui estão alguns motivos importantes pelos quais você deve localizar seu site Laravel .
- Alcance um público global: Ao localizar seu Laravel , você pode estender o alcance do seu aplicativo para um público internacional. Isso permite que usuários de diferentes países e idiomas entendam e interajam com seu conteúdo.
- Melhora a experiência do usuário: a localização permite que os usuários interajam com o aplicativo em seu idioma nativo, o que melhora significativamente a experiência do usuário. Isso pode aumentar as taxas de engajamento, reduzir as taxas de rejeição e aumentar as conversões.
- Vantagem competitiva: Num mercado global competitivo, oferecer aplicações em vários idiomas pode proporcionar uma vantagem significativa sobre os concorrentes. Mostra o seu compromisso com os mercados internacionais e pode ajudá-lo a entrar em novos mercados de forma mais eficaz.
- Melhora o SEO: sites bem localizados tendem a ter uma classificação melhor nos mecanismos de pesquisa para pesquisas em um determinado idioma. Isso pode aumentar o tráfego do seu blog e a visibilidade online em vários mercados com tradução multilíngue.
Requisitos para uma localização multilíngue Laravel
Existem alguns requisitos e etapas a serem considerados ao implementar a localização multilíngue no Laravel .
- Para obter os recursos de localização mais recentes, certifique-se de estar usando a versão mais recente do Laravel (por exemplo, versão 10.x).
- Um conhecimento básico de PHP e do framework Laravel será útil no processo de implementação.
- Configure um ambiente de desenvolvimento local ou servidor que suporte Laravel , incluindo um servidor web e banco de dados.
- Determine os idiomas que seu aplicativo suportará desde o início.
Traduções simples Laravel
Depois de entender quais requisitos devem ser atendidos antes de traduzir uma aplicação ou web Laravel , forneceremos alguns passos para traduzir Laravel de forma simples.
Para fazer isso, abra o arquivo de visualização que deseja localizar, por exemplo, resources/views/welcome.blade.php. Em seguida, substitua a tag body pelo código a seguir.
Welcome to Linguise website!
Como você pode ver, o texto acima está escrito diretamente no código. Isto é menos eficiente e dificulta a tradução de websites para diferentes idiomas (internacionalização).
Vamos flexibilizar o texto acima para que possa ser facilmente adaptado a diferentes idiomas. Laravel oferece um recurso muito útil para isso; o sistema de localização. Como primeira etapa, substitua o texto existente pelo código a seguir.
{{ __('Welcome to Linguise website!') }}
Laravel exibirá o texto acima por padrão e procurará a tradução se o usuário selecionar um idioma diferente do inglês. Neste caso, o inglês será utilizado como idioma padrão do aplicativo.
Configurando localidades em uma web multilíngue Laravel
Mas como Laravel determina o idioma atual ou sabe quais idiomas estão disponíveis na aplicação? Ele verifica as configurações de localidade no arquivo config/app.php. Abra este arquivo e procure as duas chaves a seguir.
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',
A explicação acima das chaves deve ser clara. Em resumo, a chave de localidade contém a localidade padrão do seu aplicativo (se nenhuma outra localidade for especificada no código). O fallback_locale é ativado se uma localidade inexistente for solicitada em sua aplicação.
Agora, vamos adicionar uma nova chave a este arquivo para fornecer uma lista de todas as localidades suportadas.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Neste ponto, tentamos Laravel web para suportar três idiomas, nomeadamente inglês, italiano e francês.
Visão geral dos arquivos de tradução Laravel
No Laravel , como em muitos outros frameworks, as traduções para diferentes idiomas são armazenadas em arquivos separados. Dois métodos são usados para organizar esses arquivos de tradução.
O método mais antigo armazena arquivos na seguinte estrutura: resources/lang/{en,fr,it}/{myfile.php}. O método mais recente usa arquivos JSON, como resources/lang/{fr.json, it.json}. Este artigo se concentrará no método mais recente, embora os princípios sejam semelhantes para o método mais antigo, exceto pelas diferenças na forma como as chaves de tradução são nomeadas e acessadas.
Para idiomas com variações regionais, você deve nomear os diretórios ou arquivos de idiomas de acordo com o padrão ISO 15897. Por exemplo, o inglês britânico seria denominado en_GB em vez de en-gb.
informações gerais
No Laravel , assim como em muitos frameworks, as traduções para diferentes idiomas são armazenadas em arquivos separados. Existem dois métodos principais para organizar arquivos de tradução Laravel .
- A abordagem legada envolve o armazenamento de arquivos no caminho: resources/lang/{en,fr,it}/{myfile.php}.
- A abordagem moderna utiliza arquivos resources/lang/{fr.json, it.json}.
Este artigo se concentrará no segundo método, embora os princípios sejam aplicáveis a ambos (com variações na forma como as chaves de tradução são nomeadas e acessadas).
Para idiomas que variam de acordo com a região, é recomendado nomear diretórios/arquivos de idiomas de acordo com os padrões ISO 15897. Por exemplo, o inglês britânico seria denotado como en_GB em vez de en-gb.
Criando arquivos de tradução Laravel
Depois de configurar as localidades de nosso aplicativo, podemos prosseguir com a tradução de nossa mensagem de boas-vindas padrão.
Vamos começar criando novos arquivos de localização no formato JSON no diretório resources/lang. Primeiro, criaremos um arquivo resources/lang/it.json e o preencheremos com as traduções apropriadas.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Em seguida, adicione um arquivo resources/lang/fr.json.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Como você pode observar, estamos referenciando consistentemente a mensagem padrão do arquivo Welcome.blade.php ({{ __('Bem-vindo ao site Linguise !') }}). Não há necessidade de criar um arquivo en.json, pois Laravel reconhece automaticamente que as mensagens padrão estão em inglês.
Configurando o alternador de idioma em um aplicativo multilíngue Laravel
Além disso, Laravel ainda não está configurado para substituir o idioma local, então, por enquanto, iremos tratar da tradução diretamente na rota. Modifique a rota de boas-vindas padrão dentro do arquivo Routes/web.php assim.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
Nesse caso, estamos capturando um parâmetro GET de localidade opcional e definindo a localidade atual com base nele (se a localidade solicitada for suportada).
Agora você pode visitar seu site e incluir qualquer um dos idiomas suportados como o primeiro segmento no URL. Por exemplo, navegar para localhost/it ou localhost/fr exibirá o conteúdo localizado. Se você não especificar um local ou escolher um que não seja suportado, Laravel usará como padrão o inglês (en).
Middleware de localização para Laravel
Incluir a localidade em cada URL pode não ser ideal e prejudicar o apelo visual do site. Para resolver isso, configuraremos um alternador de idioma e utilizaremos a sessão do usuário para exibir o conteúdo traduzido. Você pode criar um novo middleware no arquivo app/Http/Middleware/Localization.php ou gerá-lo executando o comando artesão make:middleware Localization.
Em seguida, adicione o seguinte código dentro.
Este middleware irá direcionar Laravel para usar o local selecionado pelo usuário se esta opção estiver presente na sessão.
Como precisamos que a operação seja executada em cada solicitação, adicione-a à pilha de middleware padrão em app/Http/Kernel.php para o grupo de middleware da web.
/**
* The application's route middleware groups.
*
* @var array>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class, // <--- add this
],
Modificando rotas
A seguir, defina uma rota para alterar a localidade no arquivo Routes/web.php. Estamos usando uma rota de encerramento aqui, mas você pode colocar o mesmo código dentro de um controlador, se preferir.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Além disso, remova a alternância de localidade que foi adicionada anteriormente à rota de boas-vindas padrão. Sua rota raiz agora deve ficar assim.
Route::get('/', function () {
return view('welcome');
});
Feito isso, o usuário só poderá mudar o idioma ativo visitando localhost/idioma/{locale}. A localidade selecionada será salva na sessão e os usuários serão redirecionados de volta à página anterior (conforme tratado pelo middleware de localização).
Para testá-lo, vá para localhost/idioma/it (assumindo que o cookie de sessão esteja ativo em seu navegador) e você deverá ver o conteúdo traduzido. Você pode navegar no site ou atualizar a página e o idioma escolhido permanecerá em vigor.
Implementação de alternador de idioma
Agora, precisamos fornecer ao usuário uma opção clicável para alterar o alternador de idioma Laravel web, em vez de exigir que ele insira códigos de localidade na URL manualmente. Para conseguir isso, crie um alternador de idioma simples. Adicione um novo arquivo em resources/views/partials/language_switcher.blade.php e insira o seguinte código.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Para incluir o alternador de idioma recém-criado na visualização “boas-vindas”, basta adicionar a seguinte linha ao seu arquivo Welcome.blade.php onde deseja que o alternador apareça.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
Abra o arquivo app/Providers/AppServiceProvider.php e adicione o seguinte código no método boot() para compartilhar a localidade atual com todas as visualizações quando o alternador de idioma for usado
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
}
Recursos avançados de tradução no Laravel PHP
Nesta discussão, iremos então lidar com outros componentes de localização, nomeadamente data, número e moeda. Aqui estão as etapas.
Datas localizadas em Laravel
O manuseio de datas e horários é crucial no processo de localização. Laravel usa Carbon para gerenciar datas e horas. Veja como você pode usar o Carbon para exibir uma data localizada.
settings(
[
'locale' => app()->getLocale(),
]
);
// LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
$dateMessage = $today->isoFormat('dddd, LL');
return view('welcome', [
'date_message' => $dateMessage
]);
});
Este código define a localidade do Carbon com base na localidade atual do aplicativo e formata a data de acordo.
Para exibir a data localizada em uma visualização:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Formatando números e moedas
Diferentes países têm várias formas de formatar números. Por exemplo.
- França → 123 123,12
- Alemanha → 123.123,12
- Japão → 123.123
Para acomodar essas variações em sua aplicação Laravel , você pode usar NumberFormatter.
Você também pode soletrar números em um idioma específico.
Aqui estão as moedas. Para a localidade francesa (`fr`), a moeda será exibida em euros (€), enquanto para a localidade dos EUA (`en_US`), será mostrada em dólares americanos ($).
Solução alternativa de localização Laravel com Linguise
Depois de compreender as etapas de localização Laravel conforme descritas no artigo, este processo envolve muitas etapas que exigem que os usuários entendam profundamente o código do programa Laravel .
Isso certamente pode dificultar a localização de seus aplicativos para usuários novatos. Portanto, é necessária uma solução mais inovadora, capaz de tradução rápida, que suporte localização e que exija apenas alguns passos simples para ser implementada.
Uma solução promissora é Linguise . Linguise oferece uma abordagem mais fácil e eficiente para localização Laravel sem a necessidade de conhecimento profundo de codificação. Os principais recursos do Linguise incluem.
- Fácil integração com Laravel
- Personalize o alternador de idioma sem codificação
- Tradução de imagem
- Editor ao vivo para personalizar traduções para o contexto local
- Tradução dinâmica para conteúdo gerado dinamicamente
- Otimização SEO para versões multilíngues
As etapas para instalar Linguise em sites Laravel também podem ser executadas facilmente. Aqui está uma breve explicação.
- Crie uma conta Linguise (use o teste gratuito de 30 dias gratuitamente)
- Registre seu domínio web Laravel e insira algumas informações. Você receberá uma chave API.
- Carregue e conecte o script de tradução Linguise à pasta Laravel que você obteve.
- Configure URLs de idioma no arquivo htaccess.
- Insira o script do alternador de idioma no cabeçalho do seu HTML.
- Personalize o seletor de idioma conforme necessário
- O alternador de idioma aparecerá na web Laravel e o conteúdo poderá ser traduzido automaticamente.
Como? Com Linguise , você só precisa se registrar e ativar, e o alternador de idiomas aparecerá. Depois disso, você está livre para localizar, por exemplo, através do editor ao vivo, traduzir mídia, imagens, etc.
Conclusão
A localização Laravel é um recurso poderoso que permite aos desenvolvedores criar sites e aplicativos multilíngues. Como vimos, o processo de localização integrado Laravel envolve várias etapas e requer um bom entendimento do framework. Pode ser um desafio para iniciantes ou para quem procura uma solução mais rápida.
Ferramentas como Linguise oferecem uma alternativa inovadora para quem busca uma abordagem mais simplificada. Essas soluções oferecem recursos de tradução rápida, fácil integração e recursos fáceis de usar, como alternadores de idioma personalizáveis e tradução de imagens. Agora, crie sua conta Linguise e aproveite nosso recurso para localizar seu Laravel !