<?xml version="1.0" encoding="utf-8"?>
<!-- -*- indent-tabs-mode: nil -*- -->
<chapter id="desktop-tech">
  <title>Технологии рабочего стола</title>

<section id="applications-mime">
  <title>Регистрация приложений и типов файлов</title>
  <para>Приложение полезно, если пользователь может его найти и запустить. Пользователи GNOME могут запускать приложения с помощью главного меню или запускать их непосредственно указывая файлы в файловом менеджере. Рабочее окружение GNOME позволяет добавлять приложения и типы файлов при установке приложения. Этот механизм описан на <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>, поэтому одни и те же данные позволяют приложениям функционировать в различных средах рабочего стола.</para>

  <para>Добавить приложения также просто, как предоставить файл содержимого рабочего стола с необходимой информацией. Файлы содержимого рабочего стола используют простой синтаксис ключ-значение с дополнительными данными, необходимыми для перевода конкретных значений. Файл содержимого рабочего стола для данного приложения содержит следующую информацию:</para>

  <itemizedlist>
    <listitem><para>Название приложение и примечание, переведённые на все языки, поддерживаемые данным приложением.</para></listitem>
    <listitem><para>Список категорий из фиксированного набора, которые используются для выбора положения приложения в главном меню приложений.</para></listitem>
    <listitem><para>Изображение, либо как полный путь к файлу, либо как имя значка в системе тем значков рабочего стола.</para></listitem>
    <listitem><para>Список типов файлов, поддерживаемых приложением и</para></listitem>
    <listitem><para>Команда запуска данного приложения.</para></listitem>
  </itemizedlist>

  <para>Если приложение обрабатывает тип файлов, который еще не зарегистрирован в системе, необходимо добавить этот тип файлов в реестр. Все типы файлов связаны с типами MIME. Например, звуковые файлы Ogg Vorbis имеют тип MIME <literal>application/ogg</literal>. Чтобы добавить тип MIME необходимо предоставить описание типа, с помощью XML-файла c информацией о MIME. Эти файлы содержат переведённое имя типа, а также информацию о том, как определить тип файла либо по имени файла, либо по его содержимому.</para>

  <para>For more information on applications, see <ulink url="http://standards.freedesktop.org/desktop-entry-spec/latest/">The
  Desktop Entry Specification</ulink> and <ulink url="http://standards.freedesktop.org/menu-spec/latest/">The
  Desktop Menu Specification</ulink>.  For more information on file types,
  see <ulink url="http://standards.freedesktop.org/shared-mime-info-spec/latest/">The
  Shared MIME Info Specification</ulink>.</para>
</section>

<section id="panel-applets">
  <title>Апплеты панели GNOME.</title>
  <para>GNOME содержит гибкий и мощный механизм панелей, на которые пользователь может добавить любое количество апплетов, обеспечивающих быстрый доступ к ресурсам, информации и функциональность любого вида. Например, рабочий стол GNOME поставляется с апплетами для переключения между окнами и рабочими местами, апплетами для отображения текущей погоды, сетевой активности и другими.</para>

  <para>Апплеты панели могут расширять функционал основного приложения, а могут быть независимыми приложениями. Для отображения мгновенных уведомлений приложения желательно использовать область уведомлений, которая также находится на панели пользователя. Апплеты следует использовать, когда необходимо обеспечить большую функциональность, чем могут предоставить значки области уведомлений.</para>

  <para>Апплеты панели — независимые процессы, использующие Bonobo для взаимодействия с панелью. С помощью Bonobo апплеты интегрируются в панель, что обеспечивает целостность пользовательского интерфейса. Например, контекстное меню для каждого апплета панели содержит стандартные пункты его перемещения, удаления и блокирования. Кроме того, каждый апплет может добавить другие пункты в контекстное меню для выполнения нужных действий. Например, апплет <application>Сводка погоды</application> содержит в контекстном меню пункты для открытия детального отчета о погоде и обновления текущей информации.</para>

  <para>За дополнительной информацией об апплетах панели обратитесь к <ulink url="http://library.gnome.org/devel/panel-applet/stable/">Panel Applet Library</ulink>.</para>
</section>

