lib/isodoc/itu/itu.recommendation-supplement.xsl in metanorma-itu-2.0.3 vs lib/isodoc/itu/itu.recommendation-supplement.xsl in metanorma-itu-2.0.4

- old
+ new

@@ -2088,10 +2088,14 @@ <title-edition lang="fr"> <xsl:text>Édition </xsl:text> </title-edition> + <title-edition lang="ru"> + <xsl:text>Издание </xsl:text> + </title-edition> + <!-- These titles of Table of contents renders different than determined in localized-strings --> <title-toc lang="en"> @@ -2114,11 +2118,15 @@ </title-part> <title-part lang="fr"> - </title-part> + </title-part> + <title-part lang="ru"> + + + </title-part> <title-part lang="zh">第 # 部分:</title-part> <title-subpart lang="en">Sub-part #</title-subpart> <title-subpart lang="fr">Partie de sub #</title-subpart> @@ -2130,10 +2138,11 @@ <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations> <title-summary lang="en">Summary</title-summary> + <title-continued lang="ru">(продолжение)</title-continued> <title-continued lang="en">(continued)</title-continued> <title-continued lang="fr">(continué)</title-continued> </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata"> <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/> @@ -2860,17 +2869,23 @@ </xsl:attribute-set><xsl:variable name="color-added-text"> <xsl:text>rgb(0, 255, 0)</xsl:text> </xsl:variable><xsl:attribute-set name="add-style"> - <xsl:attribute name="color">red</xsl:attribute> - <xsl:attribute name="text-decoration">underline</xsl:attribute> - <!-- <xsl:attribute name="color">black</xsl:attribute> - <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute> - <xsl:attribute name="padding-top">1mm</xsl:attribute> - <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> --> - </xsl:attribute-set><xsl:variable name="color-deleted-text"> + + <xsl:attribute name="color">red</xsl:attribute> + <xsl:attribute name="text-decoration">underline</xsl:attribute> + <!-- <xsl:attribute name="color">black</xsl:attribute> + <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute> + <xsl:attribute name="padding-top">1mm</xsl:attribute> + <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> --> + + </xsl:attribute-set><xsl:variable name="add-style"> + <add-style xsl:use-attribute-sets="add-style"/> + </xsl:variable><xsl:template name="append_add-style"> + <xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/> + </xsl:template><xsl:variable name="color-deleted-text"> <xsl:text>red</xsl:text> </xsl:variable><xsl:attribute-set name="del-style"> <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> <xsl:attribute name="text-decoration">line-through</xsl:attribute> </xsl:attribute-set><xsl:attribute-set name="mathml-style"> @@ -3293,18 +3308,46 @@ </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"> + <xsl:variable name="nodes_preface_"> + <xsl:for-each select="/*/*[local-name()='preface']/*"> + <node id="{@id}"/> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/> + <xsl:for-each select="/*/*[local-name()='preface']/*"> <xsl:sort select="@displayorder" data-type="number"/> + + <!-- process Section's title --> + <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/> + <xsl:if test="$preceding-sibling_id != ''"> + <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/> + </xsl:if> + <xsl:apply-templates select="." mode="contents"/> </xsl:for-each> </xsl:template><xsl:template name="processMainSectionsDefault_Contents"> + <xsl:variable name="nodes_sections_"> + <xsl:for-each select="/*/*[local-name()='sections']/*"> + <node id="{@id}"/> + </xsl:for-each> + </xsl:variable> + <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/> + <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']]"> <xsl:sort select="@displayorder" data-type="number"/> + + <!-- process Section's title --> + <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/> + <xsl:if test="$preceding-sibling_id != ''"> + <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/> + </xsl:if> + <xsl:apply-templates select="." mode="contents"/> </xsl:for-each> <xsl:for-each select="/*/*[local-name()='annex']"> <xsl:sort select="@displayorder" data-type="number"/> @@ -3452,11 +3495,11 @@ <xsl:with-param name="cols-count" select="$cols-count"/> <xsl:with-param name="table" select="$simple-table"/> </xsl:call-template> </xsl:if> </xsl:variable> - <!-- colwidths=<xsl:copy-of select="$colwidths"/> --> + <!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> --> <xsl:variable name="margin-side"> <xsl:choose> <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when> @@ -3720,11 +3763,11 @@ </xsl:variable> <xsl:call-template name="tokenize"> <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> --> <!-- 2009 thinspace --> <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> --> - <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​', ' '))"/> + <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​­', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space --> </xsl:call-template> </xsl:variable> <xsl:variable name="max_length"> <xsl:call-template name="max_length"> <xsl:with-param name="words" select="xalan:nodeset($words)"/> @@ -5416,10 +5459,13 @@ <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if> <xsl:apply-templates/> </fo:inline> </xsl:template><xsl:template match="*[local-name() = 'xref']"> <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style"> + <xsl:if test="parent::*[local-name() = 'add']"> + <xsl:call-template name="append_add-style"/> + </xsl:if> <xsl:apply-templates/> </fo:basic-link> </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula"> <fo:block-container margin-left="0mm"> <xsl:if test="parent::*[local-name() = 'note']"> @@ -5517,10 +5563,17 @@ <fo:inline xsl:use-attribute-sets="note-name-style"> + <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' --> + <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> --> + <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]"> + <xsl:call-template name="append_add-style"/> + </xsl:if> + + <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name--> <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"> <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]"> <xsl:with-param name="skip">false</xsl:with-param> </xsl:apply-templates> @@ -5555,10 +5608,16 @@ <fo:inline xsl:use-attribute-sets="termnote-name-style"> + <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' --> + <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> --> + <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]"> + <xsl:call-template name="append_add-style"/> + </xsl:if> + <xsl:apply-templates select="*[local-name() = 'name']"/> </fo:inline> <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> @@ -5608,10 +5667,11 @@ <fo:block id="{@id}"> <xsl:apply-templates/> </fo:block> </xsl:template><xsl:template match="*[local-name() = 'term']"> <fo:block id="{@id}" xsl:use-attribute-sets="term-style"> + <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])"> @@ -6044,11 +6104,15 @@ <xsl:value-of select="."/> </xsl:template><xsl:template match="*[local-name() = 'figure' or local-name() = 'table' or local-name() = 'permission' or local-name() = 'recommendation' or local-name() = 'requirement' or local-name() = 'sourcecode']/*[local-name() = 'name']//text()" mode="bookmarks" priority="2"> <xsl:value-of select="."/> </xsl:template><xsl:template match="node()" mode="contents"> <xsl:apply-templates mode="contents"/> - </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents"> + </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"> + <xsl:call-template name="contents_section-title"/> + </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause"> + <xsl:call-template name="contents_section-title"/> + </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"> <xsl:variable name="level"> <xsl:call-template name="getLevel"> <xsl:with-param name="depth" select="@depth"/> </xsl:call-template> </xsl:variable> @@ -7361,11 +7425,11 @@ - + <xsl:apply-templates select="node()[not(local-name() = 'note')]"/> </fo:list-block> <!-- <xsl:for-each select="./iho:note"> <xsl:call-template name="note"/> </xsl:for-each> --> @@ -7379,10 +7443,15 @@ <fo:list-item-label end-indent="label-end()"> <fo:block xsl:use-attribute-sets="list-item-label-style"> + <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' --> + <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]"> + <xsl:call-template name="append_add-style"/> + </xsl:if> + <xsl:call-template name="getListItemFormat"/> </fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style"> <fo:block> @@ -8484,57 +8553,157 @@ </xsl:template><xsl:template name="number-to-words"> <xsl:param name="number"/> <xsl:param name="first"/> <xsl:if test="$number != ''"> <xsl:variable name="words"> - <words> - <word cardinal="1">One-</word> - <word ordinal="1">First </word> - <word cardinal="2">Two-</word> - <word ordinal="2">Second </word> - <word cardinal="3">Three-</word> - <word ordinal="3">Third </word> - <word cardinal="4">Four-</word> - <word ordinal="4">Fourth </word> - <word cardinal="5">Five-</word> - <word ordinal="5">Fifth </word> - <word cardinal="6">Six-</word> - <word ordinal="6">Sixth </word> - <word cardinal="7">Seven-</word> - <word ordinal="7">Seventh </word> - <word cardinal="8">Eight-</word> - <word ordinal="8">Eighth </word> - <word cardinal="9">Nine-</word> - <word ordinal="9">Ninth </word> - <word ordinal="10">Tenth </word> - <word ordinal="11">Eleventh </word> - <word ordinal="12">Twelfth </word> - <word ordinal="13">Thirteenth </word> - <word ordinal="14">Fourteenth </word> - <word ordinal="15">Fifteenth </word> - <word ordinal="16">Sixteenth </word> - <word ordinal="17">Seventeenth </word> - <word ordinal="18">Eighteenth </word> - <word ordinal="19">Nineteenth </word> - <word cardinal="20">Twenty-</word> - <word ordinal="20">Twentieth </word> - <word cardinal="30">Thirty-</word> - <word ordinal="30">Thirtieth </word> - <word cardinal="40">Forty-</word> - <word ordinal="40">Fortieth </word> - <word cardinal="50">Fifty-</word> - <word ordinal="50">Fiftieth </word> - <word cardinal="60">Sixty-</word> - <word ordinal="60">Sixtieth </word> - <word cardinal="70">Seventy-</word> - <word ordinal="70">Seventieth </word> - <word cardinal="80">Eighty-</word> - <word ordinal="80">Eightieth </word> - <word cardinal="90">Ninety-</word> - <word ordinal="90">Ninetieth </word> - <word cardinal="100">Hundred-</word> - <word ordinal="100">Hundredth </word> + <words> + <xsl:choose> + <xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers --> + <word cardinal="1">Une-</word> + <word ordinal="1">Première </word> + <word cardinal="2">Deux-</word> + <word ordinal="2">Seconde </word> + <word cardinal="3">Trois-</word> + <word ordinal="3">Tierce </word> + <word cardinal="4">Quatre-</word> + <word ordinal="4">Quatrième </word> + <word cardinal="5">Cinq-</word> + <word ordinal="5">Cinquième </word> + <word cardinal="6">Six-</word> + <word ordinal="6">Sixième </word> + <word cardinal="7">Sept-</word> + <word ordinal="7">Septième </word> + <word cardinal="8">Huit-</word> + <word ordinal="8">Huitième </word> + <word cardinal="9">Neuf-</word> + <word ordinal="9">Neuvième </word> + <word ordinal="10">Dixième </word> + <word ordinal="11">Onzième </word> + <word ordinal="12">Douzième </word> + <word ordinal="13">Treizième </word> + <word ordinal="14">Quatorzième </word> + <word ordinal="15">Quinzième </word> + <word ordinal="16">Seizième </word> + <word ordinal="17">Dix-septième </word> + <word ordinal="18">Dix-huitième </word> + <word ordinal="19">Dix-neuvième </word> + <word cardinal="20">Vingt-</word> + <word ordinal="20">Vingtième </word> + <word cardinal="30">Trente-</word> + <word ordinal="30">Trentième </word> + <word cardinal="40">Quarante-</word> + <word ordinal="40">Quarantième </word> + <word cardinal="50">Cinquante-</word> + <word ordinal="50">Cinquantième </word> + <word cardinal="60">Soixante-</word> + <word ordinal="60">Soixantième </word> + <word cardinal="70">Septante-</word> + <word ordinal="70">Septantième </word> + <word cardinal="80">Huitante-</word> + <word ordinal="80">Huitantième </word> + <word cardinal="90">Nonante-</word> + <word ordinal="90">Nonantième </word> + <word cardinal="100">Cent-</word> + <word ordinal="100">Centième </word> + </xsl:when> + <xsl:when test="$lang = 'ru'"> + <word cardinal="1">Одна-</word> + <word ordinal="1">Первое </word> + <word cardinal="2">Две-</word> + <word ordinal="2">Второе </word> + <word cardinal="3">Три-</word> + <word ordinal="3">Третье </word> + <word cardinal="4">Четыре-</word> + <word ordinal="4">Четвертое </word> + <word cardinal="5">Пять-</word> + <word ordinal="5">Пятое </word> + <word cardinal="6">Шесть-</word> + <word ordinal="6">Шестое </word> + <word cardinal="7">Семь-</word> + <word ordinal="7">Седьмое </word> + <word cardinal="8">Восемь-</word> + <word ordinal="8">Восьмое </word> + <word cardinal="9">Девять-</word> + <word ordinal="9">Девятое </word> + <word ordinal="10">Десятое </word> + <word ordinal="11">Одиннадцатое </word> + <word ordinal="12">Двенадцатое </word> + <word ordinal="13">Тринадцатое </word> + <word ordinal="14">Четырнадцатое </word> + <word ordinal="15">Пятнадцатое </word> + <word ordinal="16">Шестнадцатое </word> + <word ordinal="17">Семнадцатое </word> + <word ordinal="18">Восемнадцатое </word> + <word ordinal="19">Девятнадцатое </word> + <word cardinal="20">Двадцать-</word> + <word ordinal="20">Двадцатое </word> + <word cardinal="30">Тридцать-</word> + <word ordinal="30">Тридцатое </word> + <word cardinal="40">Сорок-</word> + <word ordinal="40">Сороковое </word> + <word cardinal="50">Пятьдесят-</word> + <word ordinal="50">Пятидесятое </word> + <word cardinal="60">Шестьдесят-</word> + <word ordinal="60">Шестидесятое </word> + <word cardinal="70">Семьдесят-</word> + <word ordinal="70">Семидесятое </word> + <word cardinal="80">Восемьдесят-</word> + <word ordinal="80">Восьмидесятое </word> + <word cardinal="90">Девяносто-</word> + <word ordinal="90">Девяностое </word> + <word cardinal="100">Сто-</word> + <word ordinal="100">Сотое </word> + </xsl:when> + <xsl:otherwise> <!-- default english --> + <word cardinal="1">One-</word> + <word ordinal="1">First </word> + <word cardinal="2">Two-</word> + <word ordinal="2">Second </word> + <word cardinal="3">Three-</word> + <word ordinal="3">Third </word> + <word cardinal="4">Four-</word> + <word ordinal="4">Fourth </word> + <word cardinal="5">Five-</word> + <word ordinal="5">Fifth </word> + <word cardinal="6">Six-</word> + <word ordinal="6">Sixth </word> + <word cardinal="7">Seven-</word> + <word ordinal="7">Seventh </word> + <word cardinal="8">Eight-</word> + <word ordinal="8">Eighth </word> + <word cardinal="9">Nine-</word> + <word ordinal="9">Ninth </word> + <word ordinal="10">Tenth </word> + <word ordinal="11">Eleventh </word> + <word ordinal="12">Twelfth </word> + <word ordinal="13">Thirteenth </word> + <word ordinal="14">Fourteenth </word> + <word ordinal="15">Fifteenth </word> + <word ordinal="16">Sixteenth </word> + <word ordinal="17">Seventeenth </word> + <word ordinal="18">Eighteenth </word> + <word ordinal="19">Nineteenth </word> + <word cardinal="20">Twenty-</word> + <word ordinal="20">Twentieth </word> + <word cardinal="30">Thirty-</word> + <word ordinal="30">Thirtieth </word> + <word cardinal="40">Forty-</word> + <word ordinal="40">Fortieth </word> + <word cardinal="50">Fifty-</word> + <word ordinal="50">Fiftieth </word> + <word cardinal="60">Sixty-</word> + <word ordinal="60">Sixtieth </word> + <word cardinal="70">Seventy-</word> + <word ordinal="70">Seventieth </word> + <word cardinal="80">Eighty-</word> + <word ordinal="80">Eightieth </word> + <word cardinal="90">Ninety-</word> + <word ordinal="90">Ninetieth </word> + <word cardinal="100">Hundred-</word> + <word ordinal="100">Hundredth </word> + </xsl:otherwise> + </xsl:choose> </words> </xsl:variable> <xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/> @@ -8604,6 +8773,20 @@ <xsl:value-of select="$value"/> </xsl:when> <xsl:otherwise>_</xsl:otherwise> </xsl:choose> </xsl:attribute> + </xsl:template><xsl:template name="substring-after-last"> + <xsl:param name="value"/> + <xsl:param name="delimiter"/> + <xsl:choose> + <xsl:when test="contains($value, $delimiter)"> + <xsl:call-template name="substring-after-last"> + <xsl:with-param name="value" select="substring-after($value, $delimiter)"/> + <xsl:with-param name="delimiter" select="$delimiter"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$value"/> + </xsl:otherwise> + </xsl:choose> </xsl:template></xsl:stylesheet> \ No newline at end of file