Function: set-language-environment

set-language-environment is an interactive and byte-compiled function defined in mule-cmds.el.gz.

Signature

(set-language-environment LANGUAGE-NAME)

Documentation

Set up multilingual environment for using LANGUAGE-NAME.

This sets the coding system priority and the default input method and sometimes other things. LANGUAGE-NAME should be a string which is the name of a language environment. For example, "Latin-1" specifies the character set for the major languages of Western Europe.

If there is a prior value for current-language-environment, this runs the hook exit-language-environment-hook. After setting up the new language environment, it runs set-language-environment-hook.

Probably introduced at or before Emacs version 20.1.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/international/mule-cmds.el.gz
(defun set-language-environment (language-name)
  "Set up multilingual environment for using LANGUAGE-NAME.
This sets the coding system priority and the default input method
and sometimes other things.  LANGUAGE-NAME should be a string
which is the name of a language environment.  For example, \"Latin-1\"
specifies the character set for the major languages of Western Europe.

If there is a prior value for `current-language-environment', this
runs the hook `exit-language-environment-hook'.  After setting up
the new language environment, it runs `set-language-environment-hook'."
  (interactive (list (read-language-name
		      nil
		      (format-prompt "Set language environment" "English"))))
  (if language-name
      (if (symbolp language-name)
	  (setq language-name (symbol-name language-name)))
    (setq language-name "English"))
  (let ((slot (assoc-string language-name language-info-alist t)))
    (unless slot
      (error "Language environment not defined: %S" language-name))
    (setq language-name (car slot)))
  (if current-language-environment
      (let ((func (get-language-info current-language-environment
				     'exit-function)))
	(run-hooks 'exit-language-environment-hook)
	(if (functionp func) (funcall func))))

  (reset-language-environment)
  ;; The features might set up coding systems.
  (let ((required-features (get-language-info language-name 'features)))
    (while required-features
      (require (car required-features))
      (setq required-features (cdr required-features))))

  (setq current-language-environment language-name)

  (set-language-environment-coding-systems language-name)
  (set-language-environment-input-method language-name)
  (set-language-environment-nonascii-translation language-name)
  (set-language-environment-charset language-name)

  (let ((func (get-language-info language-name 'setup-function)))
    (if (functionp func)
	(funcall func)))

  (setq current-iso639-language
	(or (get-language-info language-name 'iso639-language)
	    current-iso639-language))

  (run-hooks 'set-language-environment-hook)
  (force-mode-line-update t))