|
Для облегчения процесса установки и обмена плагинами и драйверами в программе экранного доступа NVDA версии 2012.2 реализована новая функция — «дополнения» (Add-ons). Теперь, вместо того, чтобы вручную копировать файлы расширений в системные директории Windows, достаточно запустить процесс установки специального пакета в менеджере дополнений (Add-ons Manager), и NVDA сделает всё остальное самостоятельно. В данном материале будут описаны те правила, следуя которым, практически любой желающий сможет создать дополнение для его автоматической установки через встроенный менеджер NVDA. Обращаем внимание, что статья не содержит информацию по разработки самих плагинов или драйверов, здесь лишь будет описан процесс создания дополнения из уже готовых расширений. В конце приводится ссылка на загрузку дополнения, разобрав которое, любой желающий сможет на реальном примере увидеть реализацию описанного в данной статье. В сущности, дополнение NVDA — это стандартный ZIP-архив, но с расширением «.nvda-addon». Его создание состоит из нескольких этапов:
Этапы 3 и 4 являются не обязательными и могут быть пропущены. Manifest-файлКаждый пакет дополнения должен содержать manifest-файл, который должен называться «manifest.ini». В нём указываются базовые сведенья о дополнении и его авторе. Он должен иметь кодировку UTF-8, причём обязательно с BOM, и содержать в себе пары из названия поля и через знак равно его значение, записанные на отдельных строках. Не смотря на расширение .ini, название секции в нём не указывается. Доступны следующие поля, одни из которых являются обязательными, а другие могут быть пропущены:
То есть первые четыре поля являются обязательными, а два последних могут быть отброшены, однако рекомендуется всё-таки заполнять manifest-файл полностью. Добавление плагинов и драйверовНа этом этапе следует добавить как раз те файлы, ради автоматической установки которых всё и затевалось, а именно плагины или драйверы для NVDA. В версии 2012.2 существует четыре типа расширений NVDA, которые могут быть запакованы в дополнение. Файлы каждого типа следует помещать в пакет в соответствующей директории:
При установки дополнения все его файлы будут скопированы в директорию «addons\имя_дополнения» в каталоге пользовательских настроек программы NVDA. Добавочный код установки/удаленияДанный этап является не обязательным и предназначен лишь для тех случаев, когда разработчику дополнения требуется встроить в него некоторую добавочную логику, например, проверку лицензии или нестандартные процедуры перемещения файлов. Для этого требуется в формируемый пакет поместить файл «installTasks.py», в котором и будут находиться функции, отрабатывающие при установке и удалении дополнения. В данном файле следует избегать загрузки любых модулей, которые не являются абсолютно необходимыми, особенно Python C расширений и библиотек из самого дополнения, так как в конечном итоге это может привести к вылету с ошибкой. Если это всё же произойдёт, то при следующей загрузке NVDA директория будет переименована и удалена. Кроме того, в идеале, результат функций installTasks.py не должен зависеть от наличия или отсутствия других сторонних плагинов или драйверов, так как выполнение этих условий не гарантировано. За добавочный код при установки отвечает функция NVDA осуществляет поиск и попытку выполнения функции NVDA осуществляет поиск и попытку выполнения функции ЛокализацияДанный этап также не обязателен и предназначен для тех случаев, когда разработчик желает реализовать в своём дополнении поддержку нескольких языков. Файлы локализации, к которым могут относиться сведенья о дополнении и используемые плагином сообщения, должны располагаться в отдельной директории с названием «locale», а в ней должны быть созданы поддиректории с названиями в виде двухбуквенного кода языка, например, en для английского, ru для русского, uk для украинского и так далее. В каждой из языковых поддиректорий может находиться файл manifest.ini с переведёнными полями summary и description (остальные игнорируются и их данные в любом случае берутся из основного manifest.ini), а также ещё одна вложенная папка с названием «LC_MESSAGES», где может находиться gettext-файл «nvda.mo» с переводом сообщений. Чтобы использовать возможность gettext-локализации, в начале плагинов следует вызвать Для получения более подробной информации о принципах локализации, используемых в NVDA, имеет смысл обратиться к соответствующей статье NVDA wiki — «NVDA Translation and Localization». УпаковкаКак уже было сказано, пакет дополнения NVDA представляет собой стандартный ZIP-архив, просто с изменённым расширением файла. Таким образом, для финальной сборки дополнения, следует заархивировать все файлы и папки, входящие в его состав, в формат ZIP любым архиватором, например, бесплатным 7-Zip. После этого расширение файла следует изменить с «.zip» на «.nvda-addon», и дополнение будет готово к распространению. Пример дополненияПо нижеследующей ссылке можно загрузить пример дополнения NVDA, которое по нажатию NVDA+Shift+C проигрывает куплет песенки «Чижик-пыжик», используя функционал тональных сигналов программы экранного доступа. Кроме того, в нём продемонстрированы возможности по локализации: в качестве основного языка используется традиционный английский, плюс в пакет также входят русская и украинская локализации. Любой желающий может обратно изменить расширение .nvda-addon на .zip, разархивировать получившийся файл и изучить внутреннюю структуру и содержимое файлов дополнения. |
|||||||||
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети