# HG changeset patch # User Glenn Morris # Date 1202503396 0 # Node ID 88dc1f9f4da0489b0117792735e35a34a5d4c95d # Parent 8bf8aae304d2252099d2838239b03035c172f0fc (locale-translate): New function, with old code extracted from set-locale-environment. (set-locale-environment): Use locale-translate. Set woman-locale. diff -r 8bf8aae304d2 -r 88dc1f9f4da0 lisp/international/mule-cmds.el --- a/lisp/international/mule-cmds.el Fri Feb 08 20:29:53 2008 +0000 +++ b/lisp/international/mule-cmds.el Fri Feb 08 20:43:16 2008 +0000 @@ -2422,6 +2422,19 @@ ;; too, for setting things such as calendar holidays, ps-print paper ;; size, spelling dictionary. +(defun locale-translate (locale) + "Expand LOCALE according to `locale-translation-file-name', if possible. +For example, translate \"swedish\" into \"sv_SE.ISO8859-1\"." + (if locale-translation-file-name + (with-temp-buffer + (set-buffer-multibyte nil) + (insert-file-contents locale-translation-file-name) + (if (re-search-forward + (concat "^" (regexp-quote locale) ":?[ \t]+") nil t) + (buffer-substring (point) (line-end-position)) + locale)) + locale)) + (defun set-locale-environment (&optional locale-name frame) "Set up multi-lingual environment for using LOCALE-NAME. This sets the language environment, the coding system priority, @@ -2491,16 +2504,7 @@ (setq locale mac-system-locale)) (when locale - - ;; Translate "swedish" into "sv_SE.ISO8859-1", and so on, - ;; using the translation file that many systems have. - (when locale-translation-file-name - (with-temp-buffer - (set-buffer-multibyte nil) - (insert-file-contents locale-translation-file-name) - (when (re-search-forward - (concat "^" (regexp-quote locale) ":?[ \t]+") nil t) - (setq locale (buffer-substring (point) (line-end-position)))))) + (setq locale (locale-translate locale)) ;; Leave the system locales alone if the caller did not specify ;; an explicit locale name, as their defaults are set from @@ -2508,8 +2512,16 @@ ;; want to set them to the same value as LC_CTYPE. (when locale-name (setq system-messages-locale locale) - (setq system-time-locale locale)) + (setq system-time-locale locale))) + (setq woman-locale + (or system-messages-locale + (let ((msglocale (getenv "LC_MESSAGES"))) + (if (zerop (length msglocale)) + locale + (locale-translate msglocale))))) + + (when locale (setq locale (downcase locale)) (let ((language-name