1 <?xml version="1.0" encoding="ASCII"?>
2 <!--This file was created automatically by html2xhtml-->
3 <!--from the HTML stylesheets.-->
4 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink" version="1.0">
6 <!-- ********************************************************************
7 $Id: glossary.xsl 9709 2013-01-22 18:56:09Z bobstayton $
8 ********************************************************************
10 This file is part of the XSL DocBook Stylesheet distribution.
11 See ../README or http://docbook.sf.net/release/xsl/current/ for
12 copyright and other information.
14 ******************************************************************** -->
16 <!-- ==================================================================== -->
18 <xsl:template match="glossary">
20 <xsl:variable name="language">
21 <xsl:call-template name="l10n.language"/>
24 <xsl:variable name="lowercase">
25 <xsl:call-template name="gentext">
26 <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
30 <xsl:variable name="uppercase">
31 <xsl:call-template name="gentext">
32 <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
36 <xsl:call-template name="id.warning"/>
38 <xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
39 <xsl:apply-templates select="." mode="common.html.attributes"/>
40 <xsl:call-template name="id.attribute">
41 <xsl:with-param name="conditional" select="0"/>
44 <xsl:call-template name="glossary.titlepage"/>
47 <xsl:when test="glossdiv">
48 <xsl:apply-templates select="(glossdiv[1]/preceding-sibling::*)"/>
50 <xsl:when test="glossentry">
51 <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
54 <xsl:apply-templates/>
59 <xsl:when test="glossdiv">
60 <xsl:apply-templates select="glossdiv"/>
62 <xsl:when test="glossentry">
65 <xsl:when test="$glossary.sort != 0">
66 <xsl:apply-templates select="glossentry">
67 <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
68 </xsl:apply-templates>
71 <xsl:apply-templates select="glossentry"/>
77 <!-- empty glossary -->
81 <xsl:if test="not(parent::article)">
82 <xsl:call-template name="process.footnotes"/>
87 <xsl:template match="glossary/glossaryinfo"/>
88 <xsl:template match="glossary/info"/>
89 <xsl:template match="glossary/title"/>
90 <xsl:template match="glossary/subtitle"/>
91 <xsl:template match="glossary/titleabbrev"/>
93 <!-- ==================================================================== -->
95 <xsl:template match="glosslist">
97 <xsl:variable name="language">
98 <xsl:call-template name="l10n.language"/>
101 <xsl:variable name="lowercase">
102 <xsl:call-template name="gentext">
103 <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
107 <xsl:variable name="uppercase">
108 <xsl:call-template name="gentext">
109 <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
114 <xsl:apply-templates select="." mode="common.html.attributes"/>
115 <xsl:call-template name="id.attribute"/>
116 <xsl:call-template name="anchor"/>
117 <xsl:if test="blockinfo/title|info/title|title">
118 <xsl:call-template name="formal.object.heading"/>
122 <xsl:when test="$glossary.sort != 0">
123 <xsl:apply-templates select="glossentry">
124 <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
125 </xsl:apply-templates>
128 <xsl:apply-templates select="glossentry"/>
135 <!-- ==================================================================== -->
137 <xsl:template match="glossdiv">
139 <xsl:variable name="language">
140 <xsl:call-template name="l10n.language"/>
143 <xsl:variable name="lowercase">
144 <xsl:call-template name="gentext">
145 <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
149 <xsl:variable name="uppercase">
150 <xsl:call-template name="gentext">
151 <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
155 <xsl:call-template name="id.warning"/>
158 <xsl:apply-templates select="." mode="common.html.attributes"/>
159 <xsl:call-template name="id.attribute">
160 <xsl:with-param name="conditional" select="0"/>
162 <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
166 <xsl:when test="$glossary.sort != 0">
167 <xsl:apply-templates select="glossentry">
168 <xsl:sort lang="{$language}" select="translate(glossterm, $lowercase, $uppercase)"/>
169 </xsl:apply-templates>
172 <xsl:apply-templates select="glossentry"/>
179 <xsl:template match="glossdiv/title">
181 <xsl:apply-templates select="." mode="common.html.attributes"/>
182 <xsl:apply-templates/>
186 <!-- ==================================================================== -->
190 GlossTerm, Acronym?, Abbrev?,
193 (GlossSee | GlossDef+)
196 <xsl:template match="glossentry">
198 <xsl:when test="$glossentry.show.acronym = 'primary'">
200 <xsl:call-template name="id.attribute">
201 <xsl:with-param name="conditional">
203 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
204 <xsl:otherwise>1</xsl:otherwise>
208 <xsl:call-template name="anchor">
209 <xsl:with-param name="conditional">
211 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
212 <xsl:otherwise>1</xsl:otherwise>
218 <xsl:when test="acronym|abbrev">
219 <xsl:apply-templates select="acronym|abbrev"/>
220 <xsl:text> (</xsl:text>
221 <xsl:apply-templates select="glossterm"/>
222 <xsl:text>)</xsl:text>
225 <xsl:apply-templates select="glossterm"/>
230 <xsl:when test="$glossentry.show.acronym = 'yes'">
232 <xsl:call-template name="id.attribute">
233 <xsl:with-param name="conditional">
235 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
236 <xsl:otherwise>1</xsl:otherwise>
240 <xsl:call-template name="anchor">
241 <xsl:with-param name="conditional">
243 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
244 <xsl:otherwise>1</xsl:otherwise>
249 <xsl:apply-templates select="glossterm"/>
251 <xsl:if test="acronym|abbrev">
252 <xsl:text> (</xsl:text>
253 <xsl:apply-templates select="acronym|abbrev"/>
254 <xsl:text>)</xsl:text>
260 <xsl:call-template name="id.attribute">
261 <xsl:with-param name="conditional">
263 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
264 <xsl:otherwise>1</xsl:otherwise>
268 <xsl:call-template name="anchor">
269 <xsl:with-param name="conditional">
271 <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
272 <xsl:otherwise>1</xsl:otherwise>
277 <xsl:apply-templates select="glossterm"/>
282 <xsl:apply-templates select="indexterm|revhistory|glosssee|glossdef"/>
285 <xsl:template match="glossentry/glossterm">
287 <xsl:apply-templates select="." mode="common.html.attributes"/>
288 <xsl:call-template name="id.attribute"/>
289 <xsl:call-template name="anchor"/>
290 <xsl:apply-templates/>
292 <xsl:if test="following-sibling::glossterm">, </xsl:if>
295 <xsl:template match="glossentry/acronym">
296 <xsl:apply-templates/>
297 <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
300 <xsl:template match="glossentry/abbrev">
301 <xsl:apply-templates/>
302 <xsl:if test="following-sibling::acronym|following-sibling::abbrev">, </xsl:if>
305 <xsl:template match="glossentry/revhistory">
308 <xsl:template match="glossentry/glosssee">
309 <xsl:variable name="otherterm" select="@otherterm"/>
310 <xsl:variable name="targets" select="key('id', $otherterm)"/>
311 <xsl:variable name="target" select="$targets[1]"/>
312 <xsl:variable name="xlink" select="@xlink:href"/>
316 <xsl:variable name="template">
317 <xsl:call-template name="gentext.template">
318 <xsl:with-param name="context" select="'glossary'"/>
319 <xsl:with-param name="name" select="'see'"/>
323 <xsl:variable name="title">
325 <xsl:when test="$target">
327 <xsl:apply-templates select="." mode="common.html.attributes"/>
328 <xsl:call-template name="id.attribute"/>
329 <xsl:attribute name="href">
330 <xsl:call-template name="href.target">
331 <xsl:with-param name="object" select="$target"/>
334 <xsl:apply-templates select="$target" mode="xref-to"/>
337 <xsl:when test="$xlink">
338 <xsl:call-template name="simple.xlink">
339 <xsl:with-param name="content">
340 <xsl:apply-templates/>
344 <xsl:when test="$otherterm != '' and not($target)">
346 <xsl:text>Warning: glosssee @otherterm reference not found: </xsl:text>
347 <xsl:value-of select="$otherterm"/>
349 <xsl:apply-templates/>
352 <xsl:apply-templates/>
357 <xsl:call-template name="substitute-markup">
358 <xsl:with-param name="template" select="$template"/>
359 <xsl:with-param name="title" select="$title"/>
365 <xsl:template match="glossentry/glossdef">
367 <xsl:apply-templates select="." mode="common.html.attributes"/>
368 <xsl:call-template name="id.attribute"/>
369 <xsl:call-template name="anchor"/>
370 <xsl:apply-templates select="*[local-name(.) != 'glossseealso']"/>
371 <xsl:if test="glossseealso">
373 <xsl:variable name="template">
374 <xsl:call-template name="gentext.template">
375 <xsl:with-param name="context" select="'glossary'"/>
376 <xsl:with-param name="name" select="'seealso'"/>
379 <xsl:variable name="title">
380 <xsl:apply-templates select="glossseealso"/>
382 <xsl:call-template name="substitute-markup">
383 <xsl:with-param name="template" select="$template"/>
384 <xsl:with-param name="title" select="$title"/>
391 <xsl:template match="glossseealso">
392 <xsl:variable name="otherterm" select="@otherterm"/>
393 <xsl:variable name="targets" select="key('id', $otherterm)"/>
394 <xsl:variable name="target" select="$targets[1]"/>
395 <xsl:variable name="xlink" select="@xlink:href"/>
398 <xsl:when test="$target">
400 <xsl:apply-templates select="." mode="common.html.attributes"/>
401 <xsl:call-template name="id.attribute"/>
402 <xsl:attribute name="href">
403 <xsl:call-template name="href.target">
404 <xsl:with-param name="object" select="$target"/>
407 <xsl:apply-templates select="$target" mode="xref-to"/>
410 <xsl:when test="$xlink">
411 <xsl:call-template name="simple.xlink">
412 <xsl:with-param name="content">
413 <xsl:apply-templates/>
417 <xsl:when test="$otherterm != '' and not($target)">
419 <xsl:text>Warning: glossseealso @otherterm reference not found: </xsl:text>
420 <xsl:value-of select="$otherterm"/>
422 <xsl:apply-templates/>
425 <xsl:apply-templates/>
430 <xsl:when test="position() = last()"/>
432 <xsl:call-template name="gentext.template">
433 <xsl:with-param name="context" select="'glossary'"/>
434 <xsl:with-param name="name" select="'seealso-separator'"/>
440 <!-- ==================================================================== -->
442 <!-- Glossary collection -->
444 <xsl:template match="glossary[@role='auto']" priority="2">
446 <xsl:variable name="language">
447 <xsl:call-template name="l10n.language"/>
450 <xsl:variable name="lowercase">
451 <xsl:call-template name="gentext">
452 <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
456 <xsl:variable name="uppercase">
457 <xsl:call-template name="gentext">
458 <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
462 <xsl:variable name="terms" select="//glossterm[not(parent::glossdef)]|//firstterm"/>
463 <xsl:variable name="collection" select="document($glossary.collection, .)"/>
465 <xsl:call-template name="id.warning"/>
467 <xsl:if test="$glossary.collection = ''">
469 <xsl:text>Warning: processing automatic glossary </xsl:text>
470 <xsl:text>without a glossary.collection file.</xsl:text>
474 <xsl:if test="not($collection) and $glossary.collection != ''">
476 <xsl:text>Warning: processing automatic glossary but unable to </xsl:text>
477 <xsl:text>open glossary.collection file '</xsl:text>
478 <xsl:value-of select="$glossary.collection"/>
479 <xsl:text>'</xsl:text>
484 <xsl:apply-templates select="." mode="common.html.attributes"/>
485 <xsl:call-template name="id.attribute">
486 <xsl:with-param name="conditional" select="0"/>
489 <xsl:call-template name="glossary.titlepage"/>
492 <xsl:when test="glossdiv and $collection//glossdiv">
493 <xsl:for-each select="$collection//glossdiv">
494 <!-- first see if there are any in this div -->
495 <xsl:variable name="exist.test">
496 <xsl:for-each select="glossentry">
497 <xsl:variable name="cterm" select="glossterm"/>
498 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
499 <xsl:value-of select="glossterm"/>
504 <xsl:if test="$exist.test != ''">
505 <xsl:apply-templates select="." mode="auto-glossary">
506 <xsl:with-param name="terms" select="$terms"/>
507 </xsl:apply-templates>
514 <xsl:when test="$glossary.sort != 0">
515 <xsl:for-each select="$collection//glossentry">
516 <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
517 <xsl:variable name="cterm" select="glossterm"/>
518 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
519 <xsl:apply-templates select="." mode="auto-glossary"/>
524 <xsl:for-each select="$collection//glossentry">
525 <xsl:variable name="cterm" select="glossterm"/>
526 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
527 <xsl:apply-templates select="." mode="auto-glossary"/>
536 <xsl:if test="not(parent::article)">
537 <xsl:call-template name="process.footnotes"/>
542 <xsl:template match="*" mode="auto-glossary">
543 <!-- pop back out to the default mode for most elements -->
544 <xsl:apply-templates select="."/>
547 <xsl:template match="glossdiv" mode="auto-glossary">
548 <xsl:param name="terms" select="."/>
551 <xsl:variable name="language">
552 <xsl:call-template name="l10n.language"/>
555 <xsl:variable name="lowercase">
556 <xsl:call-template name="gentext">
557 <xsl:with-param name="key">normalize.sort.input</xsl:with-param>
561 <xsl:variable name="uppercase">
562 <xsl:call-template name="gentext">
563 <xsl:with-param name="key">normalize.sort.output</xsl:with-param>
569 <xsl:apply-templates select="." mode="common.html.attributes"/>
570 <xsl:call-template name="id.attribute">
571 <xsl:with-param name="conditional" select="0"/>
573 <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
577 <xsl:when test="$glossary.sort != 0">
578 <xsl:for-each select="glossentry">
579 <xsl:sort lang="{$language}" select="normalize-space(translate(concat(@sortas, glossterm[not(parent::glossentry/@sortas) or parent::glossentry/@sortas = '']), 'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ', 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'))"/>
580 <xsl:variable name="cterm" select="glossterm"/>
581 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
582 <xsl:apply-templates select="." mode="auto-glossary"/>
587 <xsl:for-each select="glossentry">
588 <xsl:variable name="cterm" select="glossterm"/>
589 <xsl:if test="$terms[@baseform = $cterm or . = $cterm]">
590 <xsl:apply-templates select="." mode="auto-glossary"/>
599 <!-- ==================================================================== -->