<section id="nofication-area">
  <title>Область уведомлений</title>
  <para>Кроме кнопок запуска приложений и апплетов панель GNOME содержит область уведомлений, с помощью которой приложения могут уведомлять пользователя о произошедших событиях. Например, для уведомления о получении новых писем, доступных обновлениях, запланированных встречах и других событиях.</para>

  <para>Уведомления — это значки, которые приложения могут поместить в область уведомлений на панели пользователя. Приложение может обработать события щелчков мышы на значке. В настоящее время система уведомлений реализована в экспериментальной библиотеке Egg, однако следующая версия GTK+ будет поддерживать значки уведомлений.</para>

  <para>The notification area is a <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink> specification,
  so your notification icons will appear in other desktop environments as
  well.  For more information on the notification area, see <ulink url="http://standards.freedesktop.org/systemtray-spec/latest/">The System
  Tray Protocol Specification</ulink>.</para>
</section>

<section id="nautilus">
  <title>Менеджер файлов</title>

  <para>GNOME поставляется с <application>Nautilus</application> — интуитивным и мощным менеджером файлов. Используя технологию GnomeVFS, <application>Nautilus</application> может отображать удалённые каталоги также как локальные, что обеспечивает целостный интерфейс доступа к пользовательским данным.</para>

  <para><application>Nautilus</application> поддерживает подключаемые модули, что позволяет разработчикам расширять его функциональность и предоставить пользователям больше информации о файлах. Это обеспечивает более понятное взаимодействие с пользователем, избегая необходимости использовать другие приложения управления файлами различных типов.</para>

  <para>Подключаемые модули <application>Nautilus</application> расширяют функциональность менеджера файлов разными способами. Они могут отразить дополнительную информацию в диалог свойств файлов, предоставляя пользователю всю необходимую информацию. Например, GNOME поставляется с подключаемым модулем, который отображает дополнительную информацию о аудио и видео файлах: используемый кодек, размеры кадра видео, имя артиста и группы аудио файлов, полученных с компакт-диска.</para>

  <para>Подключаемые модули могут добавлять колонки в список просмотра и автоматически отображать эмблемы на файлах, что может быть использовано для предоставления пользователю информации, которою он может охватить одним взглядом. Например, подключаемый модуль <application>Nautilus</application> может предоставлять информацию о версии в свойствах каталога, который был получен с помощью системы контроля версий. Пользователи могут посмотреть напрямую в менеджере файлов был ли файл обновлен на сервере или были ли изменён файл на данном компьютере.</para>

  <para><application>Nautilus</application> also allows developers to add
  items to the context menu for files and folders.  Context menu items can
  specify for which types of files they should be displayed, so the context
  menu only provides actions that are relevant for the selected files.  For
  example, <application>File Roller</application>, GNOME's archive file
  utility, adds an item to the context menu to extract archive files directly.
  Extra context menu items provide easy access to common operations on
  different types of files.</para>

  <para>В дополнение к гибкой архитектуре, основанной на подключаемых модулях <application>Nautilus</application> может отображать миниатюры для тех типов файлов, которые обрабатывает программа создания миниатюр. Миниатюры показываются при предварительном просмотре файла, помогая пользователям найти нужные файлы. GNOME может автоматически создавать миниатюры для большинства видео файлов и изображений и позволяет приложениям устанавливать дополнительные программы для создания миниатюр файлов, связанных с данным приложением. Управление миниатюрами полностью определено <ulink url="http://www.freedesktop.org/">freedesktop.org</ulink>, так что любые программы для создания миниатюр будут использоваться всеми приложениями.</para>
</section>

<section id="window-manager">
  <title>Менеджер окон</title>

  <para>Менеджер окон — специальная программа, ответственная за отображение рамок и заголовков окна. Менеджер окон отвечает за обработку всех операций, связанных с окнами, таких как: перемещение, изменение размера, сворачивание и перемещение между рабочими областями. Окна управляются с минимальным участием или практически без участия разработчиков приложения. Когда приложениям необходимо повлиять на менеджер окон, они могут добавлять дополнительные сведения к своим окнам, вызывая функции GTK+.</para>

  <para>В то же время внешние программы могут взаимодействовать напрямую с менеджером окон и даже контролировать его поведение. Используя библиотеку GNOME libwnck, приложения могут получить информацию о всех окнах и дать команды менеджеру окон на выполнение различных действий с этими окнами.</para>

  <para>Библиотека libwnck не специфична для менеджера окон GNOME. Вся её функциональность использует Расширенные сообщения менеджера окон (Extended Window Manager Hints) или EWMH. EWMH разработан совместно с <ulink url="http://www.freedesktop.org">freedesktop.org</ulink> для унификации взаимодействия с оконным менеджером в различных окружениях рабочего стола.</para>

  <para>Взаимодействия с оконным менеджером с помощью libwnck используются как в простых задачах, например отображения рабочего пространства и апплета, показывающего список открытых окон, так и сложных, например выполнение автоматических действий при создании нового окна на основе некоторых свойств окна.</para>
