Skip to content

Fix language name display for non-PT/EN/ES languages in article menus#440

Draft
Copilot wants to merge 4 commits intomasterfrom
copilot/fix-language-interface-issues
Draft

Fix language name display for non-PT/EN/ES languages in article menus#440
Copilot wants to merge 4 commits intomasterfrom
copilot/fix-language-interface-issues

Conversation

Copy link
Contributor

Copilot AI commented Mar 16, 2026

O que esse PR faz?

Article menus (Resumo, Texto, PDF) only handled PT/EN/ES language names via hardcoded if/elif chains. Any other language (FR, DE, RU, etc.) fell back to raw ISO codes or native script names instead of interface-translated names.

This PR replaces the per-language conditionals with the existing trans_alpha2 Jinja2 filter across all menu templates, and enhances the filter with a fallback to LANG_NAMES (180+ languages).

Changes:

  • choices.py — Added de (Alemão) to ISO3166_ALPHA2
  • custom_filters.pytrans_alpha2 now falls back to ISO English name from LANG_NAMES when code isn't in ISO3166_ALPHA2
  • Templates (levelMenu.html, levelMenu_abstracts.html, levelMenu_texts.html, levelMenu_pdf.html) — Replaced hardcoded PT/EN/ES branches:
    • Collapsed buttons: {{ lang|upper }} (e.g., FR, DE)
    • Expanded dropdowns: {{ lang|trans_alpha2 }} (e.g., Francês → French/Francés per interface)
  • Translation files — Added active .po entries for Francês, Alemão, Italiano, Russo, Árabe, Chinês, Romeno, Albanês across all 6 locales
  • Tests — Added TransAlpha2TestCase covering dict lookup, LANG_NAMES fallback, comma-separated names, unknown codes

Onde a revisão poderia começar?

opac/webapp/main/custom_filters.py — the enhanced trans_alpha2 filter, then the simplified templates.

Como este poderia ser testado manualmente?

  1. Access an article with non-PT/EN/ES translations (e.g., French or German abstracts/PDFs)
  2. Switch interface language between PT, EN, ES
  3. Verify collapsed menu buttons show uppercase ISO code (e.g., FR)
  4. Verify expanded dropdowns show translated language name matching interface language (e.g., "Francês" in PT, "French" in EN, "Francés" in ES)
  5. Verify PT/EN/ES languages still display correctly (no regression)

Algum cenário de contexto que queira dar?

Before: {% if lang == 'es' %} ... {% elif lang == 'en' %} ... {% else %} {{ abstract['language'] }} {% endif %} — any language outside the three hardcoded ones showed raw codes like fr or native names like Français.

After: {{ lang|trans_alpha2 }} — works for all languages, translates to interface language for common ones, falls back to English ISO name for rare ones.

Screenshots

N/A — requires running application with MongoDB and article data with non-PT/EN/ES translations.

Quais são tickets relevantes?

Interface não lida bem com artigos com traduções em idiomas que não PT, EN ou ES

Referências

  • ISO 639-1 language codes mapped in opac/webapp/config/lang_names.py
  • Existing trans_alpha2 filter usage in opac/webapp/templates/issue/toc.html
Original prompt

This section details on the original issue you should resolve

<issue_title>Interface não lida bem com artigos com traduções em idiomas que não PT, EN ou ES</issue_title>
<issue_description>### Descrição do problema
Quando um artigo possui tradução do resumo e/ou HTML e PDF em idiomas que não português, espanhol ou inglês, o nome do idioma não segue o idioma da interface, mostrando ou o código ISO ou o nome do idioma no idioma propriamente dito.

Passos para reproduzir o problema

Demonstração do problema: https://youtu.be/XnpcAI93icQ

Comportamento esperado

O comportamento esperado é o mesmo que ocorre para artigos com tradução do resumo e/ou HTML e PDF em português, espanhol ou inglês.

Algo que não mencionei no vídeo é que para o menu TEXTO, quando estiver colapsado, é preciso mostrar o código ISO do idioma selecionado em caixa alta, não o nome do idioma escrito por extenso, mas o nome dos idiomas escrito por extenso deve aparecer no idioma da interface quando o menu estiver expandido.

Ambiente utilizado

O problema acontece em desktop e mobile.
</issue_description>

Comments on the Issue (you are @copilot in this section)

@robertatakenaka @carolinatanigushi o que melhor ajuda na hora de reportar problema é a objetividade. O vídeo ilustra bem o problema, mas não fica claro o que se espera. É necessário revisar N vezes o vídeo para pegar detalhes não compreendidos na primeira vez. Então, em resumo, escreva um exemplo

Interface em Espanhol
Conteúdo em Alemão

Como ficariam as opções de menu para resumo, texto, pdf?

Adicione os links dos artigos acessados no vídeo</comment_new>
<comment_new>@carolinatanigushi
@robertatakenaka Respondo a seguir,

@carolinatanigushi o que melhor ajuda na hora de reportar problema é a objetividade. O vídeo ilustra bem o problema, mas não fica claro o que se espera. É necessário revisar N vezes o vídeo para pegar detalhes não compreendidos na primeira vez. Então, em resumo, escreva um exemplo

Como ficariam as opções de menu para resumo, texto, pdf?

Eu explico algumas vezes no decorrer no vídeo qual o problema e como deveria estar aparecendo. Mas, em suma, o comportamento correto é o mesmo que acontece no primeiro artigo mencionado: Programa Brincar Legal na prevenção da violência contra crianças: fortalecendo o desenvolvimento sustentável

Ou seja, se temos, por exemplo, um artigo com resumo em PT, EN e FR, com HTML e PDF em PT e FR, o menu deve aparecer da seguinte forma:

INTERFACE PT

Resumo

Resumo (Francês)
Resumo (Português)
Resumo (Inglês)

Texto (FR)

Texto (Francês)
Texto (Português)

PDF

PDF (Francês)
PDF (Português)

INTERFACE EN

Abstract

Abstract (French)
Abstract (Portuguese)
Abstract (English)

Text (FR)

Text (French)
Text (Portuguese)
Text (English)

PDF

PDF (French)
PDF (Portuguese)

INTERFACE ES

Resumen

Resumen (Francés)
Resumen (Portugués)
Resumen (Inglés)

Texto (FR)

Texto (Francés)
Texto (Portugués)
Texto (Inglés)

PDF

PDF (Francés)
PDF (Portugués)

Adicione os links dos artigos acessados no vídeo

Os links já estão no ticket. Por favor, olhe novamente. Vi só que dois dos artigos estão direcionando para outra página pois não tinha reparado que o DOI não era SciELO, então segue: Vom Studierendenaustausch Zur Sprachenpolitik Zur Science Diplomacy - 100 Jahre Daad e Analyse de la diversite humaine dans les manuels scolaires bresiliens de cm1 et de cm2 dans le cadre d’un projet capes-cofecub

@robertatakenaka @carolinatanigushi ficou claro. Dar o exemplo do primeiro artigo pode ficar confuso porque os idiomas do conteúdo são os mesmos da interface. Funciona melhor exemplificar com um idioma do conteúdo diferente do da interface. @robertatakenaka @samuelveigarangel apoiar o Luciano para a solução disso

📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Copilot AI and others added 3 commits March 16, 2026 19:02
- Update trans_alpha2 filter to fallback to LANG_NAMES ISO English names
- Add German (de/Alemão) to ISO3166_ALPHA2 dict
- Update all level menu templates to use trans_alpha2 filter and uppercase ISO codes
- Add language name translations for FR, DE, IT, RU, AR, ZH, RO to all locales
- Add tests for trans_alpha2 filter

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…nit__.py change

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix interface handling for articles with translations in other languages Fix language name display for non-PT/EN/ES languages in article menus Mar 16, 2026
Copilot AI requested a review from robertatakenaka March 16, 2026 19:18
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.

Interface não lida bem com artigos com traduções em idiomas que não PT, EN ou ES

2 participants