From 0d0e2165ea80262b1044e6cebcc7ad820e59f872 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 8 Apr 2022 22:56:02 +0200 Subject: doc: Allow different translations for 'guix-cookbook' and 'guix-manual'. Previously, 'guix-manual-text-domain' could be passed the cookbook language list as its second argument. Thus, it started failing when the set of cookbook languages was no longer a subset of the manual languages, starting with commit 93bfd4d9c7ba7055c19f02128491b3a98a180860, which removed "sk" from 'guix-manual' but kept it for 'guix-cookbook'. * doc/build.scm (%manual-languages, %cookbook-languages): New variables. (%languages): Use them. (guix-manual-text-domain): Give LANGUAGES a valid default value. (localization-helper-module): Remove optional argument to 'guix-manual-text-domain'. --- doc/build.scm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'doc/build.scm') diff --git a/doc/build.scm b/doc/build.scm index 9d79215b98..f5c8713b41 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -62,11 +62,19 @@ (or (getenv "GUIX_MANUAL") "guix")) +(define %manual-languages + ;; Available translations for the 'guix-manual' text domain. + '("de" "en" "es" "fr" "ru" "zh_CN")) + +(define %cookbook-languages + ;; Available translations for the 'guix-cookbook' text domain. + '("de" "en" "fr" "sk")) + (define %languages - ;; The cookbook is not translated in the same languages as the manual + ;; Available translations for the document being built. (if (string=? %manual "guix-cookbook") - '("de" "en" "fr" "sk") - '("de" "en" "es" "fr" "ru" "zh_CN"))) + %cookbook-languages + %manual-languages)) (define (texinfo-manual-images source) "Return a directory containing all the images used by the user manual, taken @@ -969,7 +977,8 @@ PDF for language '~a'!~%~%" (computed-file (string-append manual "-pdf-manual") build #:local-build? #f)) -(define (guix-manual-text-domain source languages) +(define* (guix-manual-text-domain source + #:optional (languages %manual-languages)) "Return the PO files for LANGUAGES of the 'guix-manual' text domain taken from SOURCE." (define po-directory @@ -1042,9 +1051,7 @@ must be the Guix top-level source directory, from which PO files are taken." (define exp `(begin (bindtextdomain "guix-manual" - #+(guix-manual-text-domain - source - languages)) + #+(guix-manual-text-domain source)) (bindtextdomain "iso_639-3" ;language names #+(file-append iso-codes "/share/locale")) -- cgit v1.2.3 From b38e053513323fef52e57496ef2d7ed3f92d772e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 8 Apr 2022 23:58:24 +0200 Subject: doc: Build an empty index if the manual is missing. That way, the "sk" index for 'guix-manual' is empty, because 'guix-manual' lacks an "sk" translation. * doc/build.scm (html-manual-identifier-index)[build](html-files): Gracefully handle 'scandir' returning #f. --- doc/build.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'doc/build.scm') diff --git a/doc/build.scm b/doc/build.scm index f5c8713b41..cf3e5d2830 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -309,8 +309,9 @@ actual file name." (define (html-files directory) ;; Return the list of HTML files under DIRECTORY. (map (cut string-append directory "/" <>) - (scandir #$manual (lambda (file) - (string-suffix? ".html" file))))) + (or (scandir #$manual (lambda (file) + (string-suffix? ".html" file))) + '()))) (define anchors (sort (concatenate -- cgit v1.2.3