From 81e81c254b47e9f36c9a20baf83c260573d15301 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Mar 2026 18:49:20 +0000
Subject: [PATCH 1/4] Initial plan
From 2fbfd27911a9bb8e10c123c4ffe5fc52f05272b3 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Mar 2026 19:02:25 +0000
Subject: [PATCH 2/4] Fix language name display for non-PT/EN/ES languages in
article menus
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 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>
---
opac/tests/test_lang_names.py | 38 ++++
opac/webapp/choices.py | 1 +
opac/webapp/main/custom_filters.py | 10 +-
.../templates/article/includes/levelMenu.html | 180 ++----------------
.../article/includes/levelMenu_abstracts.html | 30 +--
.../article/includes/levelMenu_pdf.html | 30 +--
.../article/includes/levelMenu_texts.html | 30 +--
.../translations/en/LC_MESSAGES/messages.po | 24 +++
.../translations/es/LC_MESSAGES/messages.po | 24 +++
.../es_ES/LC_MESSAGES/messages.po | 24 +++
.../es_MX/LC_MESSAGES/messages.po | 26 ++-
opac/webapp/translations/messages.pot | 24 +++
.../pt_BR.UTF-8/LC_MESSAGES/messages.po | 24 +++
.../pt_PT/LC_MESSAGES/messages.po | 24 +++
14 files changed, 243 insertions(+), 246 deletions(-)
diff --git a/opac/tests/test_lang_names.py b/opac/tests/test_lang_names.py
index 57723050a..07209bb9c 100644
--- a/opac/tests/test_lang_names.py
+++ b/opac/tests/test_lang_names.py
@@ -1,6 +1,7 @@
# coding: utf-8
from webapp.config.lang_names import display_original_lang_name, get_original_lang_name
+from webapp.main.custom_filters import trans_alpha2
from .base import BaseTestCase
@@ -31,3 +32,40 @@ def test_display_original_lang_name(self):
def test_display_original_lang_name_inexisting(self):
self.assertEqual(display_original_lang_name("bla"), "bla")
+
+
+class TransAlpha2TestCase(BaseTestCase):
+ def test_trans_alpha2_known_languages(self):
+ """Languages in ISO3166_ALPHA2 should return translated names."""
+ result_pt = str(trans_alpha2("pt"))
+ result_en = str(trans_alpha2("en"))
+ result_es = str(trans_alpha2("es"))
+ result_fr = str(trans_alpha2("fr"))
+ result_de = str(trans_alpha2("de"))
+ result_it = str(trans_alpha2("it"))
+ result_ru = str(trans_alpha2("ru"))
+ self.assertEqual(result_pt, "Português")
+ self.assertEqual(result_en, "Inglês")
+ self.assertEqual(result_es, "Espanhol")
+ self.assertEqual(result_fr, "Francês")
+ self.assertEqual(result_de, "Alemão")
+ self.assertEqual(result_it, "Italiano")
+ self.assertEqual(result_ru, "Russo")
+
+ def test_trans_alpha2_fallback_to_lang_names(self):
+ """Languages not in ISO3166_ALPHA2 but in LANG_NAMES should return ISO English name."""
+ self.assertEqual(trans_alpha2("ja"), "Japanese")
+ self.assertEqual(trans_alpha2("ko"), "Korean")
+ self.assertEqual(trans_alpha2("pl"), "Polish")
+ self.assertEqual(trans_alpha2("sv"), "Swedish")
+ self.assertEqual(trans_alpha2("tr"), "Turkish")
+
+ def test_trans_alpha2_fallback_with_comma(self):
+ """Languages with comma-separated names should return only the first name."""
+ self.assertEqual(trans_alpha2("nl"), "Dutch")
+ self.assertEqual(trans_alpha2("sk"), "Slovak")
+
+ def test_trans_alpha2_unknown_code(self):
+ """Unknown language codes should return the code itself."""
+ self.assertEqual(trans_alpha2("bla"), "bla")
+ self.assertEqual(trans_alpha2("xyz"), "xyz")
diff --git a/opac/webapp/choices.py b/opac/webapp/choices.py
index 7b2dbd347..49c7d924b 100644
--- a/opac/webapp/choices.py
+++ b/opac/webapp/choices.py
@@ -27,6 +27,7 @@
"cn": __("Chinês"),
"ro": __("Romeno"),
"fr": __("Francês"),
+ "de": __("Alemão"),
"it": __("Italiano"),
"ru": __("Russo"),
"ar": __("Árabe"),
diff --git a/opac/webapp/main/custom_filters.py b/opac/webapp/main/custom_filters.py
index 5798ab253..0ad22249d 100644
--- a/opac/webapp/main/custom_filters.py
+++ b/opac/webapp/main/custom_filters.py
@@ -11,8 +11,14 @@ def trans_alpha2(value):
if value in choices.ISO3166_ALPHA2:
return choices.ISO3166_ALPHA2[value]
- else:
- return value
+ from webapp.config.lang_names import LANG_NAMES
+ lang_data = LANG_NAMES.get(value)
+ if lang_data:
+ name = lang_data[1]
+ if "," in name:
+ name = name.split(",")[0].strip()
+ return name
+ return value
def datetimefilter(value, format="%Y-%m-%d %H:%M"):
diff --git a/opac/webapp/templates/article/includes/levelMenu.html b/opac/webapp/templates/article/includes/levelMenu.html
index 7c1e6470b..83bf38090 100644
--- a/opac/webapp/templates/article/includes/levelMenu.html
+++ b/opac/webapp/templates/article/includes/levelMenu.html
@@ -67,15 +67,7 @@
{% for abstract in article.abstracts %}
{% if gs_abstract and article_lang == abstract['language'] %}
- {% if abstract['language'] == 'es' %}
- {% trans %}Resumo{% endtrans %} (ES)
- {% elif abstract['language'] == 'en' %}
- {% trans %}Resumo{% endtrans %} (EN)
- {% elif abstract['language'] == 'pt' %}
- {% trans %}Resumo{% endtrans %} (PT)
- {% else %}
- {{ abstract['language'] }}
- {% endif %}
+ {% trans %}Resumo{% endtrans %} ({{ abstract['language']|upper }})
{% endif %}
{% endfor %}
{% endif %}
@@ -85,15 +77,7 @@
{% for lang, text_lang, uri in text_versions %}
{% if not gs_abstract and lang == article_lang %}
- {% if lang == 'es' %}
- {% trans %}Texto{% endtrans %} (ES)
- {% elif lang == 'en' %}
- {% trans %}Texto{% endtrans %} (EN)
- {% elif lang == 'pt' %}
- {% trans %}Texto{% endtrans %} (PT)
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ {% trans %}Texto{% endtrans %} ({{ lang|upper }})
{% endif %}
{% endfor %}
{% endif %}
@@ -106,28 +90,12 @@
{% if gs_abstract and article_lang == abstract['language'] %}
{% trans %}Resumo{% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% else %}
{% trans %}Resumo {% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% endif %}
@@ -142,28 +110,12 @@
{% trans %}Texto{% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% else %}
{% trans %}Texto {% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% endif %}
@@ -175,15 +127,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -195,15 +139,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -215,15 +151,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -289,15 +217,7 @@
{% trans %}Resumo{% endtrans %}
{% for abstract in article.abstracts %}
{% if gs_abstract and article_lang == abstract['language'] %}
- {% if abstract['language'] == 'es' %}
- (ES)
- {% elif abstract['language'] == 'en' %}
- (EN)
- {% elif abstract['language'] == 'pt' %}
- (PT)
- {% else %}
- {{ abstract['language'] }}
- {% endif %}
+ ({{ abstract['language']|upper }})
{% endif %}
{% endfor %}
@@ -307,28 +227,12 @@
{% if gs_abstract and article_lang == abstract['language'] %}
{% trans %}Resumo{% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% else %}
{% trans %}Resumo {% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% endif %}
@@ -347,15 +251,7 @@
{% trans %}Texto{% endtrans %}
{% for lang, text_lang, uri in text_versions %}
{% if not gs_abstract and lang == article_lang %}
- {% if lang == 'es' %}
- (ES)
- {% elif lang == 'en' %}
- (EN)
- {% elif lang == 'pt' %}
- (PT)
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|upper }})
{% endif %}
{% endfor %}
@@ -366,28 +262,12 @@
{% trans %}Texto{% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% else %}
{% trans %}Texto {% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% endif %}
@@ -408,15 +288,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -443,15 +315,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -469,15 +333,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
diff --git a/opac/webapp/templates/article/includes/levelMenu_abstracts.html b/opac/webapp/templates/article/includes/levelMenu_abstracts.html
index cf4f1c8b1..7747dddf1 100644
--- a/opac/webapp/templates/article/includes/levelMenu_abstracts.html
+++ b/opac/webapp/templates/article/includes/levelMenu_abstracts.html
@@ -5,15 +5,7 @@
{% trans %}Resumo{% endtrans %}
{% for abstract in article.abstracts %}
{% if gs_abstract and article_lang == abstract['language'] %}
- {% if abstract['language'] == 'es' %}
- (ES)
- {% elif abstract['language'] == 'en' %}
- (EN)
- {% elif abstract['language'] == 'pt' %}
- (PT)
- {% else %}
- {{ abstract['language'] }}
- {% endif %}
+ ({{ abstract['language']|upper }})
{% endif %}
{% endfor %}
@@ -23,28 +15,12 @@
{% if gs_abstract and article_lang == abstract['language'] %}
{% trans %}Resumo{% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% else %}
{% trans %}Resumo {% endtrans %}
- {% if abstract['language'] == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif abstract['language'] == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif abstract['language'] == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ abstract['language'] }})
- {% endif %}
+ ({{ abstract['language']|trans_alpha2 }})
{% endif %}
diff --git a/opac/webapp/templates/article/includes/levelMenu_pdf.html b/opac/webapp/templates/article/includes/levelMenu_pdf.html
index 2f0e4b2ee..e3c5b12ff 100644
--- a/opac/webapp/templates/article/includes/levelMenu_pdf.html
+++ b/opac/webapp/templates/article/includes/levelMenu_pdf.html
@@ -8,15 +8,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -43,15 +35,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
@@ -69,15 +53,7 @@
{% for pdf in article.pdfs %}
- {% if pdf.lang == 'es' %}
- {% trans %}Download PDF (Espanhol){% endtrans %}
- {% elif pdf.lang == 'en' %}
- {% trans %}Download PDF (Inglês){% endtrans %}
- {% elif pdf.lang == 'pt' %}
- {% trans %}Download PDF (Português){% endtrans %}
- {% else %}
- {{ pdf.lang }}
- {% endif %}
+ Download PDF ({{ pdf.lang|trans_alpha2 }})
{% endfor %}
diff --git a/opac/webapp/templates/article/includes/levelMenu_texts.html b/opac/webapp/templates/article/includes/levelMenu_texts.html
index 68450220a..fc1815854 100644
--- a/opac/webapp/templates/article/includes/levelMenu_texts.html
+++ b/opac/webapp/templates/article/includes/levelMenu_texts.html
@@ -6,15 +6,7 @@
{% trans %}Texto{% endtrans %}
{% for lang, text_lang, uri in text_versions %}
{% if not gs_abstract and lang == article_lang %}
- {% if lang == 'es' %}
- (ES)
- {% elif lang == 'en' %}
- (EN)
- {% elif lang == 'pt' %}
- (PT)
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|upper }})
{% endif %}
{% endfor %}
@@ -25,28 +17,12 @@
{% trans %}Texto{% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% else %}
{% trans %}Texto {% endtrans %}
- {% if lang == 'es' %}
- ({% trans %}Espanhol{% endtrans %})
- {% elif lang == 'en' %}
- ({% trans %}Inglês{% endtrans %})
- {% elif lang == 'pt' %}
- ({% trans %}Português{% endtrans %})
- {% else %}
- ({{ text_lang }})
- {% endif %}
+ ({{ lang|trans_alpha2 }})
{% endif %}
diff --git a/opac/webapp/translations/en/LC_MESSAGES/messages.po b/opac/webapp/translations/en/LC_MESSAGES/messages.po
index e2482514e..9cdc155bd 100644
--- a/opac/webapp/translations/en/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/en/LC_MESSAGES/messages.po
@@ -961,6 +961,30 @@ msgstr "English"
msgid "Português"
msgstr "Portuguese"
+msgid "Francês"
+msgstr "French"
+
+msgid "Alemão"
+msgstr "German"
+
+msgid "Italiano"
+msgstr "Italian"
+
+msgid "Russo"
+msgstr "Russian"
+
+msgid "Árabe"
+msgstr "Arabic"
+
+msgid "Chinês"
+msgstr "Chinese"
+
+msgid "Romeno"
+msgstr "Romanian"
+
+msgid "Albanês"
+msgstr "Albanian"
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
diff --git a/opac/webapp/translations/es/LC_MESSAGES/messages.po b/opac/webapp/translations/es/LC_MESSAGES/messages.po
index 702d5cdfd..93357fe57 100644
--- a/opac/webapp/translations/es/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/es/LC_MESSAGES/messages.po
@@ -966,6 +966,30 @@ msgstr "Inglés"
msgid "Português"
msgstr "Portugués"
+msgid "Francês"
+msgstr "Francés"
+
+msgid "Alemão"
+msgstr "Alemán"
+
+msgid "Italiano"
+msgstr "Italiano"
+
+msgid "Russo"
+msgstr "Ruso"
+
+msgid "Árabe"
+msgstr "Árabe"
+
+msgid "Chinês"
+msgstr "Chino"
+
+msgid "Romeno"
+msgstr "Rumano"
+
+msgid "Albanês"
+msgstr "Albanés"
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
diff --git a/opac/webapp/translations/es_ES/LC_MESSAGES/messages.po b/opac/webapp/translations/es_ES/LC_MESSAGES/messages.po
index b887d99de..cb4ef6b29 100644
--- a/opac/webapp/translations/es_ES/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/es_ES/LC_MESSAGES/messages.po
@@ -942,6 +942,30 @@ msgstr "Inglés"
msgid "Português"
msgstr "Portugués"
+msgid "Francês"
+msgstr "Francés"
+
+msgid "Alemão"
+msgstr "Alemán"
+
+msgid "Italiano"
+msgstr "Italiano"
+
+msgid "Russo"
+msgstr "Ruso"
+
+msgid "Árabe"
+msgstr "Árabe"
+
+msgid "Chinês"
+msgstr "Chino"
+
+msgid "Romeno"
+msgstr "Rumano"
+
+msgid "Albanês"
+msgstr "Albanés"
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
diff --git a/opac/webapp/translations/es_MX/LC_MESSAGES/messages.po b/opac/webapp/translations/es_MX/LC_MESSAGES/messages.po
index 2c84efe9a..6f9d517e4 100644
--- a/opac/webapp/translations/es_MX/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/es_MX/LC_MESSAGES/messages.po
@@ -938,7 +938,31 @@ msgstr ""
#: opac/webapp/templates/article/includes/levelMenu_texts.html:46
#: opac/webapp/templates/article/includes/modal/download.html:27
msgid "Português"
-msgstr ""
+msgstr "Portugués"
+
+msgid "Francês"
+msgstr "Francés"
+
+msgid "Alemão"
+msgstr "Alemán"
+
+msgid "Italiano"
+msgstr "Italiano"
+
+msgid "Russo"
+msgstr "Ruso"
+
+msgid "Árabe"
+msgstr "Árabe"
+
+msgid "Chinês"
+msgstr "Chino"
+
+msgid "Romeno"
+msgstr "Rumano"
+
+msgid "Albanês"
+msgstr "Albanés"
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
diff --git a/opac/webapp/translations/messages.pot b/opac/webapp/translations/messages.pot
index 0f3f1d13f..83ecacb0a 100644
--- a/opac/webapp/translations/messages.pot
+++ b/opac/webapp/translations/messages.pot
@@ -931,6 +931,30 @@ msgstr ""
msgid "Português"
msgstr ""
+msgid "Francês"
+msgstr ""
+
+msgid "Alemão"
+msgstr ""
+
+msgid "Italiano"
+msgstr ""
+
+msgid "Russo"
+msgstr ""
+
+msgid "Árabe"
+msgstr ""
+
+msgid "Chinês"
+msgstr ""
+
+msgid "Romeno"
+msgstr ""
+
+msgid "Albanês"
+msgstr ""
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
diff --git a/opac/webapp/translations/pt_BR.UTF-8/LC_MESSAGES/messages.po b/opac/webapp/translations/pt_BR.UTF-8/LC_MESSAGES/messages.po
index f9bcc2378..8a39aa61f 100644
--- a/opac/webapp/translations/pt_BR.UTF-8/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/pt_BR.UTF-8/LC_MESSAGES/messages.po
@@ -932,6 +932,30 @@ msgstr ""
msgid "Português"
msgstr ""
+msgid "Francês"
+msgstr ""
+
+msgid "Alemão"
+msgstr ""
+
+msgid "Italiano"
+msgstr ""
+
+msgid "Russo"
+msgstr ""
+
+msgid "Árabe"
+msgstr ""
+
+msgid "Chinês"
+msgstr ""
+
+msgid "Romeno"
+msgstr ""
+
+msgid "Albanês"
+msgstr ""
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
diff --git a/opac/webapp/translations/pt_PT/LC_MESSAGES/messages.po b/opac/webapp/translations/pt_PT/LC_MESSAGES/messages.po
index 7cfd1d332..944958a60 100644
--- a/opac/webapp/translations/pt_PT/LC_MESSAGES/messages.po
+++ b/opac/webapp/translations/pt_PT/LC_MESSAGES/messages.po
@@ -932,6 +932,30 @@ msgstr ""
msgid "Português"
msgstr ""
+msgid "Francês"
+msgstr ""
+
+msgid "Alemão"
+msgstr ""
+
+msgid "Italiano"
+msgstr ""
+
+msgid "Russo"
+msgstr ""
+
+msgid "Árabe"
+msgstr ""
+
+msgid "Chinês"
+msgstr ""
+
+msgid "Romeno"
+msgstr ""
+
+msgid "Albanês"
+msgstr ""
+
#: opac/webapp/templates/article/includes/levelMenu.html:121
#: opac/webapp/templates/article/includes/levelMenu.html:322
#: opac/webapp/templates/article/includes/levelMenu_abstracts.html:38
From 7720a16cf2e3493fd200548a873ec0ccc24fb264 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Mar 2026 19:15:24 +0000
Subject: [PATCH 3/4] Address code review: move import to top of file, revert
unrelated __init__.py change
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
---
opac/webapp/main/custom_filters.py | 2 +-
src/opac-schema | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
delete mode 160000 src/opac-schema
diff --git a/opac/webapp/main/custom_filters.py b/opac/webapp/main/custom_filters.py
index 0ad22249d..1c90d5ef9 100644
--- a/opac/webapp/main/custom_filters.py
+++ b/opac/webapp/main/custom_filters.py
@@ -1,6 +1,7 @@
# coding: utf-8
from webapp import choices
+from webapp.config.lang_names import LANG_NAMES
from webapp.utils import utc_to_local
@@ -11,7 +12,6 @@ def trans_alpha2(value):
if value in choices.ISO3166_ALPHA2:
return choices.ISO3166_ALPHA2[value]
- from webapp.config.lang_names import LANG_NAMES
lang_data = LANG_NAMES.get(value)
if lang_data:
name = lang_data[1]
diff --git a/src/opac-schema b/src/opac-schema
deleted file mode 160000
index 2bb30ecb4..000000000
--- a/src/opac-schema
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2bb30ecb425eaa282be0492f9eaacd64fd6b3909
From 61908353f6dcd01316fd6abe2449134975560019 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 16 Mar 2026 19:17:08 +0000
Subject: [PATCH 4/4] Restore opac-schema submodule reference
---
src/opac-schema | 1 +
1 file changed, 1 insertion(+)
create mode 160000 src/opac-schema
diff --git a/src/opac-schema b/src/opac-schema
new file mode 160000
index 000000000..2bb30ecb4
--- /dev/null
+++ b/src/opac-schema
@@ -0,0 +1 @@
+Subproject commit 2bb30ecb425eaa282be0492f9eaacd64fd6b3909