Desde el punto de vista del usuario, un idioma es simplemente un símbolo. En LE-LISP hay dos lenguajes predefinidos, english y french. Cualquier mención a un idioma que no ha sido definido provocará un error.
Mediante (record-language 'spanish) podemos definir un nuevo idioma, en este caso el spanish.
Un mensaje es una variable a la que se asocian las distintas traducciones de un mesaje (en el sentido cotidiano de la palabra) en los idiomas registrados. Por ejemplo,
(defmessage #:ICEeditor:file-msg (english "File") (french "Archive") (spanish "Archivo"))permite que cuando tengamos que escribir la palabra ``archivo'', podamos usar (get-message #:ICEeditor:file-mag) para obtener la cadena de caracteres asociada a dicha palabra en el idioma utilizado en ese momento. Las otras funciones utilizadas con el manejo de los mensajes multi-idioma son:
(mapcar (lambda (x) (cons x . (get-message x))) (get-all-messages 'english))devuelve una lista de pares con los mensajes y su string asociado en inglés. Esto es útil para posteriormente traducir cada mensaje e incorporarlo a la base de datos de mensajes en el nuevo idioma mediante la aplicación de put-message a cada par de la lista traducida.