(16) 981791110 contato@policast.studio

Introdução

Symfony é um framework de desenvolvimento web PHP de código aberto que facilita muito a criação de aplicativos da web. Com suas diversas ferramentas e bibliotecas, ele ajuda no desenvolvimento rápido e eficiente de aplicativos web com eficiência.

Neste artigo, abordaremos como criar um site multilingue com Symfony, implementando URLs amigáveis para diferentes idiomas.

Criação de uma rota de idioma padrão

O primeiro passo é configurar a rota de idioma padrão. Isso garantirá que, se nenhuma língua for especificada na URL, a rota padrão será carregada.

Route::get('/', 'HomeController@index')->name('home');

Aqui, definimos a rota padrão que carrega o método index no HomeController. Você pode substituir isso pelo seu controlador e método.

Criação de rotas para cada idioma

Agora, precisamos criar rotas para cada idioma em que nosso site será traduzido. Por exemplo, imagine que queremos ter nosso site em inglês e francês. Para isso, precisamos criar duas rotas, uma para cada idioma:

Route::group(['prefix' => 'en'], function () {
Route::get('/', 'HomeController@index')->name('home_en');
});

Route::group(['prefix' => 'fr'], function () {
Route::get('/', 'HomeController@index')->name('home_fr');
});

Aqui, as rotas são criadas sob os prefixos ‘en’ e ‘fr’, respectivamente. Ambas as rotas apontam para o mesmo método no controlador.

Definindo o middleware de idioma

Agora, precisamos validar o idioma da URL e definir o idioma a ser usado na aplicação. Isso é feito usando um middleware Symfony que faz isso para nós. Crie um middleware personalizado com o seguinte código:

namespace AppHttpMiddleware;

use Closure;
use IlluminateHttpRequest;

class LanguageMiddleware
{
public function handle(Request $request, Closure $next)
{
if ($request->segment(1) === 'fr') {
app()->setLocale('fr');
} else {
app()->setLocale('en');
}

return $next($request);
}
}

Aqui, verificamos o primeiro segmento da URL para determinar se é uma rota em inglês ou francês. Se for francês, definimos a localidade do Symfony como ‘fr’. Caso contrário, definimos como ‘en’.

Adicionando o middleware de idioma à rota

Por fim, precisamos adicionar o middleware de idioma à rota. Isso garantirá que o middleware seja executado todas as vezes que uma rota for acessada.

Route::group(['middleware' => 'language'], function () {
Route::get('/', 'HomeController@index')->name('home');
});

Agora, sempre que a rota for acessada, o middleware de idioma definirá o idioma correto antes de a rota ser carregada.

Conclusão

Neste artigo, abordamos como criar um site multilingue com Symfony, implementando URLs amigáveis para diferentes idiomas. Seguindo esses passos, você pode criar um site multilingue facilmente e torná-lo acessível para pessoas que falam diferentes idiomas.