В силу разных обстоятельств не всегда получается орфографически правильно написать слово. В спешке не попал по нужной клавише, отвлекли, банально подзабыл правильное написание и т.д. Раньше для проверки орфографии я пользовался средствами текстового редактора или просто копировал в google, а он подсказывал правильное написание (кто этим не грешил :)), но это все лишние телодвижения.
Хочется выделить слово, причем на любом из используемых языков (украинский, английский, русский), нажать аккорд клавиш и получить правильную форму в буфере обмена, для вставки в текст.
Можно выделить два варианта проверки орфографии:
Перечень локальных системы проверки орфографии (повествование ведется про Linux), в порядке исторического появления:
Среди онлайн систем проверки орфографии с открытым API я остановился на API Яндекс.Спеллер. Google, почему-то, не предоставляет в отрытом доступе свой 'Did you mean' (плохо искал?).
Т.к. у меня уже установлен в системе hunspell, с требуемым набором словарей, решил начать с него. Случайно взятые слова и скормленные hunspell, через консоль, особо не впечатлили. На довольно таки обыденные слова предлагались слова с тем же корнем, но другим значением либо вообще другие слова.
Пример, ввожу жели, на выходе хочу получить жили:
echo 'жели' | hunspell -d ru_RU Hunspell 1.3.2 & жели 5 0: лежи, жиле, ели, же ли, желали
Тоже скормленное Яндекс.Спеллеру выдало приемлемый результат.
Пример использования для слова на русском языке и когда в системе активна русская раскладка, т.к. текущая раскладка передается в Яндекс.Спеллер для определения языка проверки. Выделяем слово и нажимаем назначенный аккорд (в XFCE управление шорткатами находиться в Settings → Keyboard → Application Shortcuts).
Если слово написано корректно:
Если слово написано некорректно то высвечивается список возможных вариантов и в буфер помещается первый вариант
Касательно подноготной. Тестировалось на Arch Linux + XFCE 4.10 + Python 3.3. Для определения текущего языка в системе использую такую консольную команду
setxkbmap -print | grep xkb_symbols | awk -F'+' '{print $2}'
Насколько мне известно PyGTK для Python 3 еще нет, поэтому работать с буфером обмена будем через консольную утилиту xsel. Для общения с API Яндекс.Спеллер используется Requests.
Иконки взяты с набора function.
Сорцы можно посмотреть на github'e.
Дополнительное чтиво