Это небольшой класс, реализованный с помощью языка PHP, который переводит HTML-страницу.
Иногда бывает необходимость хоть какого-то перевода страницы, чтобы иностранцу было понятно, о чём идёт речь. Да, вы правы, есть и обычное решение этого вопроса, используя переводчик в "Google Chrome", но встроенный предусмотренный перевод иногда может поднять репутацию для вашего ресурса.
Существуют лишь две неотъемлимые части для работы данного класса :
- PHP Simple HTML DOM Parser - обычный PHP-класс, предоставляющий возможность манипулировать над html-кодом как над DOM-документом (на самом деле, используя str_get_html или file_get_html, мы как раз и получаем DOM-документ).
- php-google-translate-free API - тоже PHP-класс, осуществляющий POST-запрос к серверу, который ,в итоге, отвечает переводом текста, соответствующему нашему запросу (можно использовать как и предложенный автором composer-вариант, так и обойтись простым скачиванием php-класса).
- PHP-cURL (это опционально : понадобится только в том случае, если вы собираетесь использовать удаленные ресурсы).
Простой пример:
require('makena_translator.php');
// "en" - это "target"-язык (целевой язык), а "ru" - это "source"-язык (язык оригинальной страницы);
/* Эти языки стоят в конструкторе класса по умолчанию,
поэтому можно было просто написать DefTranslator('https://makena.ru/');*/
$Translator = new DefTranslator('https://makena.ru/','en','ru');
// Можно указывать не только удаленный, но и локальный ресурс (например, './mypage.html').
if ($Translator->Translate() === true)
echo $Translator->GetTranslatedPage(); // отобразить результат в виде однострочной страницы
else
echo "Failure";
- В качестве языка-источника можно использовать только русский и английский языки (в качестве целевого языка можно использовать любой язык, указанный в списке).
- Не забудьте поменять аругмент у каждой команды require в makena_translator.php в соответствии с вашими интересами (первые две строчки).
- Учтите, что у "curl" в нашем классе опция "CURLOPT_FOLLOWLOCATION" установлена в "true", то есть при ответе "301" будет взят контент с финальной страницы, на которую происходит "redirect".