• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/international/

Lines Matching +defs:current +defs:language +defs:environment

1 ;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*-
43 "Keymap for Mule (Multilingual environment) specific commands.")
58 (define-key mule-keymap "l" 'set-language-environment)
62 "Keymap for Mule (Multilingual environment) menu specific commands.")
64 (defvar describe-language-environment-map
67 (defvar setup-language-environment-map
73 (define-key-after mule-menu-keymap [set-language-environment]
74 (list 'menu-item "Set Language Environment" setup-language-environment-map))
101 (define-key-after mule-menu-keymap [describe-language-environment]
103 describe-language-environment-map
104 :help "Show multilingual settings for a specific language")
118 :help "Display multilingual environment settings")
170 :enable (get-buffer-process (current-buffer))
175 (define-key setup-language-environment-map
176 [Default] '(menu-item "Default" setup-specified-language-environment))
178 (define-key describe-language-environment-map
179 [Default] '(menu-item "Default" describe-specified-language-support))
254 characters that the current buffer contains.
269 ;; We have to decode the file in any environment.
299 (let ((current-prefix-arg prefix-arg)
308 (let ((current-prefix-arg prefix-arg))
319 (current-prefix-arg prefix))
359 ;; language environment.
431 key of the current language environment has higher priorities. See
432 also the documentation of `language-info-alist'.
441 (lang-preferred (get-language-info current-language-environment
450 ;; L: 1 iff one of the current lang. env.'s codings.
706 (let ((window-configuration (current-window-configuration))
719 (with-current-buffer standard-output
827 The list of `buffer-file-coding-system' of the current buffer,
869 ;; Find an auto-coding that is specified for the the current
884 for the current buffer/file by the %s.
1038 "Return a coding system to encode the outgoing message of the current buffer.
1045 If the found coding system can't encode the current buffer,
1066 ;; the current buffer contains only ASCII. So, we hope
1074 (defvar language-info-alist nil
1075 "Alist of language environment definitions.
1078 where LANGUAGE-NAME is a string, the name of the language environment,
1083 documentation value is documentation of what this language environment
1086 language environment.
1089 for this language environment.
1091 language environment.
1093 language environment.
1095 for saving text written in this language environment.
1098 coding-priority value is a list of coding systems for this language
1099 environment, in order of decreasing priority.
1101 list when you switch to this language environment.
1105 language environment, or a character set from
1107 input-method value is a default input method for this language
1108 environment.
1110 language environment.
1124 language environment.
1129 but as non-ASCII characters in this language
1130 environment.")
1132 (defun get-language-info (lang-env key)
1133 "Return information listed under KEY for language environment LANG-ENV.
1136 see `language-info-alist'."
1139 (let ((lang-slot (assoc-string lang-env language-info-alist t)))
1143 (defun set-language-info (lang-env key info)
1144 "Modify part of the definition of language environment LANG-ENV.
1146 in the definition of this language environment.
1151 see `language-info-alist'."
1154 (set-language-info-internal lang-env key info)
1155 (if (equal lang-env current-language-environment)
1157 (set-language-environment-coding-systems lang-env))
1159 (set-language-environment-input-method lang-env))
1161 (set-language-environment-nonascii-translation lang-env))
1163 (set-language-environment-charset lang-env))
1165 (set-language-environment-fontset lang-env))
1168 (set-language-environment-unibyte lang-env)))))
1170 (defun set-language-info-internal (lang-env key info)
1172 Arguments are the same as `set-language-info'."
1174 (setq lang-slot (assoc lang-env language-info-alist))
1175 (if (null lang-slot) ; If no slot for the language, add it.
1177 language-info-alist (cons lang-slot language-info-alist)))
1184 ;; Update the custom-type of `current-language-environment'.
1185 (put 'current-language-environment 'custom-type
1189 (sort (mapcar 'car language-info-alist) 'string<))))))
1191 (defun set-language-info-alist (lang-env alist &optional parents)
1192 "Store ALIST as the definition of language environment LANG-ENV.
1194 `language-info-alist' for the meanings of KEY and INFO.
1197 where to put this language environment in the
1199 For example, (\"European\") means to put this language environment
1203 (let ((describe-map describe-language-environment-map)
1204 (setup-map setup-language-environment-map))
1218 (setq map (intern (format "describe-%s-environment-map"
1227 (setq map (intern (format "setup-%s-environment-map"
1235 ;; Set up menu items for this language env.
1239 (cons lang-env 'describe-specified-language-support) t)))
1241 (cons lang-env 'setup-specified-language-environment) t)
1244 (set-language-info-internal lang-env (car elt) (cdr elt)))
1246 (if (equal lang-env current-language-environment)
1247 (set-language-environment lang-env))))
1249 (defun read-language-name (key prompt &optional default)
1250 "Read a language environment name which has information for KEY.
1251 If KEY is nil, read any language environment.
1252 Prompt with PROMPT. DEFAULT is the default choice of language environment.
1253 This returns a language environment name as a string."
1256 language-info-alist
1262 (get-language-info name key)))
1314 (defvar current-input-method nil
1315 "The current input method for multilingual text.
1317 (make-variable-buffer-local 'current-input-method)
1318 (put 'current-input-method 'permanent-local t)
1320 (defvar current-input-method-title nil
1321 "Title string of the current input method shown in mode line.")
1322 (make-variable-buffer-local 'current-input-method-title)
1323 (put 'current-input-method-title 'permanent-local t)
1336 :set-after '(current-language-environment))
1345 (defvar inactivate-current-input-method-function nil
1346 "Function to call for inactivating the current input method.
1350 This function should never change the value of `current-input-method'.
1352 (make-variable-buffer-local 'inactivate-current-input-method-function)
1353 (put 'inactivate-current-input-method-function 'permanent-local t)
1355 (defvar describe-current-input-method-function nil
1356 "Function to call for describing the current input method.
1358 (make-variable-buffer-local 'describe-current-input-method-function)
1359 (put 'describe-current-input-method-function 'permanent-local t)
1368 "Register INPUT-METHOD as an input method for language environment LANG-ENV.
1428 "Switch to input method INPUT-METHOD for the current buffer.
1430 If INPUT-METHOD is nil, deactivate any current input method."
1433 (if (and current-input-method
1434 (not (string= current-input-method input-method)))
1436 (unless (or current-input-method (null input-method))
1440 (setq current-input-method-title nil)
1449 (setq current-input-method input-method)
1450 (or (stringp current-input-method-title)
1451 (setq current-input-method-title (nth 3 slot)))
1457 "Turn off the current input method."
1458 (when current-input-method
1460 (unless (string= current-input-method (car input-method-history))
1462 (cons current-input-method
1463 (delete current-input-method input-method-history))))
1464 (setq input-method-history (list current-input-method)))
1466 (funcall inactivate-current-input-method-function)
1469 (setq current-input-method nil
1471 current-input-method-title nil)
1475 "Select and activate input method INPUT-METHOD for the current buffer.
1498 "Enable or disable multilingual text input method for the current buffer.
1502 enabled, and disable the current one otherwise. Which input method
1516 (if (and current-input-method (not arg))
1519 (if (and arg default (equal current-input-method default)
1531 (setq default-input-method current-input-method)
1539 "Describe input method (default current choice): ")))
1543 (or input-method current-input-method))
1547 (describe-current-input-method)
1548 (let ((current current-input-method))
1553 (describe-current-input-method))
1554 (activate-input-method current))
1556 (activate-input-method current)
1565 (defun describe-current-input-method ()
1568 (if current-input-method
1569 (if (and (symbolp describe-current-input-method-function)
1570 (fboundp describe-current-input-method-function))
1571 (funcall describe-current-input-method-function)
1572 (message "No way to describe the current input method `%s'"
1573 current-input-method)
1587 current-input-method
1592 (let ((prev-input-method current-input-method))
1637 The variable `current-input-method' keeps the input method name
1643 The variable `current-input-method' still keeps the input method name
1654 the current key sequence gets long enough to have some valid translation.")
1660 at point in the current buffer.
1672 (defvar set-language-environment-hook nil
1673 "Normal hook run after some language environment is set.
1676 be inherited to another language environment. So, you had better set
1677 another function in `exit-language-environment-hook' (which see) to
1680 (defvar exit-language-environment-hook nil
1681 "Normal hook run after exiting from some language environment.
1682 When this hook is run, the variable `current-language-environment'
1683 is still bound to the language environment being exited.
1686 `set-language-environment-hook' (which-see).")
1688 (put 'setup-specified-language-environment 'apropos-inhibit t)
1690 (defun setup-specified-language-environment ()
1691 "Switch to a specified language environment."
1693 (let (language-name)
1697 (setq language-name (symbol-name last-command-event)))
1699 (set-language-environment language-name)
1700 (customize-mark-as-set 'current-language-environment))
1703 (defcustom current-language-environment "English"
1704 "The last language environment specified with `set-language-environment'.
1706 to using the function `set-language-environment'."
1708 :set (lambda (symbol value) (set-language-environment value))
1711 (if (symbolp current-language-environment)
1712 (symbol-name current-language-environment)
1713 current-language-environment)
1714 language-info-alist t))
1716 ;; custom type will be updated with `set-language-info'.
1717 :type (if language-info-alist
1721 (sort (mapcar 'car language-info-alist) 'string<)))
1726 (defun reset-language-environment ()
1727 "Reset multilingual environment of Emacs to the default status.
1798 ;; utf-8 is not yet defined, so we set it in set-locale-environment instead.
1804 ;; language environment.
1834 (reset-language-environment)
1836 (defun set-display-table-and-terminal-coding-system (language-name &optional coding-system)
1838 (let ((coding (get-language-info language-name 'unibyte-display)))
1854 (defun set-language-environment (language-name)
1855 "Set up multi-lingual environment for using LANGUAGE-NAME.
1858 which is the name of a language environment. For example, \"Latin-1\"
1860 (interactive (list (read-language-name
1862 "Set language environment (default English): ")))
1863 (if language-name
1864 (if (symbolp language-name)
1865 (setq language-name (symbol-name language-name)))
1866 (setq language-name "English"))
1867 (let ((slot (assoc-string language-name language-info-alist t)))
1869 (error "Language environment not defined: %S" language-name))
1870 (setq language-name (car slot)))
1871 (if current-language-environment
1872 (let ((func (get-language-info current-language-environment
1874 (run-hooks 'exit-language-environment-hook)
1877 (reset-language-environment)
1879 (let ((required-features (get-language-info language-name 'features)))
1884 (setq current-language-environment language-name)
1886 (set-language-environment-coding-systems language-name)
1887 (set-language-environment-input-method language-name)
1888 (set-language-environment-nonascii-translation language-name)
1889 (set-language-environment-charset language-name)
1890 (set-language-environment-fontset language-name)
1893 (set-language-environment-unibyte language-name))
1895 (let ((func (get-language-info language-name 'setup-function)))
1899 (run-hooks 'set-language-environment-hook)
1927 (defun set-language-environment-coding-systems (language-name)
1928 "Do various coding system setups for language environment LANGUAGE-NAME."
1929 (let* ((priority (get-language-info language-name 'coding-priority))
1946 (defun set-language-environment-input-method (language-name)
1947 "Do various input method setups for language environment LANGUAGE-NAME."
1948 (let ((input-method (get-language-info language-name 'input-method)))
1956 (defun set-language-environment-nonascii-translation (language-name)
1957 "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME."
1958 (let ((nonascii (get-language-info language-name 'nonascii-translation))
1973 (defun set-language-environment-charset (language-name)
1974 "Do various charset setups for language environment LANGUAGE-NAME."
1976 (not (eq utf-translate-cjk-lang-env language-name))
1978 (dolist (charset (get-language-info language-name 'charset))
1984 (defun set-language-environment-fontset (language-name)
1985 "Do various fontset setups for language environment LANGUAGE-NAME."
1990 (get-language-info language-name 'overriding-fontspec))))
1992 (defun set-language-environment-unibyte (language-name)
1993 "Do various unibyte-mode setups for language environment LANGUAGE-NAME."
1995 (let ((syntax (get-language-info language-name 'unibyte-syntax)))
2015 (with-current-buffer (car list)
2018 (set-display-table-and-terminal-coding-system language-name))
2025 (put 'describe-specified-language-support 'apropos-inhibit t)
2027 ;; Print language-specific information such as input methods,
2030 ;; [menu-bar mule describe-language-environment LANGUAGE]
2031 ;; and should not run it by `M-x describe-current-input-method-function'.
2032 (defun describe-specified-language-support ()
2033 "Describe how Emacs supports the specified language environment."
2035 (let (language-name)
2039 (setq language-name (symbol-name last-command-event))))
2041 (describe-language-environment language-name)))
2043 (defun describe-language-environment (language-name)
2044 "Describe how Emacs supports language environment LANGUAGE-NAME."
2046 (list (read-language-name
2048 "Describe language environment (default current choice): ")))
2049 (if (null language-name)
2050 (setq language-name current-language-environment))
2051 (if (or (null language-name)
2052 (null (get-language-info language-name 'documentation)))
2053 (error "No documentation for the specified language"))
2054 (if (symbolp language-name)
2055 (setq language-name (symbol-name language-name)))
2056 (dolist (feature (get-language-info language-name 'features))
2058 (let ((doc (get-language-info language-name 'documentation)))
2059 (help-setup-xref (list #'describe-language-environment language-name)
2064 (insert language-name " language environment\n\n")
2068 (let ((str (eval (get-language-info language-name 'sample-text))))
2072 (let ((input-method (get-language-info language-name 'input-method))
2081 (when (string= language-name (nth 1 (car l)))
2094 (let ((l (get-language-info language-name 'charset)))
2096 (insert " nothing specific to " language-name "\n")
2106 (let ((l (get-language-info language-name 'coding-system)))
2108 (insert " nothing specific to " language-name "\n")
2138 (defconst locale-language-names
2143 ;; LANGUAGE is a language code taken from ISO 639:1988 (E/F)
2154 ;; most of the regexps in locale-language-names work. Japanese
2156 ;; non-standard section at the bottom of locale-language-names.
2333 ;; The "IPA" Emacs language environment does not correspond
2337 ;; Nonstandard or obsolete language codes
2355 downcased locale specifies the LANG-ENV \(language environtment)
2357 appropriate language environment, the element may have this form:
2359 In this case, LANG-ENV is one of generic language environments for an
2362 (defconst locale-charset-language-names
2375 "List of pairs of locale regexps and charset language names.
2377 specifies the language name whose charset corresponds to that locale.
2378 This language name is used if the locale is not listed in
2379 `locale-language-names'")
2461 (defun set-locale-environment (&optional locale-name)
2462 "Set up multi-lingual environment for using LOCALE-NAME.
2463 This sets the language environment, the coding system priority,
2468 language, XX is a country, and CODE specifies a character set and
2474 If LOCALE-NAME is nil, its value is taken from the environment
2482 See also `locale-charset-language-names', `locale-language-names',
2484 (interactive "sSet environment for locale: ")
2506 ;; Use the first of these three environment variables
2546 (let ((language-name
2547 (locale-name-match locale locale-language-names))
2548 (charset-language-name
2549 (locale-name-match locale locale-charset-language-names))
2560 (if (consp language-name)
2561 ;; locale-language-names specify both lang-env and coding.
2565 (nth 1 language-name))
2566 language-name (car language-name))
2567 ;; Otherwise, if locale is not listed in locale-language-names,
2568 ;; use what listed in locale-charset-language-names.
2569 (if (not language-name)
2570 (setq language-name charset-language-name)))
2581 (when language-name
2585 (set-language-environment language-name)
2592 language-name coding-system))
2599 (car (get-language-info language-name
2604 (car (get-language-info language-name 'coding-priority))))