Сегодня я хочу рассказать про плагин для Sublime Text 2 и 3, позволяющий легко переводить любой выделенный текст на любой, из доступных Яндексу, язык. Плагин делал для себя — поэтому он конечно же удобнее аналогов. Я, например, уже забыл когда пользовался инструментами перевода вне редактора.
Предыстория
Всё началось с того, что мне нужно было перевести много небольших кусочков текста в определённом количестве файлов, естественно текст элементарно выделялся с помощью поиска через регулярку, но вот обратная вставка переведенного текста была совсем не удобна.
Процесс перевода был примерно таким:
Скопировать нужный текст, предварительно найдя нужные куски среди переменных. Вставить в форму Google translate или Яндекс.переводчик (ну или в любой другой переводчик). Скопировать первую переведённую строку. Заменить первую оригинальную строку в редакторе Скопировать вторую переведённую строку Заменить вторую переведённую строку Скопировать N переведённую строку. Заменить N переведённую строку Сохранить переведённый файл.Согласитесь не очень радужная перспектива, если нужно перевести ~150-300 строк текста, разбросанных по файлу.Т.к. я в качестве редактора давно использую Sublime Text — первым делом решил поискать плагин для перевода выделенного текста.
Для Sublime Text 3 я нашёл только один, но он переводил на китайский, для второй версии редактора было ещё два плагина, но один не завёлся на третьей версии, а второй не подошел под мои требования (просто, удобно, быстро). В итоге было решено написать собственный плагин с преферансом и дамами, который просто переводил бы выделенный текст и заменял выделение на результат перевода.
Как известно у сервисов перевода есть собственные API, но лишь для Яндекса нашлась готовая библиотека на python. Вот эту библиотеку я и взял за основу будущего плагина.
Описывать подробно процесс написания кода на не известном для меня языке я лучше не буду, т.к. он больше напоминал тыкание слепого котёнка в разные углы. Пришлось много разбираться с англоязычной документацией API sublime text, гуглить, разбираться с API Яндекс.перевода (тогда доки были в другом, менее удобном виде, чем сейчас), гуглить, разбираться с элементарными детскими ошибками (python я вообще первый раз в жизни увидел) типа лишнего пробела после табуляции, гуглить, гуглить.Однако спустя полдня и полночи ковыряний у меня получилось перевести выделенный текст! Дальше процесс пошёл проще и на данный момент плагин полностью отвечает моим требованиям и я им с радостью пользуюсь. Так потратив пару дней на написание удобного инструмента я сэкономил себе много времени и нервов.
Возможности и особенности плагина YandexTranslate
Простота работы с плагином. Конечно же именно из-за простоты, скорости и удобства всё и затевалось.
Работа через уникальный API-ключ. У ключей есть ограничение на количество переводов, поэтому выгоднее иметь собственный ключ.
Перевод выделенного текста и замена выделения на результат перевода. Другими словами не нужно совершать лишних движений. Процесс перевода теперь состоит из трёх пунктов: 1) Выделить текст. 2) Нажать хоткей.2) Сохранить файл.
Поддержка мультивыделения. Каждый выделенный кусочек текста будет заменён на результат перевода соответствующего кусочка текста.
Поддержка горячих клавиш. По умолчанию используются следующие сочетания:
Ctrl+Alt+T — перевод выделенного теста на язык по умолчанию (по умолчанию русский).
Ctrl+Alt+Shift+T — перевод выделенного теста на любой, доступный Яндекс.переводчику язык. Будет показан диалог выбора языка. Вызов плагина через контекстное или главное меню. Соответствующие пункты появляются, если выделен какой-либо текст.
Настройка языка для перевода по умолчанию. По умолчанию плагин переводит любой текст на русский язык, но если вы попытаетесь перевести текст, язык которого совпадает с языком перевода по умолчанию — будет предложено перевести этот текст на любой из доступных Яндексу языков.
Настройка типа переводимого текста. По умолчанию плагин будет переводить любой выделенный текст как обычный текст, но можно задать тип HTML и тогда html-теги переводиться не будут.
Настройка плагина
Так как API Яндекс не работает без соответствующего API-ключа — ключ придётся получить, это совершенно бесплатно и очень просто, так что больше минуты времени не займёт.
Теперь открываем Sublime Text 2 или 3 и через Package Control ищем плагин YandexTranslate (страница плагина в официальном репозитории) и устанавливаем.
Открываем настройки плагина и вставляем полученный API-key, примерно так:
{
"key": "trnsl.1.1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "
}
Сохраняем настройки, выделяем любой текст и жмём Ctrl+Alt+T.
Радуемся удобству перевода текста Если вы хотите сменить язык перевода по умолчанию (output_language), то возможно потребуется перезапуск редактора.Приятного использования! Надеюсь вам, как и мне, будет полезен плагин.
Автор: ПафНутиЙ