Skip to content

refactor: mover lógica de âncora e título para abstracts sem título#1209

Merged
robertatakenaka merged 1 commit intoscieloorg:masterfrom
robertatakenaka:opac5_tk_458
May 4, 2026
Merged

refactor: mover lógica de âncora e título para abstracts sem título#1209
robertatakenaka merged 1 commit intoscieloorg:masterfrom
robertatakenaka:opac5_tk_458

Conversation

@robertatakenaka
Copy link
Copy Markdown
Member

PR: Mover lógica de âncora e título para abstracts/trans-abstracts sem título

O que esse PR faz?

Refatora a geração de âncora e título para abstracts e trans-abstracts que não possuem elemento <title>. Anteriormente, a lógica era aplicada uma única vez no nível do elemento pai (via template create-anchor-and-title-for-abstracts-without-title), o que gerava um título genérico ("Abstract" ou "Abstracts") sem considerar o idioma de cada abstract individualmente. Com esta mudança, a lógica passa a ser aplicada diretamente no template anchor-and-title de cada abstract[not(title)] e trans-abstract[not(title)], permitindo que o título seja traduzido corretamente de acordo com o idioma (@xml:lang) de cada elemento.

Principais mudanças:

  • Remove a chamada ao template create-anchor-and-title-for-abstracts-without-title do fluxo principal (text-abstracts)
  • Move a lógica de geração de âncora e título para o template anchor-and-title que trata abstract[not(title)] e trans-abstract[not(title)]
  • Substitui a chamada ao mode text-labels pelo mode translate, passando o termo "Abstract" e o idioma determinado dinamicamente
  • Determina o idioma a partir de @xml:lang do próprio elemento, do avô (../../@xml:lang) ou do bisavô (../../../@xml:lang), com fallback para en
  • Remove a lógica condicional de singular/plural ("Abstract" vs "Abstracts") em favor da tradução individualizada do termo "Abstract"

Onde a revisão poderia começar?

packtools/catalogs/htmlgenerator/v3.0/article-meta-abstract.xsl — iniciar pelo template match="abstract[not(title)] | trans-abstract[not(title)]" mode="anchor-and-title" (linha ~55), que agora contém a lógica principal.

Como este poderia ser testado manualmente?

  1. Preparar um XML JATS com múltiplos abstracts sem <title>, em idiomas diferentes (por exemplo, abstract em pt e trans-abstract em en e es)
  2. Gerar o HTML via htmlgenerator v3.0
  3. Verificar que cada abstract/trans-abstract sem título recebe a âncora e o título traduzido no idioma correto (ex.: "Resumo" para pt, "Abstract" para en, "Resumen" para es)
  4. Testar também com abstracts que já possuem <title> — estes não devem ser afetados pela mudança
  5. Testar com um único abstract sem título para garantir que o comportamento permanece correto sem a lógica de singular/plural

Algum cenário de contexto que queira dar?

O comportamento anterior apresentava duas limitações: (1) o título era gerado uma única vez para todos os abstracts, sem considerar o idioma individual de cada um; (2) a lógica de singular/plural ("Abstract" vs "Abstracts") era baseada na contagem total de abstracts, mas não refletia a necessidade real de traduzir o termo para o idioma correto de cada abstract. Com a refatoração, cada abstract/trans-abstract sem título é responsável por gerar seu próprio título traduzido, o que é mais consistente com o modelo de templates XSLT e com o suporte multilíngue do SciELO.

Screenshots

N/A

Quais são tickets relevantes?

#1208

Referências

- Remover chamada a 'create-anchor-and-title-for-abstracts-without-title'
  do template 'text-abstracts', pois a lógica agora é aplicada
  individualmente por cada abstract/trans-abstract
- Esvaziar template 'create-anchor-and-title-for-abstracts-without-title'
  que era aplicado ao nível do elemento pai
- Mover lógica de geração de âncora e título para o template
  'anchor-and-title' de abstract[not(title)] e trans-abstract[not(title)]
- Substituir chamada a 'text-labels' por 'translate' com parâmetro 'term'
  para tradução do termo 'Abstract'
- Determinar idioma dinamicamente via @xml:lang do próprio elemento,
  do avô ou do bisavô, com fallback para 'en'
- Remover lógica condicional de singular/plural (Abstract vs Abstracts)
  em favor de tradução fixa do termo 'Abstract'
Copilot AI review requested due to automatic review settings May 4, 2026 19:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refatora a geração de âncora e título para abstract/trans-abstract sem <title> no htmlgenerator v3.0, movendo a lógica para o template mode="anchor-and-title" de cada elemento e passando a traduzir o termo “Abstract” de acordo com o idioma detectado.

Changes:

  • Remove a chamada do fluxo principal (mode="text-abstracts") para a lógica centralizada de âncora/título.
  • Implementa a geração de título em anchor-and-title para abstract[not(title)] | trans-abstract[not(title)], usando mode="translate" e idioma derivado de @xml:lang/ancestrais.
  • Remove a distinção singular/plural (“Abstract” vs “Abstracts”) em favor de tradução por elemento.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 54 to +57
<xsl:template match="*[abstract]" mode="create-anchor-and-title-for-abstracts-without-title">

</xsl:template>

Comment on lines 59 to 60
<xsl:if test="not($has_abstract_title)">
<xsl:variable name="title">
Comment on lines +61 to 71
<xsl:apply-templates select="." mode="translate">
<xsl:with-param name="term">Abstract</xsl:with-param>
<xsl:with-param name="lang">
<xsl:choose>
<xsl:when test="$total_abstracts=1">Abstract</xsl:when>
<xsl:otherwise>Abstracts</xsl:otherwise>
<xsl:when test="@xml:lang"><xsl:value-of select="@xml:lang"/></xsl:when>
<xsl:when test="../../@xml:lang"><xsl:value-of select="../../@xml:lang"/></xsl:when>
<xsl:when test="../../../@xml:lang"><xsl:value-of select="../../../@xml:lang"/></xsl:when>
<xsl:otherwise>en</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:apply-templates>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants