ui: Add 'current-message-language'.

* guix/ui.scm (%default-message-language): New variable.
(current-message-language): New procedure.
This commit is contained in:
Ludovic Courtès 2019-09-15 17:54:05 +02:00
parent 9719e8d37a
commit a725504a3a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 18 additions and 0 deletions

View File

@ -121,6 +121,10 @@
roll-back*
switch-to-generation*
delete-generation*
%default-message-language
current-message-language
run-guix-command
run-guix
guix-main))
@ -428,6 +432,20 @@ exiting. ARGS is the list of arguments received by the 'throw' handler."
report them in a user-friendly way."
(call-with-unbound-variable-handling (lambda () exp ...)))
(define %default-message-language
;; Default language to use for messages.
(make-parameter "en"))
(define (current-message-language)
"Return the language used for messages according to the current locale.
Return %DEFAULT-MESSAGE-LANGUAGE if that information could not be obtained. The
result is an ISO-639-2 language code such as \"ar\", without the territory
part."
(let ((locale (setlocale LC_MESSAGES)))
(match (string-index locale #\_)
(#f locale)
(index (string-take locale index)))))
(define (install-locale)
"Install the current locale settings."
(catch 'system-error