Автор Тема: Проверка орфографии в CKEditor  (Прочитано 7854 раз)

Марахтанов Алексей

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 205
    • marahtanov.ru
Проверка орфографии в CKEditor
« : 13 Сентябрь 2013, 03:18:42 »
При настройке визуального редактора CKEditor (http://ckeditor.com/) возникла необходимость настроить проверку орфографии (поиск ошибок) в русскоязычных текстах.
В CKEditor есть встроенный плагин scayt для проверки текстов, но в нем есть проблема - он не поддерживает русский язык, проверят ошибки только в англоязычных текстах.

В поисках решения было найдено несколько вариантов использования других плагинов, для замены стандартного. Например, jQuery Spellchecker (http://jquery-spellchecker.badsyntax.co/ckeditor.html). Он тоже по умолчанию работает с английским, но к нему можно подключить русскоязычную проверку. Например, русскоязычный спеллер от Яндекса.
Вот здесь можно найти подробную инструкцию по подключению: http://api.yandex.ru/speller/doc/dg/tasks/how-to-spellcheck-ckeditor4.xml
Данный вариант (В CKEditor подключаем плагин jQuery Spellchecker, в плагин подключаем спеллер от Яндекса) заработал, но не очень мне понравился. Во-первых, проверка идет не на лету, а по нажатию на кнопку. Во-вторых, в работе иногда данная проверка подвисала, особенно на больших текстах. Ведь принцип работы его заключается в том, чтобы отправить данные через ajax в удаленный скрипт, там проверить их, и затем вернуть результат.

В поисках альтернативного плагина был найден следующий изящный вариант, который устроил меня на 100% и оказался значительно проще первого. Нужно просто активировать стандартную проверку орфографии, которую осуществляет браузер в текстовых полях! И делается это добавлением трех строчек в конфигурационный код редактора:

   config.scayt_autoStartup = false;
   config.disableNativeSpellChecker = false;
   config.removePlugins = 'scayt,contextmenu';

Эти строки нужно добавить в файл "config.js", который лежит в корне папки редактора.
Комментарии к строчкам:
config.scayt_autoStartup = false; // отключает автопроверку орфографии плагином scayt
config.disableNativeSpellChecker = false; // отключает запрет на стандартную проверку орфографии браузером
config.removePlugins = 'scayt,contextmenu'; // отключает плагин scayt и запрещает заменять контекстное меню.

Единственным минусом подобного решения (на мой взгляд) является необходимость отключить контекстное меню CKEditora (современные браузеры в контекстном меню показывают варианты замены для слов с ошибкой). В остальном - сплошные плюсы: быстро и просто!



« Последнее редактирование: 13 Сентябрь 2013, 03:20:04 от Марахтанов Алексей »