</section>

<section id="control-center">
  <title>Центр управления</title>
  <para>The GNOME desktop provides a single menu of all the desktop-wide
  preferences and system administration settings.  Preferences and settings
  dialogs can be placed in this menu to make them easily accessible.
  Dialogs can be placed in the preferences menu by adding them to the
  applications registry with the <literal>Setting</literal> category.
  Dialogs can be placed in the administration menu using both the
  <literal>Settings</literal> and <literal>System</literal> categories.</para>

  <para>Диалог настройки системы рабочего стола следует помещать в административное меню, а диалоги, изменяющие настройки лишь нескольких приложений, следует помещать в меню предпочтений. Для настроек конкретных приложений использовать эти глобальные меню нежелательно.</para>
</section>

<section id="keyring">
  <title>Хранение паролей</title>

  <para>GNOME предоставляет современный и защищённый менеджер брелоков для хранения паролей пользователя и другой конфиденциальной информации. Приложения могут использовать библиотеку менеджера брелоков для хранения паролей и доступа к ним. Пользователи также могут управлять своими паролями, используя приложение <application>Менеджер брелоков</application>.</para>

  <para>Менеджер брелоков предоставляет несколько брелоков, каждый из которых может содержать любое количество элементов. Элементы брелока содержат какую-либо информацию, чаще всего пароли. Каждый брелок блокируется индивидуально, и для разблокирования необходимо указать пароль для каждого брелока. После разблокирования брелока пользователю становятся доступны все его элементы.</para>

  <para>The keyring manager provides access control lists for each keyring
  item, controlling which applications are allowed access to that item.
  If an unknown application attempts to access a keyring item, the keyring
  manager will prompt the user to allow or deny that application access.
  This helps prevent malicious or poorly-written programs from accessing
  the user's sensitive data.</para>

  <para>Данные брелока хранятся в файловой системе и шифруются с помощью блочного алгоритма шифрования AES, а хэш атрибутов содержимого шифруется с помощью SHA1. Хэш атрибутов используется для поиска элементов, запрошенных приложением без разблокировки брелока. Брелок необходимо будет разблокировать, когда нужный элемент найден и к нему будет разрешён доступ.</para>

  <para>Менеджер брелоков содержит брелок сеанса, содержимое которого никогда не записывается на диск и теряется при окончании сеанса пользователя. Обычно он используется для хранения паролей, которые могут использоваться только в текущем сеансе.</para>

  <para>При использовании GIO для доступа к удалённым серверам автоматически используются преимущества менеджера брелоков. Когда GVFS необходимо аутентифицировать пользователя он пытается сохранить пароль либо в брелоке по умолчанию, либо в брелоке сеанса.</para>

  <para>Менеджер брелоков необходимо использовать в приложении, если требуется сохранять пароли или другую важную информацию. Использование менеджера брелоков обеспечит удобный интерфейс пользователя и безопасное хранение данных.</para>
</section>

<section id="session">
  <title>Управление сеансами</title>
  <para>GNOME обеспечивает механизм, позволяющий приложениям восстанавливаться и завершаться от сеанса к сеансу. Пользователь может завершить сеанс с запущенным приложением, а при следующем входе это приложение полностью восстановится. Для обеспечения такой функциональности приложение должно уметь работать с менеджером сеансов и сохранять свое состояние при завершении сеанса.</para>

  <para>GNOME предоставляет простой API для управления сеансами в библиотеке пользовательского интерфейса GNOME. Обратитесь к разделу <ulink url="http://library.gnome.org/devel/libgnomeui/stable/GnomeClient.html">GnomeClient</ulink> в документе <ulink url="http://library.gnome.org/devel/libgnomeui/stable/">GNOME UI Library Reference Manual</ulink> за дополнительной информацией о работе с менеджером сеансов GNOME.</para>
