docbook_xsl_wrapper 0.1.2 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/CHANGELOG +41 -0
- data/README.md +9 -17
- data/bin/docbook_xsl_wrapper +9 -14
- data/docbook_xsl_wrapper.gemspec +8 -7
- data/lib/docbook_xsl_wrapper.rb +24 -1
- data/lib/docbook_xsl_wrapper/epub.rb +124 -122
- data/lib/docbook_xsl_wrapper/options.rb +1 -1
- data/lib/docbook_xsl_wrapper/validate.rb +22 -0
- data/lib/docbook_xsl_wrapper/version.rb +1 -1
- data/schema/docbookxi.rng +18654 -0
- data/spec/docbook_xsl_wrapper/validate_spec.rb +64 -0
- data/xsl/AUTHORS +4 -0
- data/xsl/COPYING +48 -0
- data/xsl/REVISION +1 -0
- data/xsl/VERSION.xsl +115 -0
- data/xsl/common/addns.xsl +124 -0
- data/xsl/common/af.xml +1272 -0
- data/xsl/common/am.xml +1272 -0
- data/xsl/common/ar.xml +1272 -0
- data/xsl/common/as.xml +703 -0
- data/xsl/common/ast.xml +703 -0
- data/xsl/common/autoidx-kimber.xsl +45 -0
- data/xsl/common/autoidx-kosek.xsl +155 -0
- data/xsl/common/az.xml +715 -0
- data/xsl/common/bg.xml +767 -0
- data/xsl/common/bn.xml +1272 -0
- data/xsl/common/bn_in.xml +703 -0
- data/xsl/common/bs.xml +705 -0
- data/xsl/common/ca.xml +703 -0
- data/xsl/common/charmap.xsl +222 -0
- data/xsl/common/common.xsl +2129 -0
- data/xsl/common/cs.xml +743 -0
- data/xsl/common/cy.xml +1288 -0
- data/xsl/common/da.xml +707 -0
- data/xsl/common/de.xml +709 -0
- data/xsl/common/el.xml +772 -0
- data/xsl/common/en.xml +1272 -0
- data/xsl/common/entities.ent +67 -0
- data/xsl/common/eo.xml +1272 -0
- data/xsl/common/es.xml +719 -0
- data/xsl/common/et.xml +1272 -0
- data/xsl/common/eu.xml +1272 -0
- data/xsl/common/fa.xml +703 -0
- data/xsl/common/fi.xml +713 -0
- data/xsl/common/fr.xml +733 -0
- data/xsl/common/ga.xml +1272 -0
- data/xsl/common/gentext.xsl +855 -0
- data/xsl/common/gl.xml +1272 -0
- data/xsl/common/gu.xml +703 -0
- data/xsl/common/he.xml +1272 -0
- data/xsl/common/hi.xml +703 -0
- data/xsl/common/hr.xml +705 -0
- data/xsl/common/hu.xml +721 -0
- data/xsl/common/id.xml +1272 -0
- data/xsl/common/insertfile.xsl +113 -0
- data/xsl/common/is.xml +715 -0
- data/xsl/common/it.xml +1272 -0
- data/xsl/common/ja.xml +703 -0
- data/xsl/common/ka.xml +743 -0
- data/xsl/common/kn.xml +1272 -0
- data/xsl/common/ko.xml +1272 -0
- data/xsl/common/ky.xml +775 -0
- data/xsl/common/l10n.dtd +64 -0
- data/xsl/common/l10n.xml +78 -0
- data/xsl/common/l10n.xsl +598 -0
- data/xsl/common/la.xml +1272 -0
- data/xsl/common/labels.xsl +933 -0
- data/xsl/common/lt.xml +721 -0
- data/xsl/common/lv.xml +1272 -0
- data/xsl/common/ml.xml +703 -0
- data/xsl/common/mn.xml +773 -0
- data/xsl/common/mr.xml +703 -0
- data/xsl/common/nb.xml +1272 -0
- data/xsl/common/nds.xml +709 -0
- data/xsl/common/nl.xml +703 -0
- data/xsl/common/nn.xml +1272 -0
- data/xsl/common/olink.xsl +1284 -0
- data/xsl/common/or.xml +1272 -0
- data/xsl/common/pa.xml +703 -0
- data/xsl/common/pi.xml +168 -0
- data/xsl/common/pi.xsl +347 -0
- data/xsl/common/pl.xml +721 -0
- data/xsl/common/pt.xml +1272 -0
- data/xsl/common/pt_br.xml +1272 -0
- data/xsl/common/refentry.xsl +1353 -0
- data/xsl/common/ro.xml +1272 -0
- data/xsl/common/ru.xml +769 -0
- data/xsl/common/sk.xml +1272 -0
- data/xsl/common/sl.xml +1272 -0
- data/xsl/common/sq.xml +1272 -0
- data/xsl/common/sr.xml +763 -0
- data/xsl/common/sr_Latn.xml +722 -0
- data/xsl/common/subtitles.xsl +181 -0
- data/xsl/common/sv.xml +707 -0
- data/xsl/common/ta.xml +703 -0
- data/xsl/common/table.xsl +515 -0
- data/xsl/common/targetdatabase.dtd +49 -0
- data/xsl/common/targets.xsl +338 -0
- data/xsl/common/te.xml +703 -0
- data/xsl/common/th.xml +1272 -0
- data/xsl/common/titles.xsl +850 -0
- data/xsl/common/tl.xml +1272 -0
- data/xsl/common/tr.xml +709 -0
- data/xsl/common/uk.xml +769 -0
- data/xsl/common/ur.xml +705 -0
- data/xsl/common/utility.xsl +291 -0
- data/xsl/common/vi.xml +1272 -0
- data/xsl/common/xh.xml +1272 -0
- data/xsl/common/zh.xml +703 -0
- data/xsl/common/zh_cn.xml +703 -0
- data/xsl/common/zh_tw.xml +703 -0
- data/xsl/epub/docbook.xsl +1769 -0
- data/xsl/epub3/chunk.xsl +30 -0
- data/xsl/epub3/docbook-epub.css.xml +142 -0
- data/xsl/epub3/docbook.xsl +20 -0
- data/xsl/epub3/epub3-chunk-mods.xsl +52 -0
- data/xsl/epub3/epub3-element-mods.xsl +2533 -0
- data/xsl/epub3/titlepage.templates.xml +712 -0
- data/xsl/epub3/titlepage.templates.xsl +3842 -0
- data/xsl/lib/lib.xsl +533 -0
- data/xsl/xhtml/admon.xsl +142 -0
- data/xsl/xhtml/annotations.xsl +160 -0
- data/xsl/xhtml/autoidx.xsl +831 -0
- data/xsl/xhtml/autotoc.xsl +706 -0
- data/xsl/xhtml/biblio-iso690.xsl +1302 -0
- data/xsl/xhtml/biblio.xsl +1371 -0
- data/xsl/xhtml/block.xsl +584 -0
- data/xsl/xhtml/callout.xsl +210 -0
- data/xsl/xhtml/chunk-code.xsl +675 -0
- data/xsl/xhtml/chunk-common.xsl +1627 -0
- data/xsl/xhtml/chunker.xsl +317 -0
- data/xsl/xhtml/component.xsl +440 -0
- data/xsl/xhtml/division.xsl +214 -0
- data/xsl/xhtml/ebnf.xsl +331 -0
- data/xsl/xhtml/footnote.xsl +346 -0
- data/xsl/xhtml/formal.xsl +496 -0
- data/xsl/xhtml/glossary.xsl +602 -0
- data/xsl/xhtml/graphics.xsl +1537 -0
- data/xsl/xhtml/html-rtf.xsl +321 -0
- data/xsl/xhtml/html.xsl +690 -0
- data/xsl/xhtml/htmltbl.xsl +102 -0
- data/xsl/xhtml/index.xsl +264 -0
- data/xsl/xhtml/info.xsl +48 -0
- data/xsl/xhtml/inline.xsl +1508 -0
- data/xsl/xhtml/its.xsl +109 -0
- data/xsl/xhtml/keywords.xsl +38 -0
- data/xsl/xhtml/lists.xsl +1227 -0
- data/xsl/xhtml/math.xsl +286 -0
- data/xsl/xhtml/param.xsl +449 -0
- data/xsl/xhtml/pi.xsl +1237 -0
- data/xsl/xhtml/qandaset.xsl +440 -0
- data/xsl/xhtml/refentry.xsl +307 -0
- data/xsl/xhtml/sections.xsl +564 -0
- data/xsl/xhtml/synop.xsl +1623 -0
- data/xsl/xhtml/table.xsl +1179 -0
- data/xsl/xhtml/task.xsl +76 -0
- data/xsl/xhtml/titlepage.templates.xsl +4005 -0
- data/xsl/xhtml/titlepage.xsl +1108 -0
- data/xsl/xhtml/toc.xsl +334 -0
- data/xsl/xhtml/verbatim.xsl +389 -0
- data/xsl/xhtml/xref.xsl +1268 -0
- data/xsl/xhtml5/docbook.xsl +22 -0
- data/xsl/xhtml5/html5-chunk-mods.xsl +112 -0
- data/xsl/xhtml5/html5-element-mods.xsl +791 -0
- data/xsl/xhtml5/xhtml-docbook.xsl +531 -0
- metadata +207 -27
- data/.rvmrc +0 -48
- data/xslt/obfuscate.xsl +0 -12
data/xsl/common/l10n.dtd
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!ENTITY % prefix "l">
|
|
2
|
+
|
|
3
|
+
<!ENTITY % xmlns "xmlns:%prefix;">
|
|
4
|
+
<!ENTITY % uri "'http://docbook.sourceforge.net/xmlns/l10n/1.0'">
|
|
5
|
+
|
|
6
|
+
<!ENTITY % i18n "%prefix;:i18n">
|
|
7
|
+
<!ENTITY % l10n "%prefix;:l10n">
|
|
8
|
+
<!ENTITY % gentext "%prefix;:gentext">
|
|
9
|
+
<!ENTITY % dingbat "%prefix;:dingbat">
|
|
10
|
+
<!ENTITY % context "%prefix;:context">
|
|
11
|
+
<!ENTITY % template "%prefix;:template">
|
|
12
|
+
<!ENTITY % letters "%prefix;:letters">
|
|
13
|
+
<!ENTITY % l "%prefix;:l">
|
|
14
|
+
<!ENTITY % lang "lang NMTOKEN #IMPLIED">
|
|
15
|
+
|
|
16
|
+
<!ELEMENT %i18n; ((%l10n;)+)>
|
|
17
|
+
<!ATTLIST %i18n;
|
|
18
|
+
%xmlns; CDATA #FIXED %uri;
|
|
19
|
+
>
|
|
20
|
+
|
|
21
|
+
<!ELEMENT %l10n; (%gentext;|%dingbat;|%context;|%letters;)*>
|
|
22
|
+
<!ATTLIST %l10n;
|
|
23
|
+
%xmlns; CDATA #FIXED %uri;
|
|
24
|
+
language CDATA #REQUIRED
|
|
25
|
+
english-language-name CDATA #IMPLIED
|
|
26
|
+
href CDATA #IMPLIED
|
|
27
|
+
>
|
|
28
|
+
|
|
29
|
+
<!ELEMENT %gentext; EMPTY>
|
|
30
|
+
<!ATTLIST %gentext;
|
|
31
|
+
%lang;
|
|
32
|
+
key CDATA #REQUIRED
|
|
33
|
+
text CDATA #REQUIRED
|
|
34
|
+
>
|
|
35
|
+
|
|
36
|
+
<!ELEMENT %dingbat; EMPTY>
|
|
37
|
+
<!ATTLIST %dingbat;
|
|
38
|
+
%lang;
|
|
39
|
+
key CDATA #REQUIRED
|
|
40
|
+
text CDATA #REQUIRED
|
|
41
|
+
>
|
|
42
|
+
|
|
43
|
+
<!ELEMENT %context; ((%template;)+)>
|
|
44
|
+
<!ATTLIST %context;
|
|
45
|
+
name CDATA #REQUIRED
|
|
46
|
+
>
|
|
47
|
+
|
|
48
|
+
<!ELEMENT %template; EMPTY>
|
|
49
|
+
<!ATTLIST %template;
|
|
50
|
+
%lang;
|
|
51
|
+
name CDATA #REQUIRED
|
|
52
|
+
text CDATA #REQUIRED
|
|
53
|
+
style CDATA #IMPLIED
|
|
54
|
+
>
|
|
55
|
+
|
|
56
|
+
<!ELEMENT %letters; ((%l;)+)>
|
|
57
|
+
<!ATTLIST %letters;
|
|
58
|
+
%lang;
|
|
59
|
+
>
|
|
60
|
+
|
|
61
|
+
<!ELEMENT %l; (#PCDATA)>
|
|
62
|
+
<!ATTLIST %l;
|
|
63
|
+
i CDATA #REQUIRED
|
|
64
|
+
>
|
data/xsl/common/l10n.xml
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<?xml version='1.0'?>
|
|
2
|
+
<!DOCTYPE l:i18n SYSTEM "l10n.dtd">
|
|
3
|
+
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
|
|
4
|
+
<l:l10n language="af" href="af.xml"/>
|
|
5
|
+
<l:l10n language="am" href="am.xml"/>
|
|
6
|
+
<l:l10n language="ar" href="ar.xml"/>
|
|
7
|
+
<l:l10n language="as" href="as.xml"/>
|
|
8
|
+
<l:l10n language="ast" href="ast.xml"/>
|
|
9
|
+
<l:l10n language="az" href="az.xml"/>
|
|
10
|
+
<l:l10n language="bg" href="bg.xml"/>
|
|
11
|
+
<l:l10n language="bn" href="bn.xml"/>
|
|
12
|
+
<l:l10n language="bn_in" href="bn_in.xml"/>
|
|
13
|
+
<l:l10n language="bs" href="bs.xml"/>
|
|
14
|
+
<l:l10n language="ca" href="ca.xml"/>
|
|
15
|
+
<l:l10n language="cs" href="cs.xml"/>
|
|
16
|
+
<l:l10n language="cy" href="cy.xml"/>
|
|
17
|
+
<l:l10n language="da" href="da.xml"/>
|
|
18
|
+
<l:l10n language="de" href="de.xml"/>
|
|
19
|
+
<l:l10n language="el" href="el.xml"/>
|
|
20
|
+
<l:l10n language="en" href="en.xml"/>
|
|
21
|
+
<l:l10n language="eo" href="eo.xml"/>
|
|
22
|
+
<l:l10n language="es" href="es.xml"/>
|
|
23
|
+
<l:l10n language="et" href="et.xml"/>
|
|
24
|
+
<l:l10n language="eu" href="eu.xml"/>
|
|
25
|
+
<l:l10n language="fa" href="fa.xml"/>
|
|
26
|
+
<l:l10n language="fi" href="fi.xml"/>
|
|
27
|
+
<l:l10n language="fr" href="fr.xml"/>
|
|
28
|
+
<l:l10n language="ga" href="ga.xml"/>
|
|
29
|
+
<l:l10n language="gl" href="gl.xml"/>
|
|
30
|
+
<l:l10n language="gu" href="gu.xml"/>
|
|
31
|
+
<l:l10n language="he" href="he.xml"/>
|
|
32
|
+
<l:l10n language="hi" href="hi.xml"/>
|
|
33
|
+
<l:l10n language="hr" href="hr.xml"/>
|
|
34
|
+
<l:l10n language="hu" href="hu.xml"/>
|
|
35
|
+
<l:l10n language="id" href="id.xml"/>
|
|
36
|
+
<l:l10n language="is" href="is.xml"/>
|
|
37
|
+
<l:l10n language="it" href="it.xml"/>
|
|
38
|
+
<l:l10n language="ja" href="ja.xml"/>
|
|
39
|
+
<l:l10n language="ka" href="ka.xml"/>
|
|
40
|
+
<l:l10n language="kn" href="kn.xml"/>
|
|
41
|
+
<l:l10n language="ko" href="ko.xml"/>
|
|
42
|
+
<l:l10n language="ky" href="ky.xml"/>
|
|
43
|
+
<l:l10n language="la" href="la.xml"/>
|
|
44
|
+
<l:l10n language="lt" href="lt.xml"/>
|
|
45
|
+
<l:l10n language="lv" href="lv.xml"/>
|
|
46
|
+
<l:l10n language="ml" href="ml.xml"/>
|
|
47
|
+
<l:l10n language="mn" href="mn.xml"/>
|
|
48
|
+
<l:l10n language="mr" href="mr.xml"/>
|
|
49
|
+
<l:l10n language="nb" href="nb.xml"/>
|
|
50
|
+
<l:l10n language="nds" href="nds.xml"/>
|
|
51
|
+
<l:l10n language="nl" href="nl.xml"/>
|
|
52
|
+
<l:l10n language="nn" href="nn.xml"/>
|
|
53
|
+
<l:l10n language="or" href="or.xml"/>
|
|
54
|
+
<l:l10n language="pa" href="pa.xml"/>
|
|
55
|
+
<l:l10n language="pl" href="pl.xml"/>
|
|
56
|
+
<l:l10n language="pt" href="pt.xml"/>
|
|
57
|
+
<l:l10n language="pt_br" href="pt_br.xml"/>
|
|
58
|
+
<l:l10n language="ro" href="ro.xml"/>
|
|
59
|
+
<l:l10n language="ru" href="ru.xml"/>
|
|
60
|
+
<l:l10n language="sk" href="sk.xml"/>
|
|
61
|
+
<l:l10n language="sl" href="sl.xml"/>
|
|
62
|
+
<l:l10n language="sq" href="sq.xml"/>
|
|
63
|
+
<l:l10n language="sr" href="sr.xml"/>
|
|
64
|
+
<l:l10n language="sr_latn" href="sr_Latn.xml"/>
|
|
65
|
+
<l:l10n language="sv" href="sv.xml"/>
|
|
66
|
+
<l:l10n language="ta" href="ta.xml"/>
|
|
67
|
+
<l:l10n language="te" href="te.xml"/>
|
|
68
|
+
<l:l10n language="th" href="th.xml"/>
|
|
69
|
+
<l:l10n language="tl" href="tl.xml"/>
|
|
70
|
+
<l:l10n language="tr" href="tr.xml"/>
|
|
71
|
+
<l:l10n language="uk" href="uk.xml"/>
|
|
72
|
+
<l:l10n language="ur" href="ur.xml"/>
|
|
73
|
+
<l:l10n language="vi" href="vi.xml"/>
|
|
74
|
+
<l:l10n language="xh" href="xh.xml"/>
|
|
75
|
+
<l:l10n language="zh" href="zh.xml"/>
|
|
76
|
+
<l:l10n language="zh_cn" href="zh_cn.xml"/>
|
|
77
|
+
<l:l10n language="zh_tw" href="zh_tw.xml"/>
|
|
78
|
+
</l:i18n>
|
data/xsl/common/l10n.xsl
ADDED
|
@@ -0,0 +1,598 @@
|
|
|
1
|
+
<?xml version='1.0'?>
|
|
2
|
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
3
|
+
xmlns:d="http://docbook.org/ns/docbook"
|
|
4
|
+
xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
|
|
5
|
+
exclude-result-prefixes="l d"
|
|
6
|
+
version='1.0'>
|
|
7
|
+
|
|
8
|
+
<!-- ********************************************************************
|
|
9
|
+
$Id: l10n.xsl 9708 2013-01-22 13:41:24Z kosek $
|
|
10
|
+
********************************************************************
|
|
11
|
+
|
|
12
|
+
This file is part of the XSL DocBook Stylesheet distribution.
|
|
13
|
+
See ../README or http://docbook.sf.net/release/xsl/current/ for
|
|
14
|
+
copyright and other information.
|
|
15
|
+
|
|
16
|
+
This file contains localization templates (for internationalization)
|
|
17
|
+
******************************************************************** -->
|
|
18
|
+
|
|
19
|
+
<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
|
|
20
|
+
<xsl:param name="local.l10n.xml" select="document('')"/>
|
|
21
|
+
<xsl:param name="empty.local.l10n.xml" select="not($local.l10n.xml//l:l10n)"/>
|
|
22
|
+
|
|
23
|
+
<xsl:key name="l10n-lang" match="l:l10n" use="@language"/>
|
|
24
|
+
<xsl:key name="l10n-gentext" match="l:l10n/l:gentext" use="@key"/>
|
|
25
|
+
<xsl:key name="l10n-dingbat" match="l:l10n/l:dingbat" use="@key"/>
|
|
26
|
+
<xsl:key name="l10n-context" match="l:l10n/l:context" use="@name"/>
|
|
27
|
+
<xsl:key name="l10n-template" match="l:l10n/l:context/l:template[not(@style)]" use="concat(../@name, '#', @name)"/>
|
|
28
|
+
<xsl:key name="l10n-template-style" match="l:l10n/l:context/l:template[@style]" use="concat(../@name, '#', @name, '#', @style)"/>
|
|
29
|
+
|
|
30
|
+
<xsl:template name="l10n.language">
|
|
31
|
+
<xsl:param name="target" select="."/>
|
|
32
|
+
<xsl:param name="xref-context" select="false()"/>
|
|
33
|
+
|
|
34
|
+
<xsl:variable name="mc-language">
|
|
35
|
+
<xsl:choose>
|
|
36
|
+
<xsl:when test="$l10n.gentext.language != ''">
|
|
37
|
+
<xsl:value-of select="$l10n.gentext.language"/>
|
|
38
|
+
</xsl:when>
|
|
39
|
+
|
|
40
|
+
<xsl:when test="$xref-context or $l10n.gentext.use.xref.language != 0">
|
|
41
|
+
<!-- can't do this one step: attributes are unordered! -->
|
|
42
|
+
<xsl:variable name="lang-scope"
|
|
43
|
+
select="$target/ancestor-or-self::*
|
|
44
|
+
[@lang or @xml:lang][1]"/>
|
|
45
|
+
<xsl:variable name="lang-attr"
|
|
46
|
+
select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
|
|
47
|
+
<xsl:choose>
|
|
48
|
+
<xsl:when test="string($lang-attr) = ''">
|
|
49
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
50
|
+
</xsl:when>
|
|
51
|
+
<xsl:otherwise>
|
|
52
|
+
<xsl:value-of select="$lang-attr"/>
|
|
53
|
+
</xsl:otherwise>
|
|
54
|
+
</xsl:choose>
|
|
55
|
+
</xsl:when>
|
|
56
|
+
|
|
57
|
+
<xsl:otherwise>
|
|
58
|
+
<!-- can't do this one step: attributes are unordered! -->
|
|
59
|
+
<xsl:variable name="lang-scope"
|
|
60
|
+
select="$target/ancestor-or-self::*
|
|
61
|
+
[@lang or @xml:lang][1]"/>
|
|
62
|
+
<xsl:variable name="lang-attr"
|
|
63
|
+
select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
|
|
64
|
+
|
|
65
|
+
<xsl:choose>
|
|
66
|
+
<xsl:when test="string($lang-attr) = ''">
|
|
67
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
68
|
+
</xsl:when>
|
|
69
|
+
<xsl:otherwise>
|
|
70
|
+
<xsl:value-of select="$lang-attr"/>
|
|
71
|
+
</xsl:otherwise>
|
|
72
|
+
</xsl:choose>
|
|
73
|
+
</xsl:otherwise>
|
|
74
|
+
</xsl:choose>
|
|
75
|
+
</xsl:variable>
|
|
76
|
+
|
|
77
|
+
<xsl:variable name="language" select="translate($mc-language,
|
|
78
|
+
'ABCDEFGHIJKLMNOPQRSTUVWXYZ-',
|
|
79
|
+
'abcdefghijklmnopqrstuvwxyz_')"/>
|
|
80
|
+
|
|
81
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to change context in order to get key work -->
|
|
82
|
+
<xsl:choose>
|
|
83
|
+
<xsl:when test="key('l10n-lang', $language)">
|
|
84
|
+
<xsl:value-of select="$language"/>
|
|
85
|
+
</xsl:when>
|
|
86
|
+
<!-- try just the lang code without country -->
|
|
87
|
+
<xsl:when test="key('l10n-lang', substring-before($language,'_'))">
|
|
88
|
+
<xsl:value-of select="substring-before($language,'_')"/>
|
|
89
|
+
</xsl:when>
|
|
90
|
+
<!-- or use the default -->
|
|
91
|
+
<xsl:otherwise>
|
|
92
|
+
<xsl:message>
|
|
93
|
+
<xsl:text>No localization exists for "</xsl:text>
|
|
94
|
+
<xsl:value-of select="$language"/>
|
|
95
|
+
<xsl:text>" or "</xsl:text>
|
|
96
|
+
<xsl:value-of select="substring-before($language,'_')"/>
|
|
97
|
+
<xsl:text>". Using default "</xsl:text>
|
|
98
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
99
|
+
<xsl:text>".</xsl:text>
|
|
100
|
+
</xsl:message>
|
|
101
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
102
|
+
</xsl:otherwise>
|
|
103
|
+
</xsl:choose>
|
|
104
|
+
</xsl:for-each>
|
|
105
|
+
</xsl:template>
|
|
106
|
+
|
|
107
|
+
<xsl:template name="l10n.language.name">
|
|
108
|
+
<xsl:param name="lang">
|
|
109
|
+
<xsl:call-template name="l10n.language"/>
|
|
110
|
+
</xsl:param>
|
|
111
|
+
|
|
112
|
+
<xsl:for-each select="$l10n.xml">
|
|
113
|
+
<xsl:value-of
|
|
114
|
+
select="document(key('l10n-lang', $lang)/@href)/l:l10n/@english-language-name"/>
|
|
115
|
+
</xsl:for-each>
|
|
116
|
+
</xsl:template>
|
|
117
|
+
|
|
118
|
+
<xsl:template name="language.attribute">
|
|
119
|
+
<xsl:param name="node" select="."/>
|
|
120
|
+
|
|
121
|
+
<xsl:variable name="language">
|
|
122
|
+
<xsl:choose>
|
|
123
|
+
<xsl:when test="$l10n.gentext.language != ''">
|
|
124
|
+
<xsl:value-of select="$l10n.gentext.language"/>
|
|
125
|
+
</xsl:when>
|
|
126
|
+
|
|
127
|
+
<xsl:otherwise>
|
|
128
|
+
<!-- can't do this one step: attributes are unordered! -->
|
|
129
|
+
<xsl:variable name="lang-scope"
|
|
130
|
+
select="$node/ancestor-or-self::*
|
|
131
|
+
[@lang or @xml:lang][1]"/>
|
|
132
|
+
<xsl:variable name="lang-attr"
|
|
133
|
+
select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
|
|
134
|
+
|
|
135
|
+
<xsl:choose>
|
|
136
|
+
<xsl:when test="string($lang-attr) = ''">
|
|
137
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
138
|
+
</xsl:when>
|
|
139
|
+
<xsl:otherwise>
|
|
140
|
+
<xsl:value-of select="$lang-attr"/>
|
|
141
|
+
</xsl:otherwise>
|
|
142
|
+
</xsl:choose>
|
|
143
|
+
</xsl:otherwise>
|
|
144
|
+
</xsl:choose>
|
|
145
|
+
</xsl:variable>
|
|
146
|
+
|
|
147
|
+
<xsl:if test="$language != ''">
|
|
148
|
+
<xsl:attribute name="lang">
|
|
149
|
+
<xsl:choose>
|
|
150
|
+
<xsl:when test="$l10n.lang.value.rfc.compliant != 0">
|
|
151
|
+
<xsl:value-of select="translate($language, '_', '-')"/>
|
|
152
|
+
</xsl:when>
|
|
153
|
+
<xsl:otherwise>
|
|
154
|
+
<xsl:value-of select="$language"/>
|
|
155
|
+
</xsl:otherwise>
|
|
156
|
+
</xsl:choose>
|
|
157
|
+
</xsl:attribute>
|
|
158
|
+
</xsl:if>
|
|
159
|
+
|
|
160
|
+
<!-- FIXME: This is sort of hack, but it was the easiest way to add at least partial support for dir attribute -->
|
|
161
|
+
<xsl:copy-of select="ancestor-or-self::*[@dir][1]/@dir"/>
|
|
162
|
+
</xsl:template>
|
|
163
|
+
|
|
164
|
+
<!-- Duplication of language.attribute template to allow for xml:lang attribute
|
|
165
|
+
creation for XHTML 1.1 and epub target -->
|
|
166
|
+
<xsl:template name="xml.language.attribute">
|
|
167
|
+
<xsl:param name="node" select="."/>
|
|
168
|
+
|
|
169
|
+
<xsl:variable name="language">
|
|
170
|
+
<xsl:choose>
|
|
171
|
+
<xsl:when test="$l10n.gentext.language != ''">
|
|
172
|
+
<xsl:value-of select="$l10n.gentext.language"/>
|
|
173
|
+
</xsl:when>
|
|
174
|
+
|
|
175
|
+
<xsl:otherwise>
|
|
176
|
+
<!-- can't do this one step: attributes are unordered! -->
|
|
177
|
+
<xsl:variable name="lang-scope"
|
|
178
|
+
select="$node/ancestor-or-self::*
|
|
179
|
+
[@lang or @xml:lang][1]"/>
|
|
180
|
+
<xsl:variable name="lang-attr"
|
|
181
|
+
select="($lang-scope/@lang | $lang-scope/@xml:lang)[1]"/>
|
|
182
|
+
|
|
183
|
+
<xsl:choose>
|
|
184
|
+
<xsl:when test="string($lang-attr) = ''">
|
|
185
|
+
<xsl:value-of select="$l10n.gentext.default.language"/>
|
|
186
|
+
</xsl:when>
|
|
187
|
+
<xsl:otherwise>
|
|
188
|
+
<xsl:value-of select="$lang-attr"/>
|
|
189
|
+
</xsl:otherwise>
|
|
190
|
+
</xsl:choose>
|
|
191
|
+
</xsl:otherwise>
|
|
192
|
+
</xsl:choose>
|
|
193
|
+
</xsl:variable>
|
|
194
|
+
|
|
195
|
+
<xsl:if test="$language != ''">
|
|
196
|
+
<xsl:attribute name="xml:lang">
|
|
197
|
+
<xsl:choose>
|
|
198
|
+
<xsl:when test="$l10n.lang.value.rfc.compliant != 0">
|
|
199
|
+
<xsl:value-of select="translate($language, '_', '-')"/>
|
|
200
|
+
</xsl:when>
|
|
201
|
+
<xsl:otherwise>
|
|
202
|
+
<xsl:value-of select="$language"/>
|
|
203
|
+
</xsl:otherwise>
|
|
204
|
+
</xsl:choose>
|
|
205
|
+
</xsl:attribute>
|
|
206
|
+
</xsl:if>
|
|
207
|
+
|
|
208
|
+
<!-- FIXME: This is sort of hack, but it was the easiest way to add at least partial support for dir attribute -->
|
|
209
|
+
<xsl:copy-of select="ancestor-or-self::*[@dir][1]/@dir"/>
|
|
210
|
+
</xsl:template>
|
|
211
|
+
|
|
212
|
+
<xsl:template name="gentext">
|
|
213
|
+
<xsl:param name="key" select="local-name(.)"/>
|
|
214
|
+
<xsl:param name="lang">
|
|
215
|
+
<xsl:call-template name="l10n.language"/>
|
|
216
|
+
</xsl:param>
|
|
217
|
+
|
|
218
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
219
|
+
<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
|
|
220
|
+
<xsl:variable name="local.l10n.gentext"
|
|
221
|
+
select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:gentext[@key=$key])[1]"/>
|
|
222
|
+
|
|
223
|
+
<xsl:variable name="l10n.gentext"
|
|
224
|
+
select="key('l10n-gentext', $key)[1]"/>
|
|
225
|
+
|
|
226
|
+
<xsl:choose>
|
|
227
|
+
<xsl:when test="$local.l10n.gentext">
|
|
228
|
+
<xsl:value-of select="$local.l10n.gentext/@text"/>
|
|
229
|
+
</xsl:when>
|
|
230
|
+
<xsl:when test="$l10n.gentext">
|
|
231
|
+
<xsl:value-of select="$l10n.gentext/@text"/>
|
|
232
|
+
</xsl:when>
|
|
233
|
+
<xsl:otherwise>
|
|
234
|
+
<xsl:message>
|
|
235
|
+
<xsl:text>No "</xsl:text>
|
|
236
|
+
<xsl:value-of select="$lang"/>
|
|
237
|
+
<xsl:text>" localization of "</xsl:text>
|
|
238
|
+
<xsl:value-of select="$key"/>
|
|
239
|
+
<xsl:text>" exists</xsl:text>
|
|
240
|
+
<xsl:choose>
|
|
241
|
+
<xsl:when test="$lang = 'en'">
|
|
242
|
+
<xsl:text>.</xsl:text>
|
|
243
|
+
</xsl:when>
|
|
244
|
+
<xsl:otherwise>
|
|
245
|
+
<xsl:text>; using "en".</xsl:text>
|
|
246
|
+
</xsl:otherwise>
|
|
247
|
+
</xsl:choose>
|
|
248
|
+
</xsl:message>
|
|
249
|
+
|
|
250
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
251
|
+
<xsl:for-each select="document(key('l10n-lang', 'en')/@href)">
|
|
252
|
+
<xsl:value-of select="key('l10n-gentext', $key)[1]/@text"/>
|
|
253
|
+
</xsl:for-each>
|
|
254
|
+
</xsl:for-each>
|
|
255
|
+
</xsl:otherwise>
|
|
256
|
+
</xsl:choose>
|
|
257
|
+
</xsl:for-each>
|
|
258
|
+
</xsl:for-each>
|
|
259
|
+
</xsl:template>
|
|
260
|
+
|
|
261
|
+
<xsl:template name="gentext.element.name">
|
|
262
|
+
<xsl:param name="element.name" select="local-name(.)"/>
|
|
263
|
+
<xsl:param name="lang">
|
|
264
|
+
<xsl:call-template name="l10n.language"/>
|
|
265
|
+
</xsl:param>
|
|
266
|
+
|
|
267
|
+
<xsl:call-template name="gentext">
|
|
268
|
+
<xsl:with-param name="key" select="$element.name"/>
|
|
269
|
+
<xsl:with-param name="lang" select="$lang"/>
|
|
270
|
+
</xsl:call-template>
|
|
271
|
+
</xsl:template>
|
|
272
|
+
|
|
273
|
+
<xsl:template name="gentext.space">
|
|
274
|
+
<xsl:text> </xsl:text>
|
|
275
|
+
</xsl:template>
|
|
276
|
+
|
|
277
|
+
<xsl:template name="gentext.edited.by">
|
|
278
|
+
<xsl:call-template name="gentext">
|
|
279
|
+
<xsl:with-param name="key" select="'Editedby'"/>
|
|
280
|
+
</xsl:call-template>
|
|
281
|
+
</xsl:template>
|
|
282
|
+
|
|
283
|
+
<xsl:template name="gentext.by">
|
|
284
|
+
<xsl:call-template name="gentext">
|
|
285
|
+
<xsl:with-param name="key" select="'by'"/>
|
|
286
|
+
</xsl:call-template>
|
|
287
|
+
</xsl:template>
|
|
288
|
+
|
|
289
|
+
<xsl:template name="gentext.dingbat">
|
|
290
|
+
<xsl:param name="dingbat">bullet</xsl:param>
|
|
291
|
+
<xsl:param name="lang">
|
|
292
|
+
<xsl:call-template name="l10n.language"/>
|
|
293
|
+
</xsl:param>
|
|
294
|
+
|
|
295
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
296
|
+
<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
|
|
297
|
+
<xsl:variable name="local.l10n.dingbat"
|
|
298
|
+
select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang]/l:dingbat[@key=$dingbat])[1]"/>
|
|
299
|
+
|
|
300
|
+
<xsl:variable name="l10n.dingbat"
|
|
301
|
+
select="key('l10n-dingbat', $dingbat)[1]"/>
|
|
302
|
+
|
|
303
|
+
<xsl:choose>
|
|
304
|
+
<xsl:when test="$local.l10n.dingbat">
|
|
305
|
+
<xsl:value-of select="$local.l10n.dingbat/@text"/>
|
|
306
|
+
</xsl:when>
|
|
307
|
+
<xsl:when test="$l10n.dingbat">
|
|
308
|
+
<xsl:value-of select="$l10n.dingbat/@text"/>
|
|
309
|
+
</xsl:when>
|
|
310
|
+
<xsl:otherwise>
|
|
311
|
+
<xsl:message>
|
|
312
|
+
<xsl:text>No "</xsl:text>
|
|
313
|
+
<xsl:value-of select="$lang"/>
|
|
314
|
+
<xsl:text>" localization of dingbat </xsl:text>
|
|
315
|
+
<xsl:value-of select="$dingbat"/>
|
|
316
|
+
<xsl:text> exists; using "en".</xsl:text>
|
|
317
|
+
</xsl:message>
|
|
318
|
+
|
|
319
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
320
|
+
<xsl:for-each select="document(key('l10n-lang', 'en')/@href)">
|
|
321
|
+
<xsl:value-of select="key('l10n-dingbat', $dingbat)[1]/@text"/>
|
|
322
|
+
</xsl:for-each>
|
|
323
|
+
</xsl:for-each>
|
|
324
|
+
</xsl:otherwise>
|
|
325
|
+
</xsl:choose>
|
|
326
|
+
</xsl:for-each>
|
|
327
|
+
</xsl:for-each>
|
|
328
|
+
</xsl:template>
|
|
329
|
+
|
|
330
|
+
<xsl:template name="gentext.startquote">
|
|
331
|
+
<xsl:call-template name="gentext.dingbat">
|
|
332
|
+
<xsl:with-param name="dingbat">startquote</xsl:with-param>
|
|
333
|
+
</xsl:call-template>
|
|
334
|
+
</xsl:template>
|
|
335
|
+
|
|
336
|
+
<xsl:template name="gentext.endquote">
|
|
337
|
+
<xsl:call-template name="gentext.dingbat">
|
|
338
|
+
<xsl:with-param name="dingbat">endquote</xsl:with-param>
|
|
339
|
+
</xsl:call-template>
|
|
340
|
+
</xsl:template>
|
|
341
|
+
|
|
342
|
+
<xsl:template name="gentext.nestedstartquote">
|
|
343
|
+
<xsl:call-template name="gentext.dingbat">
|
|
344
|
+
<xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
|
|
345
|
+
</xsl:call-template>
|
|
346
|
+
</xsl:template>
|
|
347
|
+
|
|
348
|
+
<xsl:template name="gentext.nestedendquote">
|
|
349
|
+
<xsl:call-template name="gentext.dingbat">
|
|
350
|
+
<xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
|
|
351
|
+
</xsl:call-template>
|
|
352
|
+
</xsl:template>
|
|
353
|
+
|
|
354
|
+
<xsl:template name="gentext.nav.prev">
|
|
355
|
+
<xsl:call-template name="gentext">
|
|
356
|
+
<xsl:with-param name="key" select="'nav-prev'"/>
|
|
357
|
+
</xsl:call-template>
|
|
358
|
+
</xsl:template>
|
|
359
|
+
|
|
360
|
+
<xsl:template name="gentext.nav.next">
|
|
361
|
+
<xsl:call-template name="gentext">
|
|
362
|
+
<xsl:with-param name="key" select="'nav-next'"/>
|
|
363
|
+
</xsl:call-template>
|
|
364
|
+
</xsl:template>
|
|
365
|
+
|
|
366
|
+
<xsl:template name="gentext.nav.home">
|
|
367
|
+
<xsl:call-template name="gentext">
|
|
368
|
+
<xsl:with-param name="key" select="'nav-home'"/>
|
|
369
|
+
</xsl:call-template>
|
|
370
|
+
</xsl:template>
|
|
371
|
+
|
|
372
|
+
<xsl:template name="gentext.nav.up">
|
|
373
|
+
<xsl:call-template name="gentext">
|
|
374
|
+
<xsl:with-param name="key" select="'nav-up'"/>
|
|
375
|
+
</xsl:call-template>
|
|
376
|
+
</xsl:template>
|
|
377
|
+
|
|
378
|
+
<!-- ============================================================ -->
|
|
379
|
+
|
|
380
|
+
<xsl:template name="gentext.template">
|
|
381
|
+
<xsl:param name="context" select="'default'"/>
|
|
382
|
+
<xsl:param name="name" select="'default'"/>
|
|
383
|
+
<xsl:param name="origname" select="$name"/>
|
|
384
|
+
<xsl:param name="purpose"/>
|
|
385
|
+
<xsl:param name="xrefstyle"/>
|
|
386
|
+
<xsl:param name="referrer"/>
|
|
387
|
+
<xsl:param name="lang">
|
|
388
|
+
<xsl:call-template name="l10n.language"/>
|
|
389
|
+
</xsl:param>
|
|
390
|
+
<xsl:param name="verbose" select="1"/>
|
|
391
|
+
|
|
392
|
+
<xsl:choose>
|
|
393
|
+
<xsl:when test="$empty.local.l10n.xml">
|
|
394
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
395
|
+
<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
|
|
396
|
+
|
|
397
|
+
<xsl:variable name="localization.node"
|
|
398
|
+
select="key('l10n-lang', $lang)[1]"/>
|
|
399
|
+
|
|
400
|
+
<xsl:if test="count($localization.node) = 0
|
|
401
|
+
and $verbose != 0">
|
|
402
|
+
<xsl:message>
|
|
403
|
+
<xsl:text>No "</xsl:text>
|
|
404
|
+
<xsl:value-of select="$lang"/>
|
|
405
|
+
<xsl:text>" localization exists.</xsl:text>
|
|
406
|
+
</xsl:message>
|
|
407
|
+
</xsl:if>
|
|
408
|
+
|
|
409
|
+
<xsl:variable name="context.node"
|
|
410
|
+
select="key('l10n-context', $context)[1]"/>
|
|
411
|
+
|
|
412
|
+
<xsl:if test="count($context.node) = 0
|
|
413
|
+
and $verbose != 0">
|
|
414
|
+
<xsl:message>
|
|
415
|
+
<xsl:text>No context named "</xsl:text>
|
|
416
|
+
<xsl:value-of select="$context"/>
|
|
417
|
+
<xsl:text>" exists in the "</xsl:text>
|
|
418
|
+
<xsl:value-of select="$lang"/>
|
|
419
|
+
<xsl:text>" localization.</xsl:text>
|
|
420
|
+
</xsl:message>
|
|
421
|
+
</xsl:if>
|
|
422
|
+
|
|
423
|
+
<xsl:for-each select="$context.node">
|
|
424
|
+
<xsl:variable name="template.node"
|
|
425
|
+
select="(key('l10n-template-style', concat($context, '#', $name, '#', $xrefstyle))
|
|
426
|
+
|key('l10n-template', concat($context, '#', $name)))[1]"/>
|
|
427
|
+
|
|
428
|
+
<xsl:choose>
|
|
429
|
+
<xsl:when test="$template.node/@text">
|
|
430
|
+
<xsl:value-of select="$template.node/@text"/>
|
|
431
|
+
</xsl:when>
|
|
432
|
+
<xsl:otherwise>
|
|
433
|
+
<xsl:choose>
|
|
434
|
+
<xsl:when test="contains($name, '/')">
|
|
435
|
+
<xsl:call-template name="gentext.template">
|
|
436
|
+
<xsl:with-param name="context" select="$context"/>
|
|
437
|
+
<xsl:with-param name="name" select="substring-after($name, '/')"/>
|
|
438
|
+
<xsl:with-param name="origname" select="$origname"/>
|
|
439
|
+
<xsl:with-param name="purpose" select="$purpose"/>
|
|
440
|
+
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
|
|
441
|
+
<xsl:with-param name="referrer" select="$referrer"/>
|
|
442
|
+
<xsl:with-param name="lang" select="$lang"/>
|
|
443
|
+
<xsl:with-param name="verbose" select="$verbose"/>
|
|
444
|
+
</xsl:call-template>
|
|
445
|
+
</xsl:when>
|
|
446
|
+
<xsl:when test="$verbose = 0">
|
|
447
|
+
<!-- silence -->
|
|
448
|
+
</xsl:when>
|
|
449
|
+
<xsl:otherwise>
|
|
450
|
+
<xsl:message>
|
|
451
|
+
<xsl:text>No template for "</xsl:text>
|
|
452
|
+
<xsl:value-of select="$origname"/>
|
|
453
|
+
<xsl:text>" (or any of its leaves) exists in the context named "</xsl:text>
|
|
454
|
+
<xsl:value-of select="$context"/>
|
|
455
|
+
<xsl:text>" in the "</xsl:text>
|
|
456
|
+
<xsl:value-of select="$lang"/>
|
|
457
|
+
<xsl:text>" localization.</xsl:text>
|
|
458
|
+
</xsl:message>
|
|
459
|
+
</xsl:otherwise>
|
|
460
|
+
</xsl:choose>
|
|
461
|
+
</xsl:otherwise>
|
|
462
|
+
</xsl:choose>
|
|
463
|
+
</xsl:for-each>
|
|
464
|
+
</xsl:for-each>
|
|
465
|
+
</xsl:for-each>
|
|
466
|
+
</xsl:when>
|
|
467
|
+
<xsl:otherwise>
|
|
468
|
+
<xsl:for-each select="$l10n.xml"> <!-- We need to switch context in order to make key() work -->
|
|
469
|
+
<xsl:for-each select="document(key('l10n-lang', $lang)/@href)">
|
|
470
|
+
|
|
471
|
+
<xsl:variable name="local.localization.node"
|
|
472
|
+
select="($local.l10n.xml//l:i18n/l:l10n[@language=$lang])[1]"/>
|
|
473
|
+
|
|
474
|
+
<xsl:variable name="localization.node"
|
|
475
|
+
select="key('l10n-lang', $lang)[1]"/>
|
|
476
|
+
|
|
477
|
+
<xsl:if test="count($localization.node) = 0
|
|
478
|
+
and count($local.localization.node) = 0
|
|
479
|
+
and $verbose != 0">
|
|
480
|
+
<xsl:message>
|
|
481
|
+
<xsl:text>No "</xsl:text>
|
|
482
|
+
<xsl:value-of select="$lang"/>
|
|
483
|
+
<xsl:text>" localization exists.</xsl:text>
|
|
484
|
+
</xsl:message>
|
|
485
|
+
</xsl:if>
|
|
486
|
+
|
|
487
|
+
<xsl:variable name="local.context.node"
|
|
488
|
+
select="$local.localization.node/l:context[@name=$context]"/>
|
|
489
|
+
|
|
490
|
+
<xsl:variable name="context.node"
|
|
491
|
+
select="key('l10n-context', $context)[1]"/>
|
|
492
|
+
|
|
493
|
+
<xsl:if test="count($context.node) = 0
|
|
494
|
+
and count($local.context.node) = 0
|
|
495
|
+
and $verbose != 0">
|
|
496
|
+
<xsl:message>
|
|
497
|
+
<xsl:text>No context named "</xsl:text>
|
|
498
|
+
<xsl:value-of select="$context"/>
|
|
499
|
+
<xsl:text>" exists in the "</xsl:text>
|
|
500
|
+
<xsl:value-of select="$lang"/>
|
|
501
|
+
<xsl:text>" localization.</xsl:text>
|
|
502
|
+
</xsl:message>
|
|
503
|
+
</xsl:if>
|
|
504
|
+
|
|
505
|
+
<xsl:variable name="local.template.node"
|
|
506
|
+
select="($local.context.node/l:template[@name=$name
|
|
507
|
+
and @style
|
|
508
|
+
and @style=$xrefstyle]
|
|
509
|
+
|$local.context.node/l:template[@name=$name
|
|
510
|
+
and not(@style)])[1]"/>
|
|
511
|
+
|
|
512
|
+
<xsl:choose>
|
|
513
|
+
<xsl:when test="$local.template.node/@text">
|
|
514
|
+
<xsl:value-of select="$local.template.node/@text"/>
|
|
515
|
+
</xsl:when>
|
|
516
|
+
<xsl:otherwise>
|
|
517
|
+
<xsl:for-each select="$context.node">
|
|
518
|
+
<xsl:variable name="template.node"
|
|
519
|
+
select="(key('l10n-template-style', concat($context, '#', $name, '#', $xrefstyle))
|
|
520
|
+
|key('l10n-template', concat($context, '#', $name)))[1]"/>
|
|
521
|
+
|
|
522
|
+
<xsl:choose>
|
|
523
|
+
<xsl:when test="$template.node/@text">
|
|
524
|
+
<xsl:value-of select="$template.node/@text"/>
|
|
525
|
+
</xsl:when>
|
|
526
|
+
<xsl:otherwise>
|
|
527
|
+
<xsl:choose>
|
|
528
|
+
<xsl:when test="contains($name, '/')">
|
|
529
|
+
<xsl:call-template name="gentext.template">
|
|
530
|
+
<xsl:with-param name="context" select="$context"/>
|
|
531
|
+
<xsl:with-param name="name" select="substring-after($name, '/')"/>
|
|
532
|
+
<xsl:with-param name="origname" select="$origname"/>
|
|
533
|
+
<xsl:with-param name="purpose" select="$purpose"/>
|
|
534
|
+
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
|
|
535
|
+
<xsl:with-param name="referrer" select="$referrer"/>
|
|
536
|
+
<xsl:with-param name="lang" select="$lang"/>
|
|
537
|
+
<xsl:with-param name="verbose" select="$verbose"/>
|
|
538
|
+
</xsl:call-template>
|
|
539
|
+
</xsl:when>
|
|
540
|
+
<xsl:when test="$verbose = 0">
|
|
541
|
+
<!-- silence -->
|
|
542
|
+
</xsl:when>
|
|
543
|
+
<xsl:otherwise>
|
|
544
|
+
<xsl:message>
|
|
545
|
+
<xsl:text>No template for "</xsl:text>
|
|
546
|
+
<xsl:value-of select="$origname"/>
|
|
547
|
+
<xsl:text>" (or any of its leaves) exists in the context named "</xsl:text>
|
|
548
|
+
<xsl:value-of select="$context"/>
|
|
549
|
+
<xsl:text>" in the "</xsl:text>
|
|
550
|
+
<xsl:value-of select="$lang"/>
|
|
551
|
+
<xsl:text>" localization.</xsl:text>
|
|
552
|
+
</xsl:message>
|
|
553
|
+
</xsl:otherwise>
|
|
554
|
+
</xsl:choose>
|
|
555
|
+
</xsl:otherwise>
|
|
556
|
+
</xsl:choose>
|
|
557
|
+
</xsl:for-each>
|
|
558
|
+
</xsl:otherwise>
|
|
559
|
+
</xsl:choose>
|
|
560
|
+
</xsl:for-each>
|
|
561
|
+
</xsl:for-each>
|
|
562
|
+
</xsl:otherwise>
|
|
563
|
+
</xsl:choose>
|
|
564
|
+
</xsl:template>
|
|
565
|
+
|
|
566
|
+
<!-- silently test if a gentext template exists -->
|
|
567
|
+
|
|
568
|
+
<xsl:template name="gentext.template.exists">
|
|
569
|
+
<xsl:param name="context" select="'default'"/>
|
|
570
|
+
<xsl:param name="name" select="'default'"/>
|
|
571
|
+
<xsl:param name="origname" select="$name"/>
|
|
572
|
+
<xsl:param name="purpose"/>
|
|
573
|
+
<xsl:param name="xrefstyle"/>
|
|
574
|
+
<xsl:param name="referrer"/>
|
|
575
|
+
<xsl:param name="lang">
|
|
576
|
+
<xsl:call-template name="l10n.language"/>
|
|
577
|
+
</xsl:param>
|
|
578
|
+
|
|
579
|
+
<xsl:variable name="template">
|
|
580
|
+
<xsl:call-template name="gentext.template">
|
|
581
|
+
<xsl:with-param name="context" select="$context"/>
|
|
582
|
+
<xsl:with-param name="name" select="$name"/>
|
|
583
|
+
<xsl:with-param name="origname" select="$origname"/>
|
|
584
|
+
<xsl:with-param name="purpose" select="$purpose"/>
|
|
585
|
+
<xsl:with-param name="xrefstyle" select="$xrefstyle"/>
|
|
586
|
+
<xsl:with-param name="referrer" select="$referrer"/>
|
|
587
|
+
<xsl:with-param name="lang" select="$lang"/>
|
|
588
|
+
<xsl:with-param name="verbose" select="0"/>
|
|
589
|
+
</xsl:call-template>
|
|
590
|
+
</xsl:variable>
|
|
591
|
+
|
|
592
|
+
<xsl:choose>
|
|
593
|
+
<xsl:when test="string-length($template) != 0">1</xsl:when>
|
|
594
|
+
<xsl:otherwise>0</xsl:otherwise>
|
|
595
|
+
</xsl:choose>
|
|
596
|
+
</xsl:template>
|
|
597
|
+
|
|
598
|
+
</xsl:stylesheet>
|