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

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

11.12
2
11 549
Как сделать из Sublime Text удобный переводчик или обзор полезного плагина YandexTranslate

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

Предыстория


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

Процесс перевода был примерно таким:
  1. Скопировать нужный текст, предварительно найдя нужные куски среди переменных.
  2. Вставить в форму Google translate или Яндекс.переводчик (ну или в любой другой переводчик).
  3. Скопировать первую переведённую строку.
  4. Заменить первую оригинальную строку в редакторе
  5. Скопировать вторую переведённую строку
  6. Заменить вторую переведённую строку
  7. Скопировать N переведённую строку.
  8. Заменить N переведённую строку
  9. Сохранить переведённый файл.

Согласитесь не очень радужная перспектива, если нужно перевести ~150-300 строк текста, разбросанных по файлу.
Т.к. я в качестве редактора давно использую Sublime Text - первым делом решил поискать плагин для перевода выделенного текста.

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


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

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

Однако спустя полдня и полночи ковыряний у меня получилось перевести выделенный текст! Дальше процесс пошёл проще и на данный момент плагин полностью отвечает моим требованиям и я им с радостью пользуюсь. Так потратив пару дней на написание удобного инструмента я сэкономил себе много времени и нервов.

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


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

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


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

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


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


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


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

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

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


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

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

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

Приятного использования! Надеюсь вам, как и мне, будет полезен плагин.

P.S. Если вдруг среди читателей есть программисты, работающие с python - буду рад услышать замечания по коду.

Похожие материалы

Комментарии

matrix_ua
matrix_ua 10 февраля 2015 01:53
Статья просто находка! Спасибо вам Павел winked через гугл замучился копипастить). Уменя вопрос: как сменить сочетание клавиш?
ПафНутиЙ
ПафНутиЙ 10 февраля 2015 22:23
http://joxi.ru/bmovQGKSXKzRry
1 - смотрим какие клавиши используются.
2 - переназначаем их.

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.