Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions opac/tests/test_lang_names.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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")
1 change: 1 addition & 0 deletions opac/webapp/choices.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"cn": __("Chinês"),
"ro": __("Romeno"),
"fr": __("Francês"),
"de": __("Alemão"),
"it": __("Italiano"),
"ru": __("Russo"),
"ar": __("Árabe"),
Expand Down
10 changes: 8 additions & 2 deletions opac/webapp/main/custom_filters.py
Original file line number Diff line number Diff line change
@@ -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


Expand All @@ -11,8 +12,13 @@ def trans_alpha2(value):

if value in choices.ISO3166_ALPHA2:
return choices.ISO3166_ALPHA2[value]
else:
return value
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"):
Expand Down
180 changes: 18 additions & 162 deletions opac/webapp/templates/article/includes/levelMenu.html
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand All @@ -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 %}
Expand All @@ -106,28 +90,12 @@
{% if gs_abstract and article_lang == abstract['language'] %}
<a href="#" class="current dropdown-item">
{% 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 }})
</a>
{% else %}
<a href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, part='abstract', lang=abstract['language']) }}" class="dropdown-item">
{% 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 }})
</a>
{% endif %}
<li>
Expand All @@ -142,28 +110,12 @@
<!-- página de texto -->
<a href="#" class="current dropdown-item">
{% 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 }})
</a>
{% else %}
<a href="{{ uri }}" class="dropdown-item">
{% 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 }})
</a>
{% endif %}
</li>
Expand All @@ -175,15 +127,7 @@
{% for pdf in article.pdfs %}
<li>
<a target='_blank' href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, format='pdf', lang=article.pdfs[0].lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand All @@ -195,15 +139,7 @@
{% for pdf in article.pdfs %}
<li>
<a target='_blank' href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, format='pdf', lang=pdf.lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand All @@ -215,15 +151,7 @@
{% for pdf in article.pdfs %}
<li>
<a href="{{ url_for('.article_epdf', doi=article.doi, pid=article.pid, pdf_path=pdf.url, lang=pdf.lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand Down Expand Up @@ -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 %}
</button>
Expand All @@ -307,28 +227,12 @@
{% if gs_abstract and article_lang == abstract['language'] %}
<a href="#" class="current dropdown-item">
{% 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 }})
</a>
{% else %}
<a href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, part='abstract', lang=abstract['language']) }}" class="dropdown-item">
{% 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 }})
</a>
{% endif %}
<li>
Expand All @@ -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 %}
</button>
Expand All @@ -366,28 +262,12 @@
<!-- página de texto -->
<a href="#" class="current dropdown-item">
{% 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 }})
</a>
{% else %}
<a href="{{ uri }}" class="dropdown-item">
{% 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 }})
</a>
{% endif %}
</li>
Expand All @@ -408,15 +288,7 @@
{% for pdf in article.pdfs %}
<li>
<a target='_blank' href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, format='pdf', lang=article.pdfs[0].lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand All @@ -443,15 +315,7 @@
{% for pdf in article.pdfs %}
<li>
<a target='_blank' href="{{ url_for('.article_detail_v3', url_seg=article.journal.url_segment, article_pid_v3=article.aid, format='pdf', lang=pdf.lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand All @@ -469,15 +333,7 @@
{% for pdf in article.pdfs %}
<li>
<a href="{{ url_for('.article_epdf', doi=article.doi, pid=article.pid, pdf_path=pdf.url, lang=pdf.lang) }}" class="dropdown-item">
{% 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 }})
</a>
</li>
{% endfor %}
Expand Down
Loading