[ID CC2024] Проблемы с обработкой кириллицы в regex в EasyCatalog в Индизайне на Маке

  • Автор темы Автор темы big bear
  • Дата начала Дата начала

big bear

Топикстартер
15 лет на форуме
Сообщения
56
Реакции
14
Всем привет. Проблема такая. Неожиданно обнаружил, что в песледних версиях EasyCatalog/InDesign/Mac OS в разделе REGEXV2 перестали работать некоторые универсальные коды, когда дело касается кириллицы. Например, \l(любой символ lowercase), \u(любой символ uppercase), \w(любая буква или цифра), (?i)(не учитывать регистр), \U(сделать знак uppercase), \L(сделать знак lowercase), возможно что-то еще, что пока не обнаружено.

Примеры:
Код:
раньше работало «6 марта - 12 марта» => «REGEXV2:(\d{2})\s(\l{3,8})\s*-\s*(\d{2}\s)(\2)=$1^==$3$4;» => «6–12 марта», теперь для того же результата требуется «REGEXV2:(\d{2})\s([а-я]{3,8})\s*-\s*(\d{2}\s)(\2)=$1-$3$4;»

раньше по «REGEXV2:(?1)выгодно» находились все «Выгодно|ВЫГОДНО|выгодно|вЫГОДНО», сейчас только «выгодно»

раньше «REGEXV2:.+=\U$0;» превращало любую букву в заглавную, сейчас на кириллицу не действует.

На латинице все работает, как надо. А вот на кириллицу действует только прямое указание на символ и «.», как на любой символ, вообще. Такое впечатление, что он кириллицу не воспринимает, как буквенно-цифровой символ (А какой, интересно?).
Проблемы именно в EasyCatalog, в теле, так сказать самого InDesign, все в порядке. Сейчас EasyCatalog и InDesign версии 2024(19), Mac OS — 14.2.1. Когда началось точно сказать сложно, заметил я это не сразу, но чуть больше года назад работало, это точно. Есть старые конфиги (создавались еще для версий 2023), в которых прописаны коды, сейчас не работающие. На Винде по этим же конфигам все работает.
Screenshot-2024-02-29-at-23.52.01.jpg


Screenshot-2024-02-29-at-23.54.50.jpg
 
интересно, сколько установок этого плагина есть в россии...
там дальше в advanced есть настройки языка.
попробуйте язык в системе primary русским сделать.
хз, что еще может быть, в стилях посмотрите чтоб тоже русский был.
 
не знаю как это работает там, попробуйте выставить после "REGEXV2: " - "/" ("REGEXV2: /..") и до "»" - "/i" или "/gi"
 
не знаю как это работает там, попробуйте выставить после "REGEXV2: " - "/" ("REGEXV2: /..") и до "»" - "/i" или "/gi"
да не, это не JS )
REGEXV2: намекает что далее идет regexp, а через равно — что на что менять
 
  • Спасибо
Реакции: plumbum
значит имеет смысл "/i" или "/gi" до "="
Попробовал, не помогает. И перед «=», и перед «;»
Варианты от azz тоже не помогают. В advanced язык русский, в стилях тоже, но стили и влиять не могут, это все происходит в самой панели EasyCatalog, в свойствах Fields (это столбец), до любого применения стилей. Оно работает независимо от Индизайновского файла, даже при отсутствии открытых файлов. Вот только в системе еще не попробовал русский приоритетным, пока комп перезагружать не с руки. Вечером сделаю, наверное. Но, на Винде приоритетный язык тоже английский, так что на это мало надежды.
 
Если этот EasyCatalog использует XML файлы конфигурации имеет смысл поиграться с атрибутом xml:lang="ru"
Также можно сделать поиск по его файлам, строк "encoding", "encode", "encod", "locale", "local", "loc"
Если вы за это дело платите, имеет смысл написать, пусть расскажут как выставить русскую локаль или добавят это туда.
 
Кодировка всего хмл файла — Unicode-8, отдельно для каждого Fields кодировки нет. А для языка, наоборот, для каждого столба выставляется, и в проблемных указано, что язык русский. Но не помогает. Так что, видимо, придется писать вендору, да. Просто только вчера распознал проблему, решил сначала попробовать разобраться.
ПС. Выложил хмл, если есть желание посмотреть, поразбираться — вот.
 
Последнее редактирование:
ПС. Выложил хмл, если есть желание посмотреть, поразбираться
Ну вот сейчас например там <fielddefinitions><field name = "период" language = ""> - пустой. Вот с этим полем были проблемы в частности? И почти везде language пустой. <fielddefinitions><field name = "Концепт" language = "Russian"> тут есть.
 
Нет, проблемы с «field name = "периодБольшой"», и в нем «language = "Russian"». Это строка 156.
А почти везде пустой этот тег, потому что никогда ни на что не влиял. Ну, по крайней мере, я ни разу такого не заметил.
 
Последнее редактирование:
Ну если не добьетесь успеха последнее останется пройтись по регуляркам, заменить везде "\s" на "[a-zA-Zа-яА-Я]"
 
Сами по себе буквы, меньшая проблема, их обойти не так сложно. Главная засада — регистр. Нет выключения/включения чувствительности к регистру, и нет команд смены регистра. Это уже так просто не обойти. Ну, буду писать вендору, судя по всему. Сегодня уточнил, сказали все норм, возможность обращаться в поддержку есть.