|
Разработка spell checker плагина для MS Word на C#
|
|||
---|---|---|---|
#18+
Всем доброго дня! Необходимо прикрутить к Word-у проверку орфографии казахского языка. Желательно, такую же, какая есть для английского и русского языков по умолчанию - то есть текст проверяется автоматически, без лишних телодвижений типа "нажать на кнопку и проверить", при наборе текста или вставке пробела "внутри" другого слова оно перепроверяется. Также, если в документе есть слова на разных языках, для каждого языка идет проверка. То есть необходимо такое же поведение, как для поддерживаемых по умолчанию языков. Самым разумным из нагугленного показалось создание своего словаря или заполнение существующего CUSTOM.DIC - и программировать ничего не надо, просто заполняешь словарь и все. Но, если я правильно все понял, при создании своего словаря надо указывать язык, а казахского там нет в списке выбора. Может быть, возможно обойти эту проблему? Это было бы самым крутым решением, избавляющим от кучи проблем и вопросов, которые возникают при написании своего Spell Сhecker-а. Сейчас я отлавливаю нажатие клавиш низкоуровневыми Hook-ами. Вот такие возникли вопросы: 1) При создании надстройки я указываю Target Framework = .NET 3.5. Обязательно ли регистрировать надстройку именно тем RegAsm.exe, который использовался при сборке проекта (4.0) или же нужно использовать RegAsm такой же версии, какой Target Framework? 2) Здесь я прочитал, что можно поставить самый древний Intertop Assemblies, тогда будет работать на всех поздних версиях. Так ли это? 3) Где можно почитать о том, как регистрировать надстройку установщиком (чтобы он сам делал грязную работу в реестре типа создание раздела с полями LoadBehaviour,Description,FriendlyName и вызывал RegAsm)? 4) О 32 и 64-битных ОС и версиях офисных программ. Если у клиента 64-битная ОС, надо ставить Target CPU 64-bit? Или надо смотреть на разрядность самой офисной программы? Еще вопрос, насколько я знаю, 64 битный процесс, не может вызывать 32- битные длл-ки и наоборот. А эти хуки и еще парочка необходимых мне unmanaged методов используют вызовы из системных kernel32.dll, user32.dll. Что делать в такой ситуации? У меня ОС 32-битная, я эмпирически не могу проверить, что будет при запуске, но могу ли ждать фейла моей надстройки на 64-биной ОС? 5) На моей машине худо-бедно какое-то подобие проверки получилось поднять. Но иногда пропадает подчеркивание неправильных английских и русских слов. Как будто моя надстройка сбивает родную проверку, хотя я нигде не убираю красное подчеркивание программно .Еще бывает, что пишешь на казахском, потом переключаешь на русский или на инглиш, а свойство LaguageID у текущего слова остается WdKazakh. такое ощущение, что именно из-за глюков с неправильным определением языка происходит глюк встроенной проверки. Замечание - по умолчанию казахский язык не подчеркивается . Возможно, где-то там происходит неявное присвоение всему тексту свойства "язык=казахский" и поэтому русские и англ. слова перестают подчеркиваться, но в коде я такого не делаю. Ну и напоследок оставлю ссылку на свой вопрос на stackoverflow - Может кто-то ответит тут, а там черкнет пару строк и заработает репы, я туда баунти поставлю как только будет eligible ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2014, 09:19 |
|
Разработка spell checker плагина для MS Word на C#
|
|||
---|---|---|---|
#18+
Блин, 5-ый пункт не в тему получился. Этот вопрос снимается, потому что даже не вопрос, а плач в жилетку, просто описание проблемы, которую явно не решить без разбора кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2014, 10:03 |
|
|
start [/forum/topic.php?fid=61&gotonew=1&tid=2174199]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 164ms |
0 / 0 |