Statistics
| Revision:

root / tmp / org.txm.core / res / org / txm / xml / xsl / tei / odds2 / translate-odd.xsl @ 187

History | View | Annotate | Download (4.5 kB)

1
<?xml version="1.0" encoding="utf-8"?>
2
<!-- 
3
Text Encoding Initiative Consortium XSLT stylesheet family
4
$Date: 2011-09-20 10:47:43 +0100 (Tue, 20 Sep 2011) $, $Revision: 9329 $, $Author: rahtz $
5

    
6
XSL stylesheet to process TEI documents using ODD markup
7

    
8
 
9
##LICENSE
10
--><xsl:stylesheet xmlns:rng="http://relaxng.org/ns/structure/1.0"
11
                xmlns:tei="http://www.tei-c.org/ns/1.0"
12
                xmlns:teix="http://www.tei-c.org/ns/Examples"
13
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
14
                exclude-result-prefixes="tei"
15
                version="2.0">
16
  <xsl:output method="xml" indent="yes" encoding="utf-8"/>
17
  <xsl:param name="verbose"/>
18
  <xsl:param name="lang">es</xsl:param>
19
  <xsl:key name="ELEMENTS" match="element" use="@ident"/>
20
  <xsl:key name="ATTRIBUTES" match="attribute" use="@ident"/>
21
  <xsl:param name="TEISERVER">http://localhost/Query/</xsl:param>
22
  <xsl:param name="I18N">../i18n.xml</xsl:param>
23
  <xsl:variable name="i18n">
24
      <xsl:choose>
25
         <xsl:when test="$I18N=''">
26
            <xsl:value-of select="$TEISERVER"/>
27
            <xsl:text>i18n.xql</xsl:text>
28
         </xsl:when>
29
         <xsl:otherwise>
30
            <xsl:value-of select="$I18N"/>
31
         </xsl:otherwise>
32
      </xsl:choose>
33
  </xsl:variable>
34
  <xsl:template match="/">
35
      <xsl:if test="$verbose='true'">
36
         <xsl:message>Translate database: <xsl:value-of select="$i18n"/>
37
         </xsl:message>
38
      </xsl:if>
39
      <xsl:apply-templates/>
40
  </xsl:template>
41
  <xsl:template match="*">
42
      <xsl:copy>
43
         <xsl:apply-templates select="@*|*|text()|comment()|processing-instruction()"/>
44
      </xsl:copy>
45
  </xsl:template>
46
  <xsl:template match="@*|comment()|text()|processing-instruction()">
47
      <xsl:copy/>
48
  </xsl:template>
49
  <xsl:template match="tei:elementSpec">
50
      <xsl:copy>
51
         <xsl:copy-of select="@*"/>
52
         <xsl:variable name="me" select="@ident"/>
53
         <xsl:if test="not(tei:altIdent)">
54
            <xsl:for-each select="document($i18n)">
55
               <xsl:for-each select="key('ELEMENTS',$me)/equiv[@xml:lang=$lang][not(@value='')]">
56
                  <xsl:if test="$verbose='true'">
57
                     <xsl:message>
58
                        <xsl:value-of select="$me"/> ... <xsl:value-of select="@value"/>
59
                     </xsl:message>
60
                  </xsl:if>
61
                  <altIdent xmlns="http://www.tei-c.org/ns/1.0" type="lang">
62
                     <xsl:value-of select="@value"/>
63
                  </altIdent>
64
               </xsl:for-each>
65
            </xsl:for-each>
66
         </xsl:if>
67
         <xsl:apply-templates select="*|text()|comment()|processing-instruction()"/>
68
      </xsl:copy>
69
  </xsl:template>
70
   <!--
71
  <xsl:template match="tei:elementSpec/tei:desc">
72
    <xsl:variable name="me" select="../@ident"/>
73
    <xsl:variable name="trans">
74
      <xsl:for-each select="document($i18n)">
75
        <xsl:for-each select="key('ELEMENTS',$me)/desc[@xml:lang=$lang]">
76
          <xsl:if test="not(.='.')">
77
            <xsl:if test="$verbose='true'">
78
              <xsl:message><xsl:value-of select="$me"/> ... <xsl:value-of select="."/></xsl:message>
79
            </xsl:if>
80
            <desc xmlns="http://www.tei-c.org/ns/1.0">
81
              <xsl:value-of select="."/>
82
            </desc>
83
          </xsl:if>
84
        </xsl:for-each>
85
      </xsl:for-each>
86
    </xsl:variable>
87
    <xsl:choose>
88
      <xsl:when test="$trans=''">
89
        <xsl:copy-of select="."/>
90
      </xsl:when>
91
      <xsl:otherwise>
92
        <xsl:copy-of select="$trans"/>
93
      </xsl:otherwise>
94
    </xsl:choose>
95
  </xsl:template>
96
-->
97
  <xsl:template match="tei:attDef">
98
      <xsl:copy>
99
         <xsl:copy-of select="@*"/>
100
         <xsl:variable name="me" select="@ident"/>
101
         <xsl:if test="not(tei:altIdent)">
102
            <xsl:for-each select="document($i18n)">
103
               <xsl:for-each select="key('ATTRIBUTES',$me)/equiv[@xml:lang=$lang][not(@value='')]">
104
                  <xsl:if test="$verbose='true'">
105
                     <xsl:message>
106
                        <xsl:value-of select="$me"/> ... <xsl:value-of select="@value"/>
107
                     </xsl:message>
108
                  </xsl:if>
109
                  <altIdent xmlns="http://www.tei-c.org/ns/1.0" type="lang">
110
                     <xsl:value-of select="@value"/>
111
                  </altIdent>
112
               </xsl:for-each>
113
            </xsl:for-each>
114
         </xsl:if>
115
         <xsl:apply-templates select="*|text()|comment()|processing-instruction()"/>
116
      </xsl:copy>
117
  </xsl:template>
118
</xsl:stylesheet>