;; $Id: dbl10n.dsl,v 1.24 2000/08/08 11:58:35 nwalsh Exp $ ;; ;; This file is part of the Modular DocBook Stylesheet distribution. ;; See ../README or http://nwalsh.com/docbook/dsssl/ ;; ;; ----------------------------- Localization ----------------------------- ;; If you create a new version of this file, please send it to ;; Norman Walsh, ndw@nwalsh.com. Please use the ISO 639 language ;; code to identify the language. Append a subtag as per RFC 1766, ;; if necessary. ;; The generated text for cross references to elements. See dblink.dsl ;; for a discussion of how substitution is performed on the %x and #x ;; keywords. ;; ;; The following language codes from ISO 639 are recognized: ;; ca - Catalan ;; cs - Czech ;; da - Danish (previously dk) ;; de - German (previously dege) ;; el - Greek ;; en - English (previously usen) ;; es - Spanish ;; et - Estonian 1.55 ;; fi - Finnish ;; fr - French ;; hu - Hungarian 1.55 ;; id - Indonesian 1.55 ;; it - Italian ;; ja - Japanese ;; nl - Dutch ;; no - Norwegian (previously bmno) ??? ;; pl - Polish ;; pt - Portuguese ;; ptbr - Portuguese (Brazil) ;; ro - Romanian ;; ru - Russian ;; sk - Slovak ;; sl - Slovenian 1.55 ;; sv - Swedish (previously svse) ;; zhcn - Chinese (Continental) 1.55 ;; The following language codes are recognized for historical reasons: ;; bmno - Norwegian (Norsk Bokmal) ??? ;; dege - German ;; dk - Danish ;; svse - Swedish ;; usen - English (define %default-language% "en") (define %gentext-language% #f) (define %gentext-use-xref-lang% #f) (define ($lang$ #!optional (target (current-node)) (xref-context #f)) (if %gentext-language% (lang-fix %gentext-language%) (if (or xref-context %gentext-use-xref-lang%) (let loop ((here target)) (if (node-list-empty? here) (lang-fix %default-language%) (if (attribute-string (normalize "lang") here) (lang-fix (attribute-string (normalize "lang") here)) (loop (parent here))))) (if (inherited-attribute-string (normalize "lang")) (lang-fix (inherited-attribute-string (normalize "lang"))) (lang-fix %default-language%))))) (define (lang-fix language) ;; Lowercase the language ;; Translate 'xx-yy' to 'xx_yy' (let ((fixed-lang (if (> (string-index language "-") 0) (let ((pos (string-index language "-"))) (string-append (substring language 0 pos) "_" (substring language (+ pos 1) (string-length language)))) language))) (case-fold-down fixed-lang))) ;; bmno - Norwegian (Norsk Bokmal) ??? ;; dege - German ;; dk - Danish ;; svse - Swedish ;; usen - English (define (gentext-xref-strings target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target)))) (case lang ;; ISO 639/ISO 3166/RFC 1766 ;; Historical (else (error (string-append "L10N ERROR: gentext-xref-strings: " lang)))))) (define (auto-xref-indirect-connector before) (case ($lang$) (else (error "L10N ERROR: auto-xref-indirect-connector")))) (define (generate-toc-in-front) (case ($lang$) (else (error "L10N ERROR: generate-toc-in-front")))) (define (gentext-element-name target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target #t)))) (case lang (else (error (string-append "L10N ERROR: gentext-element-name: " lang)))))) (define (gentext-element-name-space target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target)))) (case lang (else (error "L10N ERROR: gentext-element-name-space"))))) (define (gentext-intra-label-sep target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target)))) (case lang (else (error "L10N ERROR: gentext-intra-label-sep"))))) (define (gentext-label-title-sep target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target)))) (case lang (else (error "L10N ERROR: gentext-label-title-sep"))))) (define (label-number-format target) (let ((giname (if (string? target) (normalize target) (gi target))) (lang (if (string? target) ($lang$) ($lang$ target)))) (case lang (else (error "L10N ERROR: label-number-format"))))) (define ($lot-title$ lotgi) (case ($lang$) (else (error "L10N ERROR: $lot-title$")))) (define (gentext-start-quote) (case ($lang$) (else (error "L10N ERROR: gentext-start-quote")))) (define (gentext-end-quote) (case ($lang$) (else (error "L10N ERROR: gentext-end-quote")))) (define (gentext-start-nested-quote) (case ($lang$) (else (error "L10N ERROR: gentext-start-nested-quote")))) (define (gentext-end-nested-quote) (case ($lang$) (else (error "L10N ERROR: gentext-end-nested-quote")))) (define (gentext-by) (case ($lang$) (else (error "L10N ERROR: gentext-by")))) (define (gentext-edited-by) (case ($lang$) (else (error "L10N ERROR: gentext-edited-by")))) (define (gentext-revised-by) (case ($lang$) (else (error "L10N ERROR: gentext-revised-by")))) (define (gentext-page) (case ($lang$) (else (error "L10N ERROR: gentext-page")))) (define (gentext-and) (case ($lang$) (else (error "L10N ERROR: gentext-and")))) (define (gentext-bibl-pages) (case ($lang$) (else (error "L10N ERROR: gentext-bibl-pages")))) (define (gentext-endnotes) (case ($lang$) (else (error "L10N ERROR: gentext-endnotes")))) (define (gentext-table-endnotes) (case ($lang$) (else (error "L10N ERROR: gentext-table-endnotes")))) (define (gentext-index-see) (case ($lang$) (else (error "L10N ERROR: gentext-index-see")))) (define (gentext-index-seealso) (case ($lang$) (else (error "L10N ERROR: gentext-index-seealso")))) (define (gentext-nav-prev prev) (case ($lang$) (else (error "L10N ERROR: gentext-nav-prev")))) (define (gentext-nav-prev-sibling prevsib) (case ($lang$) (else (error "L10N ERROR: gentext-nav-prev-sibling ")))) (define (gentext-nav-next-sibling nextsib) (case ($lang$) (else (error "L10N ERROR: gentext-nav-next-sibling")))) (define (gentext-nav-next next) (case ($lang$) (else (error "L10N ERROR: gentext-nav-next")))) (define (gentext-nav-up up) (case ($lang$) (else (error "L10N ERROR: gentext-nav-up")))) (define (gentext-nav-home home) (case ($lang$) (else (error "L10N ERROR: gentext-nav-home"))))