Конвертер из html в jpg. Следуйте данной инструкции, чтобы конвертировать ваши HTML-файлы

Команда Яндекса продолжает идти по следам лидера и в очередной раз воспроизводит в своих лабораториях копии гугловских сервисов. Кому-то такое поведение может показаться недостаточно инновационным и даже несколько унизительным, но познакомившись ближе с разработками российской компании язык не поворачивается их в чем-либо упрекать. Да, их браузер имеет в своей основе Chrome, их карты, диск, почта и поиск иногда кое-где в чем-то повторяют решения Google, но в данном случае сам факт участия в гонке с самой технологичной компанией мира дорогого стоит. Яндекс старается не отставать, а иногда даже выпрыгивает вперед, предлагая нам свои собственные оригинальные решения и функции.

А поводом к столь длинному вступлению послужил недавний выход мобильного приложения для перевода (iOS, Android) под названием . В этой статье мы проверим, как он справляется со своими обязанностями и насколько соответствует эталону в лице Google Translate.

Интерфейс

Внешний вид переводчика от Яндекса трогательно похож на своего конкурента. Что, в общем-то не удивительно, потому что чрезмерная оригинальность тут была бы явно лишней.

Сверху расположена панель выбора языковой пары, под ним область отображения перевода, еще ниже — место для ввода текста. В окне Google Translate мы видим еще одну панель инструментов в самом низу для активации голосового ввода, рукописного текста и фотографий. В Яндексе ее нет и за счет этого, а также более светлой цветовой гаммы, интерфейс получился более просторным и удобным.

Методы ввода

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

Зато в Яндекс.Перевод реализовали такую классную штуку, как предугадывание вводимых слов. Поэтому, например, мой любимый запрос «как пройти в библиотеку» можно ввести всего за 8 касаний экрана (из них 4 пробела). Это действительно круто и реально экономит время.

Перевод

Google Translate знает более 70 языков, Яндекс — пока только 19 (русский, английский, французский, украинский, белорусский, болгарский, испанский, хорватский, итальянский, немецкий, польский, румынский, сербский, турецкий, чешский, шведский, датский, голландский и португальский языки). С другой стороны, это самые распространенные языки и они покрывают, вероятно, процентов 90 площади земного шара. Что касается технологий перевода, то в обоих переводчиках используется одна и та же система статистического машинного перевода, позволяющая использовать при переводе информацию, извлеченную из огромного количества размещенных в интернете текстовых документов. Технология-то одна, но алгоритмы разные, поэтому вполне можно ожидать разного качества перевода.

Сравнение лингвистических особенностей работы этих двух программ требует отдельного более подробного исследования, но мне после некоторого периода тестирования не удалось выявить явного лидера (речь идет о языковой паре английский-русский). Одни предложения более удаются одной программе, другие обороты — другой, но в целом все примерно одинаково.

Дополнительные функции

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

Яндекс этому может противопоставить только более подробные словарные статьи, демонстрирующие не только перевод, но и значение, синонимы и примеры применения слова. Таким образом, мы в дополнение к переводчику получаем и отличный словарь. Что же, для начала и это неплохо. Да, и оба переводчика умеют озвучивать перевод с помощью установленного в системе голосового движка.

Вывод

Учитывая, что это первая версия мобильного переводчика от Яндекса, у меня язык не поворачивается назвать этот блин комом. Уже сейчас он вполне достоин занять место рядом с Google Translate, так как с основной своей функцией — переводом — справляется на отлично. А потом, если разработчики не забросят и прикрутят ему недостающие дополнительные функции, он вполне сможет и выпихнуть Google c вашего устройства.

Время от времени каждому требуется перевести иностранную речь, но переводчиков слишком много. В этой статье будут рассмотрены главные преимущества многофункционального Яндекс.Переводчика (с английского на русский).

Яндекс не отстает от Google-переводчика, где существует автоматический определитель языка текста. Многие затрудняются корректно перевести текст, потому что не известен язык. Система поможет справиться с этой проблемой в считанные секунды.

Яндекс.Переводчик с английского на русский онлайн

