Merge pull request 'Version 1.2.0' (#4) from develop into main
Reviewed-on: #4
This commit is contained in:
commit
6778bf1d30
15
README.md
15
README.md
@ -5,7 +5,10 @@
|
||||
# Параметры в **.env**:
|
||||
|
||||
### TRANSLATE_SERVICE
|
||||
По умолчанию через какой сервис обращаться за переводом. На данный момент доступен только один сервис - **yandex**.
|
||||
По умолчанию через какой сервис обращаться за переводом. На данный момент доступен только сервисы - **yandex**, **log**.
|
||||
|
||||
**yandex** - https://yandex.cloud/ru/services/translate<br>
|
||||
**log** - для проверки и внедрения в свой продукт.
|
||||
|
||||
### TRANSLATE_YANDEX_FOLDER_ID
|
||||
ID folder. Код можно увидеть в адресе console.yandex.cloud/folders/**{тут будет код}**.
|
||||
@ -23,6 +26,16 @@ ID folder. Код можно увидеть в адресе console.yandex.cloud
|
||||
### TRANSLATE_YANDEX_LIMIT_MAX_SYMBOLS
|
||||
Максимальное количество символов за один запрос. Если превышает, то делится на две части и делает по очереди два запроса. По умолчанию стоит 9000 символов. **На данный момент работает только перевод через систему очередей.**
|
||||
|
||||
### TRANSLATE_LOG_LIMIT_MAX_REQUEST
|
||||
Максимальное количество запросов в период, который указан в TRANSLATE_YANDEX_LIMIT_RATE_SECONDS. По умолчанию 20 запросов в секунду. **На данный момент работает только перевод через систему очередей.**
|
||||
|
||||
### TRANSLATE_LOG_LIMIT_RATE_SECONDS
|
||||
Период в котором считается максимальное количество запросов. По умолчанию стоит секунда. **На данный момент работает только перевод через систему очередей.**
|
||||
|
||||
### TRANSLATE_LOG_LIMIT_MAX_SYMBOLS
|
||||
Максимальное количество символов за один запрос. Если превышает, то делится на две части и делает по очереди два запроса. По умолчанию стоит 9000 символов. **На данный момент работает только перевод через систему очередей.**
|
||||
|
||||
|
||||
# Методы
|
||||
### Перевести обычный текст
|
||||
> \KorElf\TranslateLaravel\Facades\Translate::translateText(
|
||||
|
@ -35,5 +35,16 @@ return [
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'log' => [
|
||||
'driver' => '\KorElf\TranslateLaravel\Translate\LogDriver',
|
||||
'config' => [
|
||||
'limit' => [
|
||||
'max_request' => (int) env('TRANSLATE_LOG_LIMIT_MAX_REQUEST', 20),
|
||||
'rate_seconds' => (int) env('TRANSLATE_LOG_LIMIT_RATE_SECONDS', 1),
|
||||
'max_symbols' => (int) env('TRANSLATE_LOG_LIMIT_MAX_SYMBOLS', 9000),
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
50
src/Translate/LogDriver.php
Normal file
50
src/Translate/LogDriver.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace KorElf\TranslateLaravel\Translate;
|
||||
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Illuminate\Contracts\Foundation\Application;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use KorElf\TranslateLaravel\Contracts\Translate;
|
||||
use KorElf\TranslateLaravel\DTO\Languages;
|
||||
|
||||
final class LogDriver implements Translate
|
||||
{
|
||||
/**
|
||||
* @throws BindingResolutionException
|
||||
*/
|
||||
public static function init(Application $app, array $config = []): Translate
|
||||
{
|
||||
return new self(
|
||||
$app->make(Log::class),
|
||||
);
|
||||
}
|
||||
|
||||
public function __construct(
|
||||
private readonly Log $log
|
||||
) { }
|
||||
|
||||
public function translateText(array|string $text, string $targetLanguageCode, ?string $sourceLanguageCode = null): string|array
|
||||
{
|
||||
$this->log::info('Translate text', ['text' => $text, 'targetLanguageCode' => $targetLanguageCode, 'sourceLanguageCode' => $sourceLanguageCode]);
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
public function translateHtml(array|string $text, string $targetLanguageCode, ?string $sourceLanguageCode = null): string|array
|
||||
{
|
||||
$this->log::info('Translate html', ['text' => $text, 'targetLanguageCode' => $targetLanguageCode, 'sourceLanguageCode' => $sourceLanguageCode]);
|
||||
|
||||
return $text;
|
||||
}
|
||||
|
||||
public function listLanguages(): Languages
|
||||
{
|
||||
$languages = new Languages();
|
||||
$languages->add('ru', 'Russian');
|
||||
$languages->add('en', 'English');
|
||||
$languages->add('de', 'Deutsch');
|
||||
|
||||
return $languages;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user