diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2022-01-18 22:16:12 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2022-01-18 22:51:08 +0100 |
| commit | ee16e4e8dac9fd14340cd96731e867134cd843fe (patch) | |
| tree | 78ca7c2fba40b656ede34a65ee414da496d3bc7b /doc | |
| parent | 3a751156896478fb65b5290ff4324d7203edae6f (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.scm | 33 |
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) |
