<?xml version="1.0" encoding="UTF-8"?> <appendix id="kopete-emoticons"> <appendixinfo> <title >Специфікація емоційок</title> <releaseinfo >Версія 0.1</releaseinfo> <date >7 січня 2005 року</date> <authorgroup> <author ><firstname >Olivier</firstname > <surname >Goffart</surname > <affiliation > <address > <email >ogoffart@tiscalinet.be</email> </address> </affiliation> </author> </authorgroup> </appendixinfo> <title >Емоційки</title> <sect1 id="introduction-emoticons"> <title >Вступ</title> <para >Це чернетка, що описує створення теми емоційок, яку типово використовують у програмах для миттєвого обміну повідомленнями. </para> <para >Базова схема є дуже простою. Тема складається з одного підкаталогу, який містить усі зображення та одного файла &XML;, у якому з кожним зображенням пов’язується набір символів ASCII. Також може бути використано один файл .directory. </para> <sect2 id="location"> <title >Розташування файлів</title> <para >Файли, описані у цій специфікації, розташовуються відповідно до «Специфікації базових каталогів стільничного середовища», з якою можна ознайомитися на сайті <ulink url="http://www.freedesktop.org/standards/" >www.freedesktop.org</ulink >. </para> <para >Усі файли теми мають зберігатися у підкаталозі каталогу <varname >$XDG_DATA_DIRS</varname >/emoticons/. Назва підкаталогу має збігатися з назвою теми. Підкаталог має містити файл з назвою <varname >emoticons.xml</varname >. Формат цього файла описано нижче. </para> <para >Каталог теми може також містити файл .directory, у якому зберігатимуться переклади назви теми та/або дані щодо піктограми теми. </para> </sect2> <sect2 id="emoticons-map-format"> <title >Формат файла emoticons.xml</title> <para >Файли кар емоційок мають бути коректними файлами &XML;. У реалізаціях обробників мають ігноруватися невідомі теґи та невідомі атрибути. </para> <sect3 id="emoticons-map-elements"> <title >Елементи</title> <para> <variablelist> <varlistentry> <term ><messaging-emoticon-map> [version="0.1"]</term> <listitem> <para >Кореневим елементом є <messaging-emoticon-map>. Цей елемент містить усі інші елементи. </para> </listitem> </varlistentry> <varlistentry> <term ><emoticon file="..."></term> <listitem> <para >Цей елемент відповідає одній емоційці. Атрибут файла має містити назву файла зображення у тому самому каталозі. Суфікс назви файла можна не вказувати. Якщо суфікс не вказано, реалізація обробника має шукати файл із вказаною назвою у якомусь із підтримуваних форматів. </para> <para >Емоційки у карті не впорядковано. Втім, першою піктограмою у карті є піктограма, яка ідентифікує тему графічно. Типово, цією піктограмою має бути :-) </para> </listitem> </varlistentry> <varlistentry> <term ><string></term> <listitem> <para >Цей елемент можна вказувати лише під <emoticon>. Від визначає рядок ASCII, який обробник має шукати у тексті для заміни зображенням, вказаним атрибутом file емоційки. </para> <para >У однієї піктограми може бути декілька елементів string. </para> <para >Особливого порядку рядків (елементів string) у записі емоційки не передбачено. Втім, першим має бути типовий рядок, його буде використано якщо позначено відповідний пункт у графічному інтерфейсі. </para> </listitem> </varlistentry> </variablelist> </para> </sect3> </sect2> <sect2 id="img-format"> <title >Формат зображення.</title> <para >Усі зображення має бути збережено у таких форматах: PNG, GIF або MNG. </para> </sect2> <sect2 id="implementation"> <title >Зауваження щодо реалізації</title> <sect3 id="impl-parser"> <title >Обробник емоційок</title> <para >Окремих рекомендацій щодо обробки емоційок немає. Втім, емоційки з довшими рядками повинні мати вищий пріоритет за емоційки з короткими рядками. (Приклад: якщо у темі визначено емоційки для :-() і :-(, слід використовувати зображення для першої з них, якщо буде виявлено рядок «:-()») </para> </sect3> </sect2> <sect2 id="example"> <title >Приклад</title> <para> <programlisting ><messaging-emoticon-map> <emoticon file="smile.png"> <string>:-)</string> <string>:)</string> <string>:o)</string> </emoticon> <emoticon file="wink.png"> <string>;-)</string> <string>;)</string> </emoticon> <emoticon file="unhappy.png"> <string>:-(</string> <string>:(</string> </emoticon> </messaging-emoticon-map> </programlisting> </para> </sect2> <!--sect2 id="todo"> <title >TODO</title> <para> A DTD of the XML file </para> </sect2--> </sect1> </appendix>