metanorma-bipm 2.0.3 → 2.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6608e517d958535d3cfc0651e03e5dd2d196a09e07eda5a4ea4c0e9586da995e
4
- data.tar.gz: 0635aeea23d9a3441dc24d58ada757b3b1bb9495e4918ebdf2075a94dc7d0837
3
+ metadata.gz: d9363dacba25ed2d26871f71776051581988984f4c2e175f81c0babe8cd0fe9d
4
+ data.tar.gz: d63397fde6cc30edf6dc182a721ecf4c96f7ccf640e014740d444928f32f8be3
5
5
  SHA512:
6
- metadata.gz: 51abe1cb30e3db2d4f6da5cc0a8b8898c6dc2500ba0ec084488d5886380ec68bffeaea98d63f3daeaf4a88c6bcdd492bc1872481bb3a51b4b2b6a1f281ac9629
7
- data.tar.gz: '096cff97169aa59da077d16808d61d95a915f3985907af2e2d8adb6c59b90f7643473ae20e7dfdffc21e84668a8c9c860976e74c7f03b526272933c4cbb46111'
6
+ metadata.gz: 43c2bc9dc4b36033c5e82a9f56067ffec1fc726e3cc766025d7ac88d22d1cf9fb5aa13a2b55faedcb86fb4bef947478bf58722c56241385c8f6e28071871b1f2
7
+ data.tar.gz: b3754a47485db173cb13bea7c8ffb89874cf7d650ac7cf30b70e50fa6f9b54ec5f329de84d8ea9b4598f59ae648ff54d21fc29f9e89e447f9a81bb57b6e031e3
@@ -33,10 +33,16 @@ module IsoDoc
33
33
  end
34
34
  end
35
35
 
36
- def render_identifier(id)
36
+ def omit_docid_prefix(prefix)
37
+ return true if %w(BIPM).include? prefix
38
+
39
+ super
40
+ end
41
+
42
+ def render_identifier(ident)
37
43
  ret = super
38
- ret[1] = nil if !id[1].nil? && id[1]["type"] == "BIPM"
39
- ret[2] = nil if !id[2].nil? && id[2]["type"] == "BIPM"
44
+ ret[:sdo] = ret[:sdo]&.sub(/^(BIPM) (PV|CR) (\d.*)$/,
45
+ "\\1 <strong>\\2</strong>, \\3")
40
46
  ret
41
47
  end
42
48
 
@@ -3867,6 +3867,10 @@
3867
3867
  <xsl:text>Édition </xsl:text>
3868
3868
  </title-edition>
3869
3869
 
3870
+ <title-edition lang="ru">
3871
+ <xsl:text>Издание </xsl:text>
3872
+ </title-edition>
3873
+
3870
3874
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
3871
3875
  <title-toc lang="en">
3872
3876
 
@@ -3897,7 +3901,11 @@
3897
3901
 
3898
3902
  <xsl:text>Partie #</xsl:text>
3899
3903
 
3900
- </title-part>
3904
+ </title-part>
3905
+ <title-part lang="ru">
3906
+
3907
+
3908
+ </title-part>
3901
3909
  <title-part lang="zh">第 # 部分:</title-part>
3902
3910
 
3903
3911
  <title-subpart lang="en">Sub-part #</title-subpart>
@@ -3913,6 +3921,7 @@
3913
3921
 
3914
3922
  <title-summary lang="en">Summary</title-summary>
3915
3923
 
3924
+ <title-continued lang="ru">(продолжение)</title-continued>
3916
3925
  <title-continued lang="en">(continued)</title-continued>
3917
3926
  <title-continued lang="fr">(continué)</title-continued>
3918
3927
 
@@ -4643,13 +4652,19 @@
4643
4652
  </xsl:attribute-set><xsl:variable name="color-added-text">
4644
4653
  <xsl:text>rgb(0, 255, 0)</xsl:text>
4645
4654
  </xsl:variable><xsl:attribute-set name="add-style">
