DataLife Engine > Версия для печати > Как сделать из Sublime Text удобный переводчик или обзор полезного плагина YandexTranslate

Сегодня я хочу рассказать про плагин для Sublime Text 2 и 3, позволяющий легко переводить любой выделенный текст на любой, из доступных Яндексу, язык. Плагин делал для себя — поэтому он конечно же удобнее аналогов. Я, например, уже забыл когда пользовался инструментами перевода вне редактора.

Предыстория

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

Процесс перевода был примерно таким:

Скопировать нужный текст, предварительно найдя нужные куски среди переменных. Вставить в форму Google translate или Яндекс.переводчик (ну или в любой другой переводчик). Скопировать первую переведённую строку. Заменить первую оригинальную строку в редакторе Скопировать вторую переведённую строку Заменить вторую переведённую строку Скопировать N переведённую строку. Заменить N переведённую строку Сохранить переведённый файл.Согласитесь не очень радужная перспектива, если нужно перевести ~150-300 строк текста, разбросанных по файлу.Т.к. я в качестве редактора давно использую Sublime Text — первым делом решил поискать плагин для перевода выделенного текста. 1386845326_1386787799_01-6559454

Для Sublime Text 3 я нашёл только один, но он переводил на китайский, для второй версии редактора было ещё два плагина, но один не завёлся на третьей версии, а второй не подошел под мои требования (просто, удобно, быстро). В итоге было решено написать собственный плагин с преферансом и дамами, который просто переводил бы выделенный текст и заменял выделение на результат перевода.

Как известно у сервисов перевода есть собственные API, но лишь для Яндекса нашлась готовая библиотека на python. Вот эту библиотеку я и взял за основу будущего плагина.

Описывать подробно процесс написания кода на не известном для меня языке я лучше не буду, т.к. он больше напоминал тыкание слепого котёнка в разные углы. Пришлось много разбираться с англоязычной документацией API sublime text, гуглить, разбираться с API Яндекс.перевода (тогда доки были в другом, менее удобном виде, чем сейчас), гуглить, разбираться с элементарными детскими ошибками (python я вообще первый раз в жизни увидел) типа лишнего пробела после табуляции, гуглить, гуглить.Однако спустя полдня и полночи ковыряний у меня получилось перевести выделенный текст! Дальше процесс пошёл проще и на данный момент плагин полностью отвечает моим требованиям и я им с радостью пользуюсь. Так потратив пару дней на написание удобного инструмента я сэкономил себе много времени и нервов.

Возможности и особенности плагина YandexTranslate

Простота работы с плагином. Конечно же именно из-за простоты, скорости и удобства всё и затевалось.

Работа через уникальный API-ключ. У ключей есть ограничение на количество переводов, поэтому выгоднее иметь собственный ключ.
Перевод выделенного текста и замена выделения на результат перевода. Другими словами не нужно совершать лишних движений. Процесс перевода теперь состоит из трёх пунктов: 1) Выделить текст. 2) Нажать хоткей.2) Сохранить файл.

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

Поддержка горячих клавиш. По умолчанию используются следующие сочетания:
Ctrl+Alt+T — перевод выделенного теста на язык по умолчанию (по умолчанию русский).
Ctrl+Alt+Shift+T — перевод выделенного теста на любой, доступный Яндекс.переводчику язык. Будет показан диалог выбора языка. Вызов плагина через контекстное или главное меню. Соответствующие пункты появляются, если выделен какой-либо текст. 1386845472_1386787793_02-9289407

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

1386845510_1386787865_03-8404759

Настройка типа переводимого текста. По умолчанию плагин будет переводить любой выделенный текст как обычный текст, но можно задать тип HTML и тогда html-теги переводиться не будут.

Настройка плагина

Так как API Яндекс не работает без соответствующего API-ключа — ключ придётся получить, это совершенно бесплатно и очень просто, так что больше минуты времени не займёт.

Теперь открываем Sublime Text 2 или 3 и через Package Control ищем плагин YandexTranslate (страница плагина в официальном репозитории) и устанавливаем.

Открываем настройки плагина и вставляем полученный API-key, примерно так: 1386845620_1386787800_settings-6294660

{
    "key": "trnsl.1.1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "
}

Сохраняем настройки, выделяем любой текст и жмём Ctrl+Alt+T.

Радуемся удобству перевода текста Если вы хотите сменить язык перевода по умолчанию (output_language), то возможно потребуется перезапуск редактора.Приятного использования! Надеюсь вам, как и мне, будет полезен плагин.

Автор: ПафНутиЙ