metanorma-bipm 2.0.3 → 2.0.4

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