guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/05: self: translate-texi-manuals: Add 'available-translations'.


From: guix-commits
Subject: 03/05: self: translate-texi-manuals: Add 'available-translations'.
Date: Tue, 21 Apr 2020 17:53:10 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 84c37e636804513f1fde1fe437784400d99e268e
Author: Ludovic Courtès <address@hidden>
AuthorDate: Tue Apr 21 22:23:54 2020 +0200

    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.
---
 guix/self.scm | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/guix/self.scm b/guix/self.scm
index 93dcb9b..3cc1003 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]