Сегодняшний пост поможет вам справиться с некорректным определением языка при проверке орфографии. Помочь убрать разноцветные подчеркивания решил Владимир Проворов, который и поделился с нами этим постом и финальной версией скрипта. Для исторической справедливости необходимо принести благодарность неизвестному автору скрипта, и Алексею Мурзову, который адаптировал скрипт для новых версий Word. :-)
Одной из наболевших проблем офиса является несовпадение языка текста с фактическим. Появляются такие ошибки при копировании фрагментов текста из разных источников. При некорректно выставленном языке модуль проверки орфографии выделяет подобные слова.
В случае отдельного слова, достаточно просто поменять язык на нужный.
Если весь документ написан на одном языке, то тоже не составляет труда выделить весь текст и назначить нужный язык. Но что делать, если в большом русскоязычном документе встречается много англоязычных терминов? Выход один - писать скрипт.Прежде всего, добавим панель разработчика в Word. Выбираем кнопку Настройка ленту.
Отмечаем вкладку Разработчик.
Создадим новый макрос в шаблоне Normal.dotm.
Вставляем процедуру и задаём модулю осмысленное имя. Сам скрипт имеет длинную историю и кочует из рук в руки, понемногу дорабатываясь. Изначально он был опубликован в одном из выпусков журнала Мир ПК, ещё в прошлом тысячелетии. Позже был переработан Алексеем Мурзовым для корректной работы в новых версиях Word. Идея скрипта максимально проста. Если слово состоит из латинских букв, то мы считаем его английским. Если из русских – русским. Сам код скрипта будет ниже.
Теперь создадим кнопку для быстрого запуска макроса. Добавляем созданный нами макрос и нажимаем кнопку «Изменить», чтобы выбрать иконку и подпись для новой кнопки.
В результате в панели быстрого запуска появилась кнопка, запускающая макрос для исправления языка. Проверяем работу новой кнопки. Наш а тестовая фраза теперь полностью на русском языке и проходит проверку орфографии. В приложенном файле вы найдете текст скрипта
Спасибо за скрипт и детальные инструкции по установке. К сожалению у меня (боюсь, что не только) основная проблема с определением русского/украинского языков, а они оба состоят из "русских" (точнее кириллических) букв. Есть ли какая-то возможность корректного определения языка в таком случае?
Согласен, т.к. очень часто стыкаюсь с этой проблемой.
Было бы очень кстати
По поводу украинского - вопрос поняли, действительно сложно. Если что-нибудь придумаем - отпишусь
Занятный "костыль"...А почему бы разработчикам не реализовать это внути самого Word?
Виталий,
с украинским языком ситуация сложнее, и автоматически рассортировать слова в тексте, содержащим русские и украинские термины, скорее всего не получится. Если задача стоит в том, что надо на одном компьютере редактировать русско-английские и украино-английские документы, то можно доделать к скрипту запрос у пользователя языка для кириллических букв в начале работы скрипта. Если же задача разбирать русско-украинские тексты, то, боюсь, автоматически эту задачу не решить.
Алексей,
Строго говоря, потому что это именно костыль, и русскоязычным пользователям повезло, что наш язык сравнительно легко можно отличить от английского. Для других пар языков (английский-немецкий или русский-украинский) общего решения не получится.
а как обстоят дела с 3 языками? русский, английский, венгерский? Как то можно добавить?
dukedizel, к сожалению, задача различения английского и венгерского встречается с той же проблемой, что и различение русского и украинского. Если есть предложения как можно надёжно отличить слово на одном языке от другого при общих алфавитах, это очень поможет.
Подскажите, а сие полезное решение может портироваться на Microsoft Office 2003
В случае с определением русского/украинского языков, видимо, целесообразно писать два скрипта для текстов с преобладанием того или иного языка.
Например, если в тексте большинство слов русских, то по умолчании считаем все слова русскими и ищем в тексте слова с уникальными украинскими буквами. Их будем считать украинскими.
Такой алгоритм не отделит 100% украинских слов от русских, но позволит свести проблемы с определением языка к минимуму.
Дмитрий Степанов, скрипт работает на Word 2003/2007/2010.
Спасибо за ответ. Действительно сложно различить русско-украинские тексты (особенно учитывая, что есть достаточно слов, которые пишутся одинаково и только из контекста понятен язык).
Можете подсказать эквивалент "вкладка Разработчик" в англ версии ворда?
Myron, Developer.