docbook_xsl_wrapper 0.1.2 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|