re6 = new RegExp("(" + Vowels + Consonant + Consonant + ")(" + Consonant + Consonant + Vowels + ")","ig");
re7 = new RegExp("{" + hyp symbol + Consonant + Vowels + ")(" + Consonant + Vowels +")","ig");
if(app.selection[0].length != 0) {
ремонт окон в троицке москва. купить реактивы для домашней гольваники.
myContents = app.selection[0].contents myContents = myContents.replace(rel, hyp_replace) myContents = myContents.replace(re2, hyp_replace) myContents = myContents.replace(re3, hyp_replace) myContents = myContents.replace(re4, hyp_replace) myContents = myContents.replace(re5, hyp_replace) myContents = myContents.replace(re6, hyp_replace) myContents = myContents.replace(re7, hyp_replace) for (j in Except) {
exceptions = Except[j].toString().split(’~1)
myContents = a.replace(eval("/("■ + exeptions[0] + ")" + hyp_symbol +
"?(" + exeptions[l] + ")(" + RusN +")/i"), "$1" + "$2" + hyp_symbol + "$3")
)
app.selection[0].contents = myContents } else (
alert("No selection texts!"); exit () ; Скрипт использует такие предположения:
переносы всегда могут быть поставлены между двумя подряд идущими гласными буквами ("со~отечественник");
между двумя подряд идущими согласными, если вокруг них гласные ("со-отечествен~ник");
между сочетаниями "любой знак плюс гласная" и снова "любой знак плюс гласная"("сооте-чественник");
между двумя гласными, разделенными тремя или четырьмя любыми другими буквами ("соотечест-венник").
Все они заданы соответствующими конструкциями в переменных rel, …, ге7
(Vowels - гласные, Consonant - согласные).
Сначала оба алфавита разбиваются иа группы из согласных, гласных и особую группу, в которую поместим "йъь". После этого по очереди проводим замену в соответствии с опнсанными выше правилами. Ключи "ig" позволяют выполнять множественную замену без учета регистра. Скрипт работает достаточно быстро, причем качество расстановки переносов не хуже, чем у InDesign CS 2. Более того, его можно улучшить, если создать словарь исключений, в котором указать правильную расстановку переносов. Как это реализовать- зависит от вас: можно в самом скрипте перечислять исключения, а можно в виде отдельного файла словаря, при этом пополнять его смогут все, даже не знакомые со скриптингом, поскольку он будет представлять собой простой редактируемый текстовый файл. В данном примере реализован первый вариант- исключения в самом скрипте.
Возьмем, к примеру, слово "постсоветский". По нашим правилам скрипт сделает такие переносы: "пос~тсо~вет~ский" - первый перенос поставлен неверно. Чтобы исправить ситуацию, определяем фрагмент "пос~т" как исключение. В результате его обработки получаем правильный вариант: "пост~со~вет~ский".