summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-01-18 22:16:12 +0100
committerLudovic Courtès <ludo@gnu.org>2022-01-18 22:51:08 +0100
commitee16e4e8dac9fd14340cd96731e867134cd843fe (patch)
tree78ca7c2fba40b656ede34a65ee414da496d3bc7b /doc
parent3a751156896478fb65b5290ff4324d7203edae6f (diff)
doc: Factorize 'language-code->native-name'.
* doc/build.scm (localization-helper-module)[content](translate): Add call to 'setenv' before 'write'. Remove use of 'with-language'. (language-code->native-name): New procedure. (html-manual-indexes)[build](top-level-index): Use it.
Diffstat (limited to 'doc')
-rw-r--r--doc/build.scm33
1 files changed, 18 insertions, 15 deletions
diff --git a/doc/build.scm b/doc/build.scm
index 7282809643d..1057336c655 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -842,6 +842,7 @@ must be the Guix top-level source directory, from which PO files are taken."
842 with-language 842 with-language
843 translate 843 translate
844 language-code->name 844 language-code->name
845 language-code->native-name
845 seconds->string)) 846 seconds->string))
846 847
847 (define (normalize language) ;XXX: deduplicate 848 (define (normalize language) ;XXX: deduplicate
@@ -876,19 +877,19 @@ must be the Guix top-level source directory, from which PO files are taken."
876 (bindtextdomain "iso_639-3" ;language names 877 (bindtextdomain "iso_639-3" ;language names
877 #+(file-append iso-codes 878 #+(file-append iso-codes
878 "/share/locale")) 879 "/share/locale"))
880 (setenv "LANGUAGE" ,language)
879 (write (gettext ,str ,domain)))) 881 (write (gettext ,str ,domain))))
880 882
881 (with-language language 883 ;; Since the 'gettext' function caches msgid translations,
882 ;; Since the 'gettext' function caches msgid translations, 884 ;; regardless of $LANGUAGE, we have to spawn a new process each
883 ;; regardless of $LANGUAGE, we have to spawn a new process each 885 ;; time we want to translate to a different language. Bah!
884 ;; time we want to translate to a different language. Bah! 886 (let* ((pipe (open-pipe* OPEN_READ
885 (let* ((pipe (open-pipe* OPEN_READ 887 #+(file-append guile-3.0
886 #+(file-append guile-3.0 888 "/bin/guile")
887 "/bin/guile") 889 "-c" (object->string exp)))
888 "-c" (object->string exp))) 890 (str (read pipe)))
889 (str (read pipe))) 891 (close-pipe pipe)
890 (close-pipe pipe) 892 str))
891 str)))
892 893
893 (define %iso639-languages 894 (define %iso639-languages
894 (vector->list 895 (vector->list
@@ -910,6 +911,11 @@ must be the Guix top-level source directory, from which PO files are taken."
910 (assoc-ref language "name"))) 911 (assoc-ref language "name")))
911 %iso639-languages))) 912 %iso639-languages)))
912 913
914 (define (language-code->native-name code)
915 "Return the name of language CODE in that language."
916 (translate (language-code->name code) code
917 #:domain "iso_639-3"))
918
913 (define (seconds->string seconds language) 919 (define (seconds->string seconds language)
914 (let* ((time (make-time time-utc 0 seconds)) 920 (let* ((time (make-time time-utc 0 seconds))
915 (date (time-utc->date time))) 921 (date (time-utc->date time)))
@@ -1026,10 +1032,7 @@ languages:\n"
1026 (ul 1032 (ul
1027 ,@(map (lambda (language) 1033 ,@(map (lambda (language)
1028 `(li (a (@ (href ,(normalize language))) 1034 `(li (a (@ (href ,(normalize language)))
1029 ,(translate 1035 ,(language-code->native-name language))))
1030 (language-code->name language)
1031 language
1032 #:domain "iso_639-3"))))
1033 languages))))))) 1036 languages)))))))
1034 1037
1035 (define (write-html file sxml) 1038 (define (write-html file sxml)