summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-04-21 22:23:54 +0200
committerLudovic Courtès <ludo@gnu.org>2020-04-21 23:52:19 +0200
commit84c37e636804513f1fde1fe437784400d99e268e (patch)
tree5fea9eb322052e2340082e52a1624c548ce5757d
parentcc753650eccf3dcbf074999c458e42df8d3c0827 (diff)
downloadguix-84c37e636804513f1fde1fe437784400d99e268e.tar.gz
self: translate-texi-manuals: Add 'available-translations'.
* guix/self.scm (translate-texi-manuals)[build](available-translations):
New procedure.
Use it rather than directly calling 'find-files' & co.
-rw-r--r--guix/self.scm25
1 files changed, 19 insertions, 6 deletions
diff --git a/guix/self.scm b/guix/self.scm
index 93dcb9bee3..3cc1003c3a 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -363,12 +363,25 @@ a list of extra files, such as '(\"contributing\")."
                                   translations))))))
                         (cons prefix extras))))
 
-          (for-each (lambda (po)
-                      (match (reverse (string-split po #\.))
-                        ((_ lang _ ...)
-                         (translate-texi "guix" po lang
-                                         #:extras '("contributing")))))
-                    (find-files "." "^guix-manual\\.[a-z]{2}(_[A-Z]{2})?\\.po$"))
+          (define (available-translations directory domain)
+            ;; Return the list of available translations under DIRECTORY for
+            ;; DOMAIN, a gettext domain such as "guix-manual".  The result is
+            ;; a list of language/PO file pairs.
+            (filter-map (lambda (po)
+                          (let ((base (basename po)))
+                            (and (string-prefix? (string-append domain ".")
+                                                 base)
+                                 (match (string-split base #\.)
+                                   ((_ ... lang "po")
+                                    (cons lang po))))))
+                        (find-files directory
+                                    "\\.[a-z]{2}(_[A-Z]{2})?\\.po$")))
+
+          (for-each (match-lambda
+                      ((language . po)
+                       (translate-texi "guix" po language
+                                       #:extras '("contributing"))))
+                    (available-translations "." "guix-manual"))
 
           (for-each
             (lambda (file)