4646
- <xsl:attribute name="color">red</xsl:attribute>
4647
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
4648
- <!-- <xsl:attribute name="color">black</xsl:attribute>
4649
- <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
4650
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
4651
- <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
4652
- </xsl:attribute-set><xsl:variable name="color-deleted-text">
4655
+
4656
+ <xsl:attribute name="color">red</xsl:attribute>
4657
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
4658
+ <!-- <xsl:attribute name="color">black</xsl:attribute>
4659
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
4660
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
4661
+ <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
4662
+
4663
+ </xsl:attribute-set><xsl:variable name="add-style">
4664
+ <add-style xsl:use-attribute-sets="add-style"/>
4665
+ </xsl:variable><xsl:template name="append_add-style">
4666
+ <xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
4667
+ </xsl:template><xsl:variable name="color-deleted-text">
4653
4668
  <xsl:text>red</xsl:text>
4654
4669
  </xsl:variable><xsl:attribute-set name="del-style">
4655
4670
  <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
@@ -5095,14 +5110,42 @@
5095
5110
 
5096
5111
 
5097
5112
  </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
5113
+ <xsl:variable name="nodes_preface_">
5114
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
5115
+ <node id="{@id}"/>
5116
+ </xsl:for-each>
5117
+ </xsl:variable>
5118
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
5119
+
5098
5120
  <xsl:for-each select="/*/*[local-name()='preface']/*">
5099
5121
  <xsl:sort select="@displayorder" data-type="number"/>
5122
+
5123
+ <!-- process Section's title -->
5124
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
5125
+ <xsl:if test="$preceding-sibling_id != ''">
5126
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
5127
+ </xsl:if>
5128
+
5100
5129
  <xsl:apply-templates select="." mode="contents"/>
5101
5130
  </xsl:for-each>
5102
5131
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
5103
5132
 
5133
+ <xsl:variable name="nodes_sections_">
5134
+ <xsl:for-each select="/*/*[local-name()='sections']/*">
5135
+ <node id="{@id}"/>
5136
+ </xsl:for-each>
5137
+ </xsl:variable>
5138
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
5139
+
5104
5140
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
5105
5141
  <xsl:sort select="@displayorder" data-type="number"/>
5142
+
5143
+ <!-- process Section's title -->
5144
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
5145
+ <xsl:if test="$preceding-sibling_id != ''">
5146
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
5147
+ </xsl:if>
5148
+
5106
5149
  <xsl:apply-templates select="." mode="contents"/>
5107
5150
  </xsl:for-each>
5108
5151
 
@@ -5251,7 +5294,7 @@
5251
5294
  </xsl:call-template>
5252
5295
  </xsl:if>
5253
5296
  </xsl:variable>
5254
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
5297
+ <!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
5255
5298
 
5256
5299
 
5257
5300
  <xsl:variable name="margin-side">
@@ -5533,7 +5576,7 @@
5533
5576
  <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
5534
5577
  <!-- 2009 thinspace -->
5535
5578
  <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
5536
- <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/>
5579
+ <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​­', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
5537
5580
  </xsl:call-template>
5538
5581
  </xsl:variable>
5539
5582
  <xsl:variable name="max_length">
@@ -7253,6 +7296,9 @@
7253
7296
  </fo:inline>
7254
7297
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
7255
7298
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
7299
+ <xsl:if test="parent::*[local-name() = 'add']">
7300
+ <xsl:call-template name="append_add-style"/>
7301
+ </xsl:if>
7256
7302
  <xsl:apply-templates/>
7257
7303
  </fo:basic-link>
7258
7304
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -7362,6 +7408,13 @@
7362
7408
 
7363
7409
 
7364
7410
 
7411
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
7412
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
7413
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
7414
+ <xsl:call-template name="append_add-style"/>
7415
+ </xsl:if>
7416
+
7417
+
7365
7418
  <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
7366
7419
  <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
7367
7420
  <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
@@ -7400,6 +7453,12 @@
7400
7453
 
7401
7454
 
7402
7455
 
7456
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
7457
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
7458
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
7459
+ <xsl:call-template name="append_add-style"/>
7460
+ </xsl:if>
7461
+
7403
7462
  <xsl:apply-templates select="*[local-name() = 'name']"/>
7404
7463
 
7405
7464
  </fo:inline>
@@ -7453,6 +7512,7 @@
7453
7512
  </fo:block>
7454
7513
  </xsl:template><xsl:template match="*[local-name() = 'term']">
7455
7514
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
7515
+
7456
7516
 
7457
7517
 
7458
7518
 
@@ -7893,7 +7953,11 @@
7893
7953
  <xsl:value-of select="."/>
7894
7954
  </xsl:template><xsl:template match="node()" mode="contents">
7895
7955
  <xsl:apply-templates mode="contents"/>
