kelvinsouza/translate

Tradução automática para Laravel.

1.1.25 2020-11-12 20:39 UTC

README

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.

Instalação

O pacote pode ser instalado usando o compositor adicionando ao objeto "require"

"require": {
    "kelvinsouza/translate": "dev-master"
}

ou pelo console:

composer require kelvinsouza/translate

Configuração

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

Uso

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.

License

This repository code is open-sourced software licensed under the MIT license