summaryrefslogtreecommitdiff
path: root/guix/ui.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-09 23:06:38 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-10 12:40:59 +0200
commit32813e8440ff15c9389b84b1d7450fe1d3d25bb2 (patch)
treed6e644203ecf41ecc66e4206be155b58341be0bb /guix/ui.scm
parent5d9f9ad63191646a22dc80624227aa413a4894f0 (diff)
downloadpatches-32813e8440ff15c9389b84b1d7450fe1d3d25bb2.tar
patches-32813e8440ff15c9389b84b1d7450fe1d3d25bb2.tar.gz
ui: Fix i18n for diagnostic messages.
Until now, we'd pass 'gettext' the "augmented" format string, which 'gettext' would not find in message catalogs. Now we pass it FMT as is, which is what catalogs contain. * guix/ui.scm (define-diagnostic)[augmented-format-string]: Remove. Emit one 'format' call to print the prefix, and a second one to print the actual message.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r--guix/ui.scm22
1 files changed, 9 insertions, 13 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index c2807b711f..c57d206184 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -129,28 +129,24 @@
messages."
(define-syntax name
(lambda (x)
- (define (augmented-format-string fmt)
- (string-append "~:[~*~;guix ~a: ~]~a" (syntax->datum fmt)))
-
(syntax-case x ()
((name (underscore fmt) args (... ...))
(and (string? (syntax->datum #'fmt))
(free-identifier=? #'underscore #'G_))
- (with-syntax ((fmt* (augmented-format-string #'fmt))
- (prefix (datum->syntax x prefix)))
- #'(format (guix-warning-port) (gettext fmt*)
- (program-name) (program-name) prefix
+ #'(begin
+ (format (guix-warning-port) "~:[~*~;guix ~a: ~]~a"
+ (program-name) (program-name) prefix)
+ (format (guix-warning-port) (gettext fmt)
args (... ...))))
((name (N-underscore singular plural n) args (... ...))
(and (string? (syntax->datum #'singular))
(string? (syntax->datum #'plural))
(free-identifier=? #'N-underscore #'N_))
- (with-syntax ((s (augmented-format-string #'singular))
- (p (augmented-format-string #'plural))
- (prefix (datum->syntax x prefix)))
- #'(format (guix-warning-port)
- (ngettext s p n %gettext-domain)
- (program-name) (program-name) prefix
+ #'(begin
+ (format (guix-warning-port) "~:[~*~;guix ~a: ~]~a"
+ (program-name) (program-name) prefix)
+ (format (guix-warning-port)
+ (ngettext singular plural n %gettext-domain)
args (... ...))))))))
(define-diagnostic warning "warning: ") ; emit a warning