7896
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents">
7956
+ </xsl:template><xsl:template match="*[local-name() = 'preface' or local-name() = 'sections']/*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" mode="contents_no_displayorder">
7957
+ <xsl:call-template name="contents_section-title"/>
7958
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
7959
+ <xsl:call-template name="contents_section-title"/>
7960
+ </xsl:template><xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
7897
7961
  <xsl:variable name="level">
7898
7962
  <xsl:call-template name="getLevel">
7899
7963
  <xsl:with-param name="depth" select="@depth"/>
@@ -9223,7 +9287,7 @@
9223
9287
 
9224
9288
 
9225
9289
 
9226
-
9290
+
9227
9291
  <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
9228
9292
  </fo:list-block>
9229
9293
  <!-- <xsl:for-each select="./iho:note">
@@ -9241,6 +9305,11 @@
9241
9305
 
9242
9306
 
9243
9307
 
9308
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
9309
+ <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
9310
+ <xsl:call-template name="append_add-style"/>
9311
+ </xsl:if>
9312
+
9244
9313
  <xsl:call-template name="getListItemFormat"/>
9245
9314
  </fo:block>
9246
9315
  </fo:list-item-label>
@@ -10337,53 +10406,153 @@
10337
10406
  <xsl:param name="first"/>
10338
10407
  <xsl:if test="$number != ''">
10339
10408
  <xsl:variable name="words">
