{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Dmitry Podgorniy, posts tagged: инструментарий",
    "home_page_url": "https:\/\/blog.dmitrypodgorniy.com\/tags\/instrumentarij\/",
    "feed_url": "https:\/\/blog.dmitrypodgorniy.com\/tags\/instrumentarij\/json\/",
    "icon": "https:\/\/blog.dmitrypodgorniy.com\/user\/userpic@2x.png",
    "author": {
        "name": "Дмитрий Подгорный",
        "url": "https:\/\/blog.dmitrypodgorniy.com\/",
        "avatar": "https:\/\/blog.dmitrypodgorniy.com\/user\/userpic@2x.png"
    },
    "items": [
        {
            "id": "139",
            "url": "https:\/\/blog.dmitrypodgorniy.com\/all\/pravilny-alfred-workflow-dlya-perevoda-ru-en-i-en-ru\/",
            "title": "Правильный alfred workflow для перевода ru-en и en-ru",
            "content_html": "<p>Результат: <a href=\"https:\/\/github.com\/podgorniy\/alfred-translate\">https:\/\/github.com\/podgorniy\/alfred-translate<\/a><\/p>\n<p>Заметил, что пользуюсь переводом, чтобы придумать корректное название переменной, или понять английское слово. Процесс выглядит так: открываю браузер, открываю страницу перевода, вбиваю текст, выделяю перевод, копирую, вставляю. Многовато телодвижений, несмотря на то, что все действия отлажены. К тому же гугловый переводчик, которым периодически пользуюсь, не умеет автоматически понимать язык с которого переводить, а это означает еще несколько движений, чтобы настроить направление перевода (чтобы в следующий раз снова менять настройки). Яндекс перевод в этом плане умнее.<\/p>\n<p>При попытке упростить этот процесс, нашлись только варианты workflow, в которых авторы предлагают вводить направление перевода вручную. Получается многословно, да и неудобно, например как <a href=\"https:\/\/github.com\/thomashempel\/AlfredGoogleTranslateWorkflow\">этом случае<\/a>. В идеале workflow должен сам понимать с какого языка переводить. С немецким, французским, английским этого достичь не так просто, а вот для пары русский-английский – пара пустяков.<\/p>\n<p>Идеальный вид:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog.dmitrypodgorniy.com\/pictures\/alfred-translate-in-action.png.png\" width=\"638\" height=\"319\" alt=\"\" \/>\n<\/div>\n<p>В качестве сервиса перевода используется <a href=\"http:\/\/api.yandex.ru\/dictionary\/doc\/dg\/reference\/lookup.xml\">API Яндекс словарей<\/a>. Альфред писать расширения на ряде языков, где ноды, к сожалению нет. Наверняка ноду можно к нему прикрутить, но это бы усложнило жизнь потенциальным пользователям расширения (не я один могу страдать от реализаций существующих workflow). Среди языков – bash, applescript, php, python, perl, ruby. Выбор пал на python, заодно подучил его.<\/p>\n<p>Из интересных решений – API словаря требует явно указать направление перевода (en-ru, ru-en), поэтому нужно отличать на уровне workflow язык ввода: латинские буквы – значит en, иначе – ru.<\/p>\n<p><b>UPD<\/b><br \/>\nЗабыл описать как им пользоваться. Можно переводить текст из самого окошка альфреда, ключевое слово – “t”. После “t” пишешь слово, что нужно перевести, и получаешь список вариантов. Плюс можно используя глобальный шоткат ctrl+shift+t перевести любое выделенное слово (без необходимости копировать). При выборе одного из вариантов перевода по enter, текст перевода копируется в буфер обмена.<\/p>\n",
            "date_published": "2014-01-09T08:06:31+02:00",
            "date_modified": "2014-01-09T18:42:50+02:00",
            "image": "https:\/\/blog.dmitrypodgorniy.com\/pictures\/alfred-translate-in-action.png.png",
            "_date_published_rfc2822": "Thu, 09 Jan 2014 08:06:31 +0200",
            "_rss_guid_is_permalink": "true",
            "_rss_guid": "https:\/\/blog.dmitrypodgorniy.com\/all\/pravilny-alfred-workflow-dlya-perevoda-ru-en-i-en-ru\/",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": [
                    "https:\/\/blog.dmitrypodgorniy.com\/pictures\/alfred-translate-in-action.png.png"
                ]
            }
        }
    ],
    "_e2_version": 3254,
    "_e2_ua_string": "E2 (v3254; Aegea)"
}