</section>

<section id="address-book-calendar">
  <title>Адресная книга и календарь</title>
  <para>С помощью сервера данных Evolution GNOME предоставляет единую адресную книгу и календарь, которые могут использовать любые приложения для сохранения и получения информации, что позволяет пользователю больше не поддерживать списки контактов в каждом приложении отдельно и вручную копировать события в календарь.</para>

  <para>Компьютеры всё чаще используются для общения с друзьями и коллегами. Почтовые программы, программы мгновенных сообщений, телефонии и видео-конференций используются для общения с другими людьми. Все эти программы используют списки контактов для удобства пользователей, а с помощью сервера данных Evolution они могут хранить всю контактную информацию в едином хранилище, что позволяет всем приложениям получать доступ к требуемой информации о контактах пользователя.</para>

  <para>Кроме того, приложения могут использовать сервер приложений Evolution для хранения и получения информации о назначенных встречах и событиях в календаре пользователя. Например, часы на панели при щелчке мыши на них показывают простой календарь, в котором отмечаются все запланированные пользователем встречи, что позволяет быстро просмотреть намечающиеся встречи без запуска приложения Календарь.</para>

  <para>За дополнительной информацией об адресной книге обратитесь к <ulink url="http://gnome.org/projects/evolution/developer-doc/libebook/ch01.html"> Evolution API Reference: libebook</ulink>. За дополлнительной информацией о календаре обратитесь к<ulink url="http://gnome.org/projects/evolution/developer-doc/libecal/index.html"> Evolution API Reference: libecal</ulink>.</para>
</section>

<section id="usability">
  <title>Эргономика</title>
  <para>Рабочий стол GNOME нацелен на удобство использования и обеспечение целостного и простого интерфейса пользователя. Компьютеры используются для выполнения работы (или игры), но не для решения сложных интерфейсных головоломок. При проектировании приложений необходимо рассмотреть то, как хорошо пользователи узнают общие парадигмы интерфейса, как быстро они изучат элементы интерфейса, которые уникальны для приложения и как эффективно они смогут выполнять задачи после изучения интерфейса.</para>

  <para>GNOME предлагает исчерпывающее руководство по созданию пользовательских интерфейсов, которое помогает создать привлекательные и удобные приложения. Хотя ни одно руководство не может дать единого ответа на все вопросы эргономики, но понимание рассмотренного руководства облегчит создание эргономичных приложений. За дополнительной информацией обратитесь к <ulink url="http://library.gnome.org/devel/hig-book/stable/">Руководству GNOME по созданию пользовательских интерфейсов</ulink>.</para>
</section>

<section id="documentation">
  <title>Документация</title>
  <para>Все приложения необходимо сопровождать документацией, помогающей пользователям понять суть приложения и решать возникающие проблемы. Хотя хорошо спроектированное приложение не требует прочтения документации перед использованием, тем не менее документация может быть важным инструментом пользователя, особенно для сложных приложений.</para>

  <para>GNOME содержит единую платформу обеспечения пользователя документацией. Документацию можно поставлять в формате DocBook, на настоящий момент признаваемом индустриальным стандартом. При использовании формата DocBook не нужно беспокоиться о деталях форматирования, так как документация будет автоматически отформатирована в соответствии с едиными соглашениями, принятыми для всей системной документации.</para>

  <para>Приложение просмотра помощи GNOME <application>Yelp</application> показывает на экране и позволяет распечатать документацию, содержит список всей документации в системе и содержит механизмы полнотекстового поиска по всей документации. Используя систему помощи GNOME, вы получаете все эти преимущества бесплатно.</para>

  <para>За подробной информацией о написании документации к приложению обратитесь к<ulink url="http://library.gnome.org/devel/gdp-handbook/stable/">GNOME Handbook of Writing Software Documentation</ulink>, <ulink url="http://www.docbook.org/tdg/en/html/docbook.html">DocBook: The Definitive Guide</ulink> и <ulink url="http://library.gnome.org/devel/gdp-style-guide/stable/">GNOME Documentation Style Guide</ulink>.</para>
</section>

</chapter>