В данном переводчике алгоритм работы отталкивается от статических данных, а не от правила языка. Яндекс предложил программу с уникальным подходом к обработке текста. Система выдает результат только после тщательного анализа текстов. В результате, получается наиболее правильный перевод из всех предлагаемых. Огромным достоинством этого переводчика является смена системы обработки языка, ведь правила часто меняются, а с ними правописание и значение слов. С более детальной информацией компания предлагает ознакомиться на своем официальном сайте.

Несколько режимов работы. Переводчик Яндекс с транскрипцией

Переводчик Яндекс способен переводить не только текст, но веб-страницы. Для этого потребуется выбрать переводимые языки и вставить необходимый текст. Чтобы перевести веб-страницу, нужно вставить адресную ссылку на источник и кликнуть «перевести» , в том числе и обычный перевод вставкой текста с транскрипцией.

Поддержка языков: турецкий, украинский, татарский, немецкий, казахский и т.д

Система перевода поддерживает больше 30 разных языков и их с писок постоянно расширяется , а пока это самые известные языки планеты.

Подборка синонимов

Чтобы перевести синоним, нет необходимости вводить каждое слово по отдельности. Переводимое слово вписывается в форму ввода и удерживается нажатием пару секунд. Затем будут показаны все доступные синонимы.

Перевод в других поисковых системах

При использовании Яндекса для поиска всегда присутствуют ссылки на другие поисковые системы, например или Mail.ru, Bing. В переводчике ситуация аналогична. Это достаточно удобно, ведь если перевод кажется неправильным, то сразу можно посмотреть на результат перевода текста Google-переводчиком. Это не занимает много времени и не нужно вводить текст заново. Чтобы узнать перевод слова, после его ввода справа будет отображаться вся информация о нем: перевод, синонимы, произношение, часть речи.

Орфография

Проверка правописания присутствует в сервисе, все ошибочные слова будут выделены красной линией. Переводчик предложит правильный вариант, ведь все ошибки влияют на качество конечного текста.

Виджеты и элементы Яндекса

Если стартовой страницей назначен Яндекс, то переводчик имеет свой виджет, который можно добавить на главную страницу. Чтобы перевести веб-страницу или отдельное слово прямо на этой странице, следует воспользоваться панелью Яндекс-элементов.

Настройка под себя

Яндекс.Переводчик (с английского на русский) включает в себя много разных функций: словарь, определение языка, проверка орфографии, подсказки и синхронный перевод. Любую из функций можно легко отключить и включить в настройках.

После закрытия Гуглом своих API для перевода проблема поиска онлайн-сервис для машинного перевода стала особенно актуальной.
В Интернете много сервисов перевода с громкими именами: Промт, Прагма и пр. Нет никакой проблемы в PHP смоделировать обращения к страницам сервисов и получить результаты перевода. Но есть проблема: почти все сервисы в ответ на простой GET или POST запрос отдают не результат перевода, а целиком страницу во всей красе, начиная с DTD. Как говорят у нас на Украине, “дурных нэма”.
После анализа было выяснено, что есть только два сервиса, которые отдают в ответ на запрос только результат перевода: Яндекс и Bing от Microsoft.

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

Яндекс проще в использовании, прекрасно переводит с русского и на русский, но тут же и недостаток: Яндекс переводит только с русского или только на русский. Перевести Яндексом с украинского на английский в одну операцию невозможно.

Bing этим не страдает, но зато:
- переводы, в которых участвует русский или украинский, страдают сильным “акцентом” и обязательно требуют правки
- использование Bing в режиме free имеет некоторые ограничения
- для использования Bing требуется некий идентификатор веб-приложения - appID, само по себе получение которого не связано с юридическими трудностями - это фактически просто регистрация, но которая представляет собой увлекательный и длинный квест.

Итак, какие задачи должна решать библиотека/класс для перевода?

1. Получение языков, с которых и на которые можно переводить, и их допустимых комбинаций
2. Собственно сам перевод текста

Сразу ремарка. Из соображений здравого смысла ясно, что в один заход перевести “Войну и мир” не получится. Приземление на технический уровень дает более четкое ограничение: переводчик Янекса использует GET-запросы, соотв. - очень грубо - примерно 2000 символов за один раз, не более. Это совсем немного, примерно 2 небольших абзаца текста, даже небольшая публикация на сайте выйдет за эти рамки.
Отсюда следующая задача:

