Как переводить текст на разные языки с помощью Google Translate бесплатно в Symfony 3

Важный

В этом руководстве не используется платный API Google Translate, а используется бесплатная альтернатива, которая сканирует веб-сайт Google Translate.

Этот пакет разработан только для образовательных целей и пригодится для личного использования (ваши собственные сумасшедшие проекты). Не полагайтесь на этот пакет, так как он может сломаться в любое время, так как он основан на сканировании веб-сайта Google Translate. Рассмотрите возможность покупки Официального API Google Translate для других видов использования. Кроме того, Google может запретить IP вашего сервера или требуется решить CAPTCHA если вы отправляете необычный трафик (большой объем данных / запросов).

В настоящее время многие люди сильно полагаются на машинный перевод, особенно на Google Translate. Перевод Google замечательно хорош, по крайней мере, если сравнить его с переводом, который генерируют другие сервисы. Тем не менее, все знают, что Google Translate ни в коем случае не является идеальным переводческим сервисом, но очень приемлемым.

Если вы хотите создать какой-то личный модуль или службу личного перевода для вашего личного приложения, которая не стоит денег (не перевод элементов в вашем пользовательском интерфейсе), то вы попали на правильный веб-сайт. В этой статье вы узнаете, как переводить текст с помощью PHP с помощью пакета Google Translate PHP в вашем проекте Symfony.

1. Установите пакет Google Translate PHP

Чтобы перевести текст на все языки, которые позволяет веб-сайт Google, мы будем использовать пакет Google Translate PHP. Это полезный API, который позволяет вам использовать функции Google Translate бесплатно (переводит совершенно бесплатно).

Чтобы установить этот пакет в своем проекте symfony, выполните следующую команду в своем терминале (когда-то находившемся в каталоге вашего проекта):

composer require stichoza/google-translate-php

Если вам не нравится устанавливать пакеты с консоли (или вы хотите использовать определенные версии), вы можете отредактировать вручную composer.json и добавьте пакет как зависимость:

{
"require": {
"stichoza/google-translate-php": "~3.2"
}
}

Затем запустите composer install, и вы готовы использовать пакет. Этот пакет основан на пакете Guzzle HTTP и был написан @Stichoza. Если вам нужна дополнительная информация об этом пакете, пожалуйста, посетите официальный репозиторий в Github здесь.

2. Перевод текста

Перевод текста с помощью этого пакета довольно прост, вам нужно только импортировать TranslateClient Класс из пакета и создать новый экземпляр этого. Важно, чтобы вы установили язык текста, который вы хотите перевести, с соответствующим кодом (исходным языком) с помощью setSource и установить язык вывода (переведенный текст) с помощью setTarget,

Затем вы можете использовать метод translate из экземпляра, этот метод ожидает в качестве первого аргумента текст, который вы хотите перевести:

setSource('en'); // Translate from English
$tr->setTarget('es'); // Translate to Spanish
$text = $tr->translate('Hello World!');
// Outputs "Hola Mundo!"
return new Response($text);
}
}

Вы можете увидеть список кодов все доступные языки Google Translate здесь.

Используя статический метод

Вам не нужно создавать экземпляр TranslateClient, так как он предоставляет статический метод, чтобы сделать вещи проще и понятнее:

Определить исходный язык автоматически

Таким же образом, как это делает приложение для перевода Google, вы можете установить автоматическое распознавание языка, установив для исходного языка значение null:

setSource(null); // Detect automatically the language
$tr->setTarget('en'); // Translate to Spanish
// It should detect german
$text = $tr->translate('Guten Morgen');
// Outputs "Detected language 'de' and translation: Good Morning"
return new Response("Detected language code '{$tr->getLastDetectedSource()}' and translation: $text");
}
}

Как видите, вы можете получить обнаруженный код языка с помощью getLastDetectedSource метод клиента.

Ссылка на основную публикацию
Adblock
detector