diff --git a/springboard/defaults.ini b/springboard/defaults.ini index 340417d..3f1f0ec 100644 --- a/springboard/defaults.ini +++ b/springboard/defaults.ini @@ -18,6 +18,7 @@ jinja2.filters = format_date = springboard.filters:format_date_filter thumbor = springboard.filters:thumbor_filter markdown = springboard.filters:markdown_filter + display_language_name = springboard.filters:display_language_name_filter unicorehub.host = unicorehub.app_id = diff --git a/springboard/filters.py b/springboard/filters.py index 2e018ab..3b1e2bd 100644 --- a/springboard/filters.py +++ b/springboard/filters.py @@ -8,6 +8,9 @@ from pyramid.threadlocal import get_current_registry +from babel import Locale +from pycountry import languages + @contextfilter def format_date_filter(ctx, timestamp, format): @@ -32,3 +35,10 @@ def markdown_filter(ctx, content): if not content: return content return markdown(content) + + +@contextfilter +def display_language_name_filter(ctx, locale): + language_code, _, country_code = locale.partition('_') + term_code = languages.get(bibliographic=language_code).terminology + return Locale.parse(term_code).language_name diff --git a/springboard/templates/base.jinja2 b/springboard/templates/base.jinja2 index 8184134..7fdecaa 100644 --- a/springboard/templates/base.jinja2 +++ b/springboard/templates/base.jinja2 @@ -14,9 +14,12 @@