installer: Display language and territory names natively.
* gnu/installer.scm (installer-program): Add calls to 'bindtextdomain'. * gnu/installer/newt/locale.scm (run-locale-page) <language, territory>: Add calls to 'gettext'.
This commit is contained in:
parent
2d5867a213
commit
7837a57241
|
@ -343,6 +343,16 @@ selected keymap."
|
||||||
;; Add some binaries used by the installers to PATH.
|
;; Add some binaries used by the installers to PATH.
|
||||||
#$set-installer-path
|
#$set-installer-path
|
||||||
|
|
||||||
|
;; Arrange for language and territory name translations to be
|
||||||
|
;; available. We need them at run time, not just compile time,
|
||||||
|
;; because some territories have several corresponding languages
|
||||||
|
;; (e.g., "French" is always displayed as "français", but
|
||||||
|
;; "Belgium" could be translated to Dutch, French, or German.)
|
||||||
|
(bindtextdomain "iso_639-3" ;languages
|
||||||
|
#+(file-append iso-codes "/share/locale"))
|
||||||
|
(bindtextdomain "iso_3166-1" ;territories
|
||||||
|
#+(file-append iso-codes "/share/locale"))
|
||||||
|
|
||||||
(let* ((current-installer newt-installer)
|
(let* ((current-installer newt-installer)
|
||||||
(steps (#$steps current-installer)))
|
(steps (#$steps current-installer)))
|
||||||
((installer-init current-installer))
|
((installer-init current-installer))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||||
|
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -161,7 +162,13 @@ glibc locale string and return it."
|
||||||
(run-language-page
|
(run-language-page
|
||||||
(sort-languages
|
(sort-languages
|
||||||
(delete-duplicates (map locale-language supported-locales)))
|
(delete-duplicates (map locale-language supported-locales)))
|
||||||
(cut language-code->language-name iso639-languages <>)))))
|
(lambda (language)
|
||||||
|
(let ((english (language-code->language-name iso639-languages
|
||||||
|
language)))
|
||||||
|
(setenv "LANGUAGE" language)
|
||||||
|
(let ((native (gettext english "iso_639-3")))
|
||||||
|
(unsetenv "LANGUAGE")
|
||||||
|
native)))))))
|
||||||
(installer-step
|
(installer-step
|
||||||
(id 'territory)
|
(id 'territory)
|
||||||
(compute
|
(compute
|
||||||
|
@ -175,10 +182,11 @@ glibc locale string and return it."
|
||||||
;; supported by the previously selected language.
|
;; supported by the previously selected language.
|
||||||
(run-territory-page
|
(run-territory-page
|
||||||
(delete-duplicates (map locale-territory locales))
|
(delete-duplicates (map locale-territory locales))
|
||||||
(lambda (territory-code)
|
(lambda (territory)
|
||||||
(if territory-code
|
(if territory
|
||||||
(territory-code->territory-name iso3166-territories
|
(let ((english (territory-code->territory-name
|
||||||
territory-code)
|
iso3166-territories territory)))
|
||||||
|
(gettext english "iso_3166-1"))
|
||||||
(G_ "No location"))))))))
|
(G_ "No location"))))))))
|
||||||
(installer-step
|
(installer-step
|
||||||
(id 'codeset)
|
(id 'codeset)
|
||||||
|
|
Loading…
Reference in New Issue