3. Перевод больших фрагментов текста.

Ну и представим задачу: мультиязычный сайт. Гонять каждый раз переводчик за переводом элементов интерфейса и прочих текстов на сайте - это, мягко говоря, неразумно. Соответственно задача:

4. Кеширование.

Кеширование нужно еще для одной цели: переводчик от Яндекса хорош, но не идеален, особенно с учетом богатства русского языка. Зачастую хотелось бы поправить результат перевода, а для этого нужно его где-то хранить.

Итак, Яндекс.Переводчик
Исходники и задокументированы на русском языке.

1) Языки перевода.
Класс Yandex_Translate содержит три метода с говорящими названиями:
yandexGetLangsPairs() - получение доступных пар языков FROM->TO
yandexGet_FROM_Langs()
yandexGet_TO_Langs()

Пример (этот пример - полный, ниже подключение файлов, создание экземпляра класса, элементы форматирования вывода и пр. буду опущены.)

include_once "Yandex_Translate.php";
$pairs = $translator->yandexGetLangsPairs();
print_r($pairs);

Получим вот такие комбинации (они, кстати, меняются время от времени):
=> en-ru
=> ru-en
=> ru-uk
=> uk-ru
=> pl-ru
=> ru-pl
=> tr-ru
=> ru-tr
=> de-ru
=> ru-de
=> fr-ru
=> ru-fr
=> it-ru
=> es-ru
=> ru-es

Обратите внимание, что во всех парах есть язык ru, ну об этом выше уже говорилось.

Два других метода дают языки по отдельности и могут быть использованы, например, для формирования селектов или других элементов выбора.

2. Перевод
Один метод, три аргумента: с какого, на какой и собственно переводимый текст.
Обратите внимание также на важное свойство eolSymbol - окончание строки. Если его установить неверно, не будет форматирования выходного текста (см. комментарии в исходниках).

Пример:
$text = file_get_contents("text.txt");
$translatedText = $translator->yandexTranslate("ru", "uk", $text);
echo $translatedText;

Начало файла text.txt:
Марио Пьюзо Крестный отец
Посвящается Энтони Клири
КНИГА ПЕРВАЯ
За всяким большим состоянием кроется преступление.

Результат выполнения скрипта:
Маріо п’юзо Хрещений батько
Присвячується Ентоні Клірі
ПЕРША КНИГА
За кожним великим станом криється злочин.

Сразу обратим внимание - перевод хороший, но правка требуется.

3. Перевод больших текстов
Для перевода больших текстов служит абстрактный класс Big_Text_Translate
Принцип следующий.
Сначала текст разбивается на предложения, используя разделитель sentensesDelimiter - по умолчанию точка.
Правильнее конечно было бы использовать точку с пробелом, но в реальных, например, “каментах” пробел после точки запросто может “ацуцтвовать”. Поэтому так, проблем в реальной работе это не вызывает, но свойство можно переопределить.
Затем предложения собираются в текстовые фрагменты, размер которых не превышает заданного значения symbolLimit - по умолчанию 2000.
Текстовые фрагменты готовы для перевода, семантика и форматирование - сохранены. Формированием фрагментов занимается статический метод toBigPieces, на выходе - массив.
Метод fromBigPieces склеивает переведенные фрагменты обратно в цельный текст.
Пример

$bigText = file_get_contents("text_big.txt");
$textArray = Big_Text_Translate::toBigPieces($bigText);

$numberOfTextItems = count($textArray);

Foreach ($textArray as $key=>$textItem){

//Показываем прогресс перевода
echo "Переведен фрагмент ".$key." из ".$numberOfTextItems;
flush();

$translatedItem = $translator->yandexTranslate("ru", "uk", $textItem);
$translatedArray[$key] = $translatedItem;
}

$translatedBigText = Big_Text_Translate::fromBigPieces($translatedArray);

Echo $translatedBigText;
Выполнение примера пробуйте сами - все есть в репозитории.

Уважаемые хабражители! Если материал представляет интерес, то готовится его продолжение, включающее разделы:
- кеширование результатов перевода в несколько уровней
- работа с сервисом Bing
- полноценное демо: построение мультиязычного сайта.