left menu mob button

Новое на канале:

Самая большая трата, какую только можно сделать, — это трата времени. (Теофраст)


Комментарии

Christian Geiselmann
(17.07.2019 16:18):

Extremely useful! A real time-saver for projects with many pages such as book!

(Выравнивание фрейма через контекстное меню)

Christian Geiselmann
(17.07.2019 16:11):

This tiny script comes in very handy for large projects such as books, especially when you have to share documents with colleagues. Works flawlessly for me. (Win 7, Indesign CC 2018). Thank you!

(Объём связанных файлов на диске)

Christian Geiselmann
(17.07.2019 15:43):

Thank you for the bugfix. This works much better now, with a very nice report about changes made displayed at the end. -- Here is however a second issue: I notice that in my current project not all Paragraph Styles are included in the operation. It seems, a number of Paragraph Styles are simply ignored. -- Background: I am searching for "Englisch UK", and replacing it with various other languages such as Spanish, German 2006 reform, Greek etc. -- My current project has about 100-150 Paragraph Styles (I did not count them). They are organised in two levels of folders. -- I tried to find a pattern, and it seems, especially those Paragraph Styles are affected that are inside a second-levels folder hierarchy (Paragraph Styles can be grouped into folders and subfoldrs). When I disintegrate my folder structure and use only first level folders the script seems to work well. -- So, question: would it be possible to make the scrip work also with two-level folder structures?

(Изменить язык в стилях и по тексту)

только нужной информации

(серия статей):

Локализованное меню: приключения продолжаются

Проблема получения доступа к скрипту из контекстного меню разных локализаций была подробно рассмотрена в статье «Доступ к скрипту из локализованного меню» и конкретизирована годом позже. Предлагаемые в этих материалах методы решения, мягко говоря, далеки от совершенства: в них предлагается вручную искать индекс нужного меню и указывать его в скрипте. Понятно, что при таком подходе, в случае переноса скрипта на другой компьютер, на котором установлена другая версия программы, с другой локализацией и набором обновлений, пользователю каждый раз нужно будет заново выполнять поиск индекса и исправлять скрипт.

На днях тема вновь была затронута на форуме. В одном из обсуждений Виталий Батушев, автор скриптов, среди которых известный многим sZam, поделился своим решением:

Локализация меню-2

Перебор объектов — cпособ, конечно, не самый скоростной, а, по словам, Виталия, «к сожалению, весьма медленный». Тем не менее, он позволяет одним махом решить имеющуюся проблему сразу для всех версий и локализаций InDesign.

Ниже приведен один из примеров того, как можно осуществить поиск индекса нужного меню, как контекстного, так и главного, независимо от версии и локализации. Следует иметь ввиду, что под тем или иным индексом может «скрываться» совсем не то, что мы можем преполагать. Например, нужный в данном случае объект из главного меню («Таблица») будет содержать строку: «$ID/Table,$ID/kTablePanelTitle,$ID/kPreflightOD_Table,$ID/XML_TableName». А при попытке получить контекстное меню «$ID/RtMouseTable» помехой может выступить, например, «$ID/RtMouseTableStrokeWidget». Код ниже составлен с учётом этих особенностей.

var menuName = "Новый пункт меню таблиц";
var myMenuItem = app.scriptMenuActions.add(menuName);
myMenuItem.addEventListener('onInvoke', function(){main();});
function getCurMenu(m, mn){ //Нужный нам объект находится в коллекции объектов m и называется mn
	var mi = 0;
	var s = app.findKeyStrings(m[mi].name).toString();
	while (!(s.match(mn))){
		mi++;
		s = app.findKeyStrings(m[mi].name).toString();
		}
	return mi; //Возвращаем индекс найденного меню
	}
var mnu = app.menus[0].submenus[getCurMenu(app.menus[0].submenus, "kTablePanelTitle")]; //Главное меню
var rMouseMnu = app.menus[getCurMenu(app.menus, "RtMouseTable$")]; //Контекстное меню
mnu.menuItems.add(myMenuItem);
rMouseMnu.menuSeparators.add();
rMouseMnu.menuItems.add(myMenuItem);

При таком алгоритме, для встраивания скрипта в меню достаточно один раз подобрать регулярное выражение для строки s.match(mn), где s — полное имя текущего пункта меню (как в примерах выше), mn — строка, составленная так, чтобы она могла содержаться в имени только нужного меню.

Скрипты на сайте, которые встраиваются в различные меню, обновлены. Если вы скачали их ранее, и попытка встраивания в меню у вас успехом не увенчалась, скачайте новые версии, попробуйте ещё раз и, по возможности, сообщите в комментариях о результатах.


Скрипты, доступные на сайте, которые встраиваются в различные меню:

Комментариев нет.

Оставить комментарий:

Имя*:
E-mail*:
Текст комментария*:
Код безопасности*: