Adicionar tags de tradução em templates do journalpage#1332
Adicionar tags de tradução em templates do journalpage#1332robertatakenaka merged 5 commits intomainfrom
Conversation
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
| {% if journal.journal_email.all %} | ||
| {% for email in journal.journal_email.all %} | ||
| <strong>E-mail:</strong> {{ email.email }} | ||
| <strong>{% trans 'E-mail' %}:</strong> {{ email.email }} |
There was a problem hiding this comment.
Não precisa de tag trans para E-mail
There was a problem hiding this comment.
@samuelveigarangel precisamos estar preparados para outros idiomas que não en, es, pt.
There was a problem hiding this comment.
E-mail não é universal ?
There was a problem hiding this comment.
Pull request overview
Este PR adiciona marcações de internacionalização (Django i18n) nos templates do journalpage para que textos estáticos da interface possam ser extraídos via makemessages e traduzidos.
Changes:
- Inclusão de
{% load i18n %}e marcação de strings com{% trans %}em templates principais e parciais. - Uso pontual de
{% blocktrans %}para texto com HTML embutido (ex.: link no rodapé). - Ajustes de rótulos de navegação/UI (ex.: “Atualizado”, itens de menu, “Reportar erro”, etc.).
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| journalpage/templates/journalpage/journal_page.html | Adiciona {% load i18n %} e marcações {% trans %} em cabeçalhos/labels e itens do menu lateral. |
| journalpage/templates/journalpage/includes/share.html | Marca “Imprimir” com {% trans %} no dropdown de compartilhamento. |
| journalpage/templates/journalpage/includes/levelMenu.html | Marca itens do menu de navegação/ações (“Home do periódico”, “Buscar”, “Métricas”, etc.). |
| journalpage/templates/journalpage/includes/journal_info.html | Marca labels como “Novo título”, “Título anterior”, “Submissão de manuscritos”, “Contato”, “Siga-nos”. |
| journalpage/templates/journalpage/includes/header.html | Marca itens do menu/dropdown do cabeçalho com {% trans %}. |
| journalpage/templates/journalpage/includes/footer.html | Adiciona {% load i18n %} e usa {% blocktrans %} para frase com link no rodapé. |
| journalpage/templates/journalpage/includes/contact_footer.html | Adiciona {% load i18n %} e marca textos do bloco de contatos/redes sociais. |
| journalpage/templates/journalpage/base.html | Marca strings de UI em modais/botões (“Close”, “Mensagem”, “Reportar erro”). |
| journalpage/templates/journalpage/about.html | Marca “Atualizado” no rodapé do conteúdo. |
Comments suppressed due to low confidence (1)
journalpage/templates/journalpage/includes/journal_info.html:105
- Há um fechamento
</ul>sem abertura correspondente (o container foi iniciado com<div class="list-group">). Isso gera HTML inválido e pode quebrar a renderização/estilos. Troque pelo fechamento correto do container (ou abra a lista se a intenção era usar<ul>).
{% endif %}
</ul>
</div>
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <li><a href="javascript:window.print();" class="dropdown-item">{% trans 'Imprimir' %}</a></li> | ||
| <li><a href="#" type="button" class="dropdown-item" target="_blank">RSS</a></li> | ||
| <li><a href="javascript:;" class="dropdown-item share_modal_id">E-mail</a></li> |
There was a problem hiding this comment.
O item do menu ainda contém textos visíveis ao usuário sem tradução (por exemplo, "RSS" e "E-mail"). Para manter o objetivo do PR (i18n completo), envolva esses rótulos com {% trans %} (ou deixe explícito no PR por que devem permanecer hardcoded).
| @@ -42,7 +43,7 @@ | |||
| > | |||
| </span> | |||
| {% if loop.last %} | |||
There was a problem hiding this comment.
Em templates Django, a flag de último item do loop é forloop.last, não loop.last. Do jeito atual a condição nunca é verdadeira e o texto final não é renderizado. Substitua por forloop.last.
| {% if loop.last %} | |
| {% if forloop.last %} |
| <p>This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.</p> | ||
| <p>This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.</p> | ||
| <p>This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.</p> |
There was a problem hiding this comment.
Ainda há texto visível ao usuário em inglês ("This is some placeholder content...") sem marcação i18n. Se esse conteúdo permanecer no template, envolva-o com {% trans %}/{% blocktrans %} ou substitua por conteúdo dinâmico real para evitar strings não traduzíveis na UI.
| <h4 id="item-3">{% trans 'CORPO EDITORIAL' %}</h4> | ||
| <!-- Usar: instituição (mais sigla se houver), cidade, estado e país, orcid, Lattes (opcional para estrangeiros) e e-mail (divulgação opcional). | ||
| Considerar os papéis descritos abaixo:--> | ||
| <h5 id="item-3-1">Editor-Chefe</h5> | ||
| <h5 id="item-3-1">{% trans 'Editor-Chefe' %}</h5> |
There was a problem hiding this comment.
O mesmo rótulo aparece com variação apenas de caixa (ex.: "CORPO EDITORIAL" aqui vs "Corpo editorial" no menu). Isso cria msgids duplicados e aumenta o trabalho de tradução. Padronize o texto (ex.: uma única forma) e aplique uppercase via CSS/filtro quando necessário.
| {% blocktrans %}<a href="#">Leia</a> a Declaração de Acesso Aberto{% endblocktrans %} | ||
| </p> |
There was a problem hiding this comment.
Usar <a ...> diretamente dentro de {% blocktrans %} faz o msgid conter HTML, o que é mais difícil/arriscado para tradutores e dificulta reordenação do texto em outros idiomas. Prefira blocktrans com placeholders (ex.: passando o link como variável ou usando marcadores para início/fim do link) para manter o HTML fora da string traduzível.
| @@ -25,7 +26,7 @@ | |||
| <div class="col-12 col-sm-4 text-center text-sm-start pt-4 pt-sm-0"> | |||
| <a href="#" data-toggle="tooltip" title="RSS do número mais recente do periódico" target="_blank"><span class="material-icons-outlined">rss_feed</span></a> | |||
There was a problem hiding this comment.
O atributo title do tooltip contém texto visível ao usuário não marcado para tradução ("RSS do número mais recente do periódico"). Envolva o valor do title com {% trans %} (ou use {% blocktrans %} se precisar interpolar variáveis) para garantir que seja extraído pelo makemessages.
| <a class="list-group-item" href="javascript:;" class="contact_modal_id" data-url="#"> | ||
| <span class="glyphBtn contact"></span> Contato | ||
| <span class="glyphBtn contact"></span> {% trans 'Contato' %} | ||
| </a> |
There was a problem hiding this comment.
O link possui dois atributos class (duplicado), o que torna o HTML inválido e pode sobrescrever a classe list-group-item no navegador. Una as classes em um único atributo class (ex.: class="list-group-item contact_modal_id").
| <h2> </h2> | ||
|
|
||
| <a target="_blank" href="http://analytics.scielo.org/?journal=0102-6720&collection=scl" class="btn single"><span class="material-icons-outlined">show_chart</span> métricas</a> | ||
| <a target="_blank" href="http://analytics.scielo.org/?journal=0102-6720&collection=scl" class="btn single"><span class="material-icons-outlined">show_chart</span> {% trans 'métricas' %}</a> | ||
|
|
There was a problem hiding this comment.
Neste arquivo há duas chaves de tradução para o mesmo rótulo por diferença de caixa ("Métricas" vs "métricas"). Isso duplica entradas no .po. Padronize para uma única string e ajuste a apresentação (CSS/filtro) caso precise de minúsculas.
* Initial plan * Add translation tags to base.html and include templates Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com> * Add translation tags to journal_page.html Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com> * Add missing translation tag to about.html Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com> * Fix footer translation to use blocktrans for better context Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
O que esse PR faz?
Marca todos os textos visíveis ao usuário nos templates do journalpage com tags de tradução Django (
{% trans %}e{% blocktrans %}), habilitando suporte multilíngue para a interface.Escopo:
Padrão usado:
Onde a revisão poderia começar?
journalpage/templates/journalpage/journal_page.html- maior volume de mudanças (90+ tags)journalpage/templates/journalpage/includes/*.html- templates parciaisblocktransvstransemincludes/footer.htmlComo este poderia ser testado manualmente?
Pré-requisitos: Docker ambiente configurado
Validar que todos os textos estáticos aparecem nos arquivos
locale/*/LC_MESSAGES/django.po.Algum cenário de contexto que queira dar?
Antes: Textos hardcoded em português nos templates
Depois: Textos envolvidos em tags Django i18n, prontos para tradução
Todos os includes que usam
{% trans %}têm{% load i18n %}no topo - padrão correto para templates parciais reutilizáveis.Strings com HTML interno usam
{% blocktrans %}para preservar contexto de tradução (ex: "Leia a Declaração de Acesso Aberto" com link interno).Screenshots
N/A - mudanças não afetam renderização visual atual
Quais são tickets relevantes?
Relacionado à issue de internacionalização do journalpage
Referências
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.