# Especificación de emoticonos

Versión 0.1

2005-01-07

## Emoticonos

## Introducción

Este borrador define cómo crear un tema de emoticonos utilizados normalmente en las aplicaciones de mensajería instantánea.

El esquema básico es muy sencillo. El tema consiste en un subdirectorio que contiene todas las imágenes y un archivo &XML; que asigna a cada imagen un símbolo ASCII. Se puede utilizar un archivo .directory.

### Ubicaciones de archivo

Los archivos implicados en esta especificación están ubicados según la «especificación de directorio base del escritorio», la cual se puede encontrar en www.freedesktop.org.

Todos los archivos del tema se deben colocar en un subdirectorio de `$XDG_DATA_DIRS`/emoticons/. El nombre del directorio debe ser igual al del tema. Dicho directorio debe contener un archivo llamado `emoticons.xml` cuyo formato se describe a continuación.

El directorio del tema también puede contener un archivo .directory que contenga traducciones del nombre del tema o un icono para dicho tema.

### Formato del archivo emoticons.xml

Los archivos de mapas de emoticonos deben ser archivos XML bien formados. Las implementaciones deberán ignorar las etiquetas desconocidas o los atributos desconocidos.

#### Elementos

<messaging-emoticon-map> [versión="0.1"]

- El elemento raíz es <messaging-emoticon-map>; todos los demás elementos están contenidos en él.

<emoticon file="...">

- Este elemento representa un emoticono. El atributo archivo es el nombre del archivo de imagen, el cual debe estar en el mismo directorio. La extensión se puede omitir, en cuyo caso, la implementación busca un archivo en ese directorio que tenga el mismo nombre y que esté en uno de los formatos admitidos.

  No hay un orden prestablecido para cada emoticono en el mapa, pero el primer icono del mapa se utiliza generalmente para identificar el tema de manera gráfica. Por convención, dicho icono debería ser :-)

<string>

- Este elemento solo puede aparecer bajo <emoticon>. Representa la cadena ASCII que con la que se corresponderá en el texto y la que se sustituirá por la imagen especificada por el atributo del emoticono.

  Puede haber varias cadenas por emoticono.

  No hay un order prestablecido para una cadena en un emoticon, pero el primero debería ser el predeterminado y se deberá elegir si hay un selector de interfaz gráfico.

### Formato de la imagen

Todas las imágenes deberán tener un formato admitido: PNG, GIF o MNG.

### Notas de las implementaciones

#### Analizador de emoticonos

No existe una recomendación sobre cómo analizar sintácticamente los emoticonos, pero los emoticonos con cadenas más largas deberían tener mayor prioridad sobre los que tengan cadenas más cortas. Ejemplo: si tanto :-() como :-( están en un tema, se utilizará la imagen del primero cuando se encuentre :-()

### Ejemplo

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