quail-define-rules

quail-define-rules is a Lisp macro in `quail.el'.

(quail-define-rules &rest RULES)

Define translation rules of the current Quail package.
Each argument is a list of KEY and TRANSLATION.
KEY is a string meaning a sequence of keystrokes to be translated.
TRANSLATION is a character, a string, a vector, a Quail map, or a function.
If it is a character, it is the sole translation of KEY.
If it is a string, each character is a candidate for the translation.
If it is a vector, each element (string or character) is a candidate
for the translation.
In these cases, a key specific Quail map is generated and assigned to KEY.

If TRANSLATION is a Quail map or a function symbol which returns a Quail map,
it is used to handle KEY.

The first argument may be an alist of annotations for the following
rules. Each element has the form (ANNOTATION . VALUE), where
ANNOTATION is a symbol indicating the annotation type. Currently
the following annotation types are supported.

append -- the value non-nil means that the following rules should
be appended to the rules of the current Quail package.

face -- the value is a face to use for displaying TRANSLATIONs in
candidate list.

advice -- the value is a function to call after one of RULES is
selected. The function is called with one argument, the
selected TRANSLATION string, after the TRANSLATION is
inserted.

no-decode-map --- the value non-nil means that decoding map is not
generated for the following translations.