Как сделать из Sublime Text удобный переводчик или обзор полезного плагина YandexTranslate
11.12
3
20 671
Сегодня я хочу рассказать про плагин для 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), то возможно потребуется перезапуск редактора.
Приятного использования! Надеюсь вам, как и мне, будет полезен плагин.
P.S. Если вдруг среди читателей есть программисты, работающие с python - буду рад услышать замечания по коду.
Комментарии
Добавить комментарий
Комментировать могут только зарегистрированные пользователи