Downloads
Stars
Version
A biblioteca utiliza Google Translate API e/ou AWS Translate API, para traduzir automaticamente os termos requisitados e grava em cache (redis) para consultas. A biblioteca contempla também um painel administrativo onde você pode alterar os termos traduzidos automaticamente.
O pacote pode ser instalado usando o compositor adicionando ao objeto "require"
"require": {
"kelvinsouza/translate": "dev-master"
}
ou pelo console:
composer require kelvinsouza/translate
Adicione o provider e aliases em seu arquivo config/app.php
...
Translate\Providers\TranslateProvider::class,
...
'Translate' => \Translate\Translate::class,
Publique os arquivos de configuração:
php artisan vendor:publish --tag=config
Publique as views:
php artisan vendor:publish --tag=views
Publique as migrations:
php artisan vendor:publish --tag=migrations
Para gerenciar as traduções, basta adicionar a rota em seu arquivo.
Você pode adicionar a rota publica (quando não haverá autenticação ou validações) adicionando a linha abaixo em seu arquivo de rotas:
Route::get('/translate/manager/{translate_lang?}', '\Translate\Http\Controllers\TranslateManager@index');
Caso queira validar o acesso antes, basta chamar o controller como exemplo abaixo:
Route::get('/translate/manager/{translate_lang?}', function ($translate_lang=null) {
if (! Auth::check()) return redirect('/auth/login');
return app('\Translate\Http\Controllers\TranslateManager')->index($translate_lang);
});
Você também pode utilizar os comandos do artisan para buscar novos termos no código, traduzir termos automaticamente ou atualizar o cache.
Busca novos termos:
php artisan translate:update
Traduz termos ainda não traduzidos automaticamente:
php artisan translate:auto {lang}
Atualiza o cache:
php artisan translate:sync
Para traduzir os termos, chame o helper "_t(...)"
_t('Termo para tradução');
Você pode utilizar variáveis nas traduções
_t('Olá {nome_usuario}', [$nome_usuario]);
Para traduzir arquivos .js, você deverá adicionar a seguinte linha no <head> da página:
<script src="/translate/js/{{ Translate::getLocale() }}"></script>
E também o seguinte código em um arquivo .js ou entre tags <script> dentro do <head> da página:
function _t(key) {
if (typeof Lang != 'object' || typeof Lang[key] != 'string') return key;
return Lang[key];
}
Obs.: As chamadas da função _t() em arquivos .js ainda não traduzem os termos automaticamente. Neste caso você terá que localizar e traduzir os termos utilizando o Translate Manager, ou os comandos no artisan.
This repository code is open-sourced software licensed under the MIT license