Специфікація емоційок

Версія 0.1
7 січня 2005 року
Olivier Goffart

     ogoffart@tiscalinet.be

# Емоційки

## Вступ

Це чернетка, що описує створення теми емоційок, яку типово використовують у програмах для миттєвого обміну повідомленнями.

Базова схема є дуже простою. Тема складається з одного підкаталогу, який містить усі зображення та одного файла &XML;, у якому з кожним зображенням пов’язується набір символів ASCII. Також може бути використано один файл .directory.

### Розташування файлів

Файли, описані у цій специфікації, розташовуються відповідно до «Специфікації базових каталогів стільничного середовища», з якою можна ознайомитися на сайті www.freedesktop.org.

Усі файли теми мають зберігатися у підкаталозі каталогу `$XDG_DATA_DIRS`/emoticons/. Назва підкаталогу має збігатися з назвою теми. Підкаталог має містити файл з назвою `emoticons.xml`. Формат цього файла описано нижче.

Каталог теми може також містити файл .directory, у якому зберігатимуться переклади назви теми та/або дані щодо піктограми теми.

### Формат файла emoticons.xml

Файли кар емоційок мають бути коректними файлами &XML;. У реалізаціях обробників мають ігноруватися невідомі теґи та невідомі атрибути.

#### Елементи

<messaging-emoticon-map> [version="0.1"]

  Кореневим елементом є <messaging-emoticon-map>. Цей елемент містить усі інші елементи.

<emoticon file="...">

  Цей елемент відповідає одній емоційці. Атрибут файла має містити назву файла зображення у тому самому каталозі. Суфікс назви файла можна не вказувати. Якщо суфікс не вказано, реалізація обробника має шукати файл із вказаною назвою у якомусь із підтримуваних форматів.

  Емоційки у карті не впорядковано. Втім, першою піктограмою у карті є піктограма, яка ідентифікує тему графічно. Типово, цією піктограмою має бути :-)

<string>

  Цей елемент можна вказувати лише під <emoticon>. Від визначає рядок ASCII, який обробник має шукати у тексті для заміни зображенням, вказаним атрибутом file емоційки.

  У однієї піктограми може бути декілька елементів string.

  Особливого порядку рядків (елементів string) у записі емоційки не передбачено. Втім, першим має бути типовий рядок, його буде використано якщо позначено відповідний пункт у графічному інтерфейсі.

### Формат зображення.

Усі зображення має бути збережено у таких форматах: PNG, GIF або MNG.

### Зауваження щодо реалізації

#### Обробник емоційок

Окремих рекомендацій щодо обробки емоційок немає. Втім, емоційки з довшими рядками повинні мати вищий пріоритет за емоційки з короткими рядками. (Приклад: якщо у темі визначено емоційки для :-() і :-(, слід використовувати зображення для першої з них, якщо буде виявлено рядок «:-()»)

### Приклад

    <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>