10340
- <words>
10341
- <word cardinal="1">One-</word>
10342
- <word ordinal="1">First </word>
10343
- <word cardinal="2">Two-</word>
10344
- <word ordinal="2">Second </word>
10345
- <word cardinal="3">Three-</word>
10346
- <word ordinal="3">Third </word>
10347
- <word cardinal="4">Four-</word>
10348
- <word ordinal="4">Fourth </word>
10349
- <word cardinal="5">Five-</word>
10350
- <word ordinal="5">Fifth </word>
10351
- <word cardinal="6">Six-</word>
10352
- <word ordinal="6">Sixth </word>
10353
- <word cardinal="7">Seven-</word>
10354
- <word ordinal="7">Seventh </word>
10355
- <word cardinal="8">Eight-</word>
10356
- <word ordinal="8">Eighth </word>
10357
- <word cardinal="9">Nine-</word>
10358
- <word ordinal="9">Ninth </word>
10359
- <word ordinal="10">Tenth </word>
10360
- <word ordinal="11">Eleventh </word>
10361
- <word ordinal="12">Twelfth </word>
10362
- <word ordinal="13">Thirteenth </word>
10363
- <word ordinal="14">Fourteenth </word>
10364
- <word ordinal="15">Fifteenth </word>
10365
- <word ordinal="16">Sixteenth </word>
10366
- <word ordinal="17">Seventeenth </word>
10367
- <word ordinal="18">Eighteenth </word>
10368
- <word ordinal="19">Nineteenth </word>
10369
- <word cardinal="20">Twenty-</word>
10370
- <word ordinal="20">Twentieth </word>
10371
- <word cardinal="30">Thirty-</word>
10372
- <word ordinal="30">Thirtieth </word>
10373
- <word cardinal="40">Forty-</word>
10374
- <word ordinal="40">Fortieth </word>
10375
- <word cardinal="50">Fifty-</word>
10376
- <word ordinal="50">Fiftieth </word>
10377
- <word cardinal="60">Sixty-</word>
10378
- <word ordinal="60">Sixtieth </word>
10379
- <word cardinal="70">Seventy-</word>
10380
- <word ordinal="70">Seventieth </word>
10381
- <word cardinal="80">Eighty-</word>
10382
- <word ordinal="80">Eightieth </word>
10383
- <word cardinal="90">Ninety-</word>
10384
- <word ordinal="90">Ninetieth </word>
10385
- <word cardinal="100">Hundred-</word>
10386
- <word ordinal="100">Hundredth </word>
10409
+ <words>
10410
+ <xsl:choose>
10411
+ <xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
10412
+ <word cardinal="1">Une-</word>
10413
+ <word ordinal="1">Première </word>
10414
+ <word cardinal="2">Deux-</word>
10415
+ <word ordinal="2">Seconde </word>
10416
+ <word cardinal="3">Trois-</word>
10417
+ <word ordinal="3">Tierce </word>
10418
+ <word cardinal="4">Quatre-</word>
10419
+ <word ordinal="4">Quatrième </word>
10420
+ <word cardinal="5">Cinq-</word>
10421
+ <word ordinal="5">Cinquième </word>
10422
+ <word cardinal="6">Six-</word>
10423
+ <word ordinal="6">Sixième </word>
10424
+ <word cardinal="7">Sept-</word>
10425
+ <word ordinal="7">Septième </word>
10426
+ <word cardinal="8">Huit-</word>
10427
+ <word ordinal="8">Huitième </word>
10428
+ <word cardinal="9">Neuf-</word>
10429
+ <word ordinal="9">Neuvième </word>
10430
+ <word ordinal="10">Dixième </word>
10431
+ <word ordinal="11">Onzième </word>
10432
+ <word ordinal="12">Douzième </word>
10433
+ <word ordinal="13">Treizième </word>
10434
+ <word ordinal="14">Quatorzième </word>
10435
+ <word ordinal="15">Quinzième </word>
10436
+ <word ordinal="16">Seizième </word>
10437
+ <word ordinal="17">Dix-septième </word>
10438
+ <word ordinal="18">Dix-huitième </word>
10439
+ <word ordinal="19">Dix-neuvième </word>
10440
+ <word cardinal="20">Vingt-</word>
10441
+ <word ordinal="20">Vingtième </word>
10442
+ <word cardinal="30">Trente-</word>
10443
+ <word ordinal="30">Trentième </word>
10444
+ <word cardinal="40">Quarante-</word>
10445
+ <word ordinal="40">Quarantième </word>
10446
+ <word cardinal="50">Cinquante-</word>
10447
+ <word ordinal="50">Cinquantième </word>
10448
+ <word cardinal="60">Soixante-</word>
10449
+ <word ordinal="60">Soixantième </word>
10450
+ <word cardinal="70">Septante-</word>
10451
+ <word ordinal="70">Septantième </word>
10452
+ <word cardinal="80">Huitante-</word>
10453
+ <word ordinal="80">Huitantième </word>
10454
+ <word cardinal="90">Nonante-</word>
10455
+ <word ordinal="90">Nonantième </word>
10456
+ <word cardinal="100">Cent-</word>
10457
+ <word ordinal="100">Centième </word>
10458
+ </xsl:when>
10459
+ <xsl:when test="$lang = 'ru'">
10460
+ <word cardinal="1">Одна-</word>
10461
+ <word ordinal="1">Первое </word>
10462
+ <word cardinal="2">Две-</word>
10463
+ <word ordinal="2">Второе </word>
10464
+ <word cardinal="3">Три-</word>
10465
+ <word ordinal="3">Третье </word>
10466
+ <word cardinal="4">Четыре-</word>
10467
+ <word ordinal="4">Четвертое </word>
10468
+ <word cardinal="5">Пять-</word>
10469
+ <word ordinal="5">Пятое </word>
10470
+ <word cardinal="6">Шесть-</word>
10471
+ <word ordinal="6">Шестое </word>
10472
+ <word cardinal="7">Семь-</word>
10473
+ <word ordinal="7">Седьмое </word>
10474
+ <word cardinal="8">Восемь-</word>
10475
+ <word ordinal="8">Восьмое </word>
10476
+ <word cardinal="9">Девять-</word>
10477
+ <word ordinal="9">Девятое </word>
10478
+ <word ordinal="10">Десятое </word>
10479
+ <word ordinal="11">Одиннадцатое </word>
10480
+ <word ordinal="12">Двенадцатое </word>
10481
+ <word ordinal="13">Тринадцатое </word>
10482
+ <word ordinal="14">Четырнадцатое </word>
10483
+ <word ordinal="15">Пятнадцатое </word>
10484
+ <word ordinal="16">Шестнадцатое </word>
10485
+ <word ordinal="17">Семнадцатое </word>
10486
+ <word ordinal="18">Восемнадцатое </word>
10487
+ <word ordinal="19">Девятнадцатое </word>
10488
+ <word cardinal="20">Двадцать-</word>
10489
+ <word ordinal="20">Двадцатое </word>
10490
+ <word cardinal="30">Тридцать-</word>
10491
+ <word ordinal="30">Тридцатое </word>
10492
+ <word cardinal="40">Сорок-</word>
10493
+ <word ordinal="40">Сороковое </word>
10494
+ <word cardinal="50">Пятьдесят-</word>
10495
+ <word ordinal="50">Пятидесятое </word>
10496
+ <word cardinal="60">Шестьдесят-</word>
10497
+ <word ordinal="60">Шестидесятое </word>
10498
+ <word cardinal="70">Семьдесят-</word>
10499
+ <word ordinal="70">Семидесятое </word>
10500
+ <word cardinal="80">Восемьдесят-</word>
10501
+ <word ordinal="80">Восьмидесятое </word>
10502
+ <word cardinal="90">Девяносто-</word>
10503
+ <word ordinal="90">Девяностое </word>
10504
+ <word cardinal="100">Сто-</word>
10505
+ <word ordinal="100">Сотое </word>
10506
+ </xsl:when>
10507
+ <xsl:otherwise> <!-- default english -->
10508
+ <word cardinal="1">One-</word>
10509
+ <word ordinal="1">First </word>
10510
+ <word cardinal="2">Two-</word>
10511
+ <word ordinal="2">Second </word>
10512
+ <word cardinal="3">Three-</word>
10513
+ <word ordinal="3">Third </word>
10514
+ <word cardinal="4">Four-</word>
10515
+ <word ordinal="4">Fourth </word>
10516
+ <word cardinal="5">Five-</word>
10517
+ <word ordinal="5">Fifth </word>
10518
+ <word cardinal="6">Six-</word>
10519
+ <word ordinal="6">Sixth </word>
10520
+ <word cardinal="7">Seven-</word>
10521
+ <word ordinal="7">Seventh </word>
10522
+ <word cardinal="8">Eight-</word>
10523
+ <word ordinal="8">Eighth </word>
10524
+ <word cardinal="9">Nine-</word>
10525
+ <word ordinal="9">Ninth </word>
10526
+ <word ordinal="10">Tenth </word>
10527
+ <word ordinal="11">Eleventh </word>
10528
+ <word ordinal="12">Twelfth </word>
10529
+ <word ordinal="13">Thirteenth </word>
10530
+ <word ordinal="14">Fourteenth </word>
10531
+ <word ordinal="15">Fifteenth </word>
10532
+ <word ordinal="16">Sixteenth </word>
10533
+ <word ordinal="17">Seventeenth </word>
10534
+ <word ordinal="18">Eighteenth </word>
10535
+ <word ordinal="19">Nineteenth </word>
10536
+ <word cardinal="20">Twenty-</word>
10537
+ <word ordinal="20">Twentieth </word>
10538
+ <word cardinal="30">Thirty-</word>
10539
+ <word ordinal="30">Thirtieth </word>
10540
+ <word cardinal="40">Forty-</word>
10541
+ <word ordinal="40">Fortieth </word>
10542
+ <word cardinal="50">Fifty-</word>
10543
+ <word ordinal="50">Fiftieth </word>
10544
+ <word cardinal="60">Sixty-</word>
10545
+ <word ordinal="60">Sixtieth </word>
10546
+ <word cardinal="70">Seventy-</word>
10547
+ <word ordinal="70">Seventieth </word>
10548
+ <word cardinal="80">Eighty-</word>
10549
+ <word ordinal="80">Eightieth </word>
10550
+ <word cardinal="90">Ninety-</word>
10551
+ <word ordinal="90">Ninetieth </word>
10552
+ <word cardinal="100">Hundred-</word>
10553
+ <word ordinal="100">Hundredth </word>
10554
+ </xsl:otherwise>
10555
+ </xsl:choose>
10387
10556
  </words>
10388
10557
  </xsl:variable>
10389
10558
 
@@ -10457,4 +10626,18 @@
10457
10626
  <xsl:otherwise>_</xsl:otherwise>
10458
10627
  </xsl:choose>
10459
10628
  </xsl:attribute>
10629
+ </xsl:template><xsl:template name="substring-after-last">
10630
+ <xsl:param name="value"/>
10631
+ <xsl:param name="delimiter"/>
10632
+ <xsl:choose>
10633
+ <xsl:when test="contains($value, $delimiter)">
10634
+ <xsl:call-template name="substring-after-last">
10635
+ <xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
10636
+ <xsl:with-param name="delimiter" select="$delimiter"/>
10637
+ </xsl:call-template>
10638
+ </xsl:when>
10639
+ <xsl:otherwise>
10640
+ <xsl:value-of select="$value"/>
10641
+ </xsl:otherwise>
10642
+ </xsl:choose>
10460
10643
  </xsl:template></xsl:stylesheet>