From 86873d2d6410d60d552fc476f61ab5013a0d866c Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Tue, 12 Dec 2017 12:22:05 +0100 Subject: [PATCH] i18n_fields_list. --- shared/multilingual/utils/__init__.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/shared/multilingual/utils/__init__.py b/shared/multilingual/utils/__init__.py index fbe84a3..143a527 100644 --- a/shared/multilingual/utils/__init__.py +++ b/shared/multilingual/utils/__init__.py @@ -1,5 +1,7 @@ # Erik Stein , 2017 +from functools import reduce, partial + from collections import OrderedDict from django.conf import settings @@ -7,5 +9,22 @@ from shared.utils.translation import lang_suffix def i18n_fields(field_name, languages=None): + """ + Returns a list of i18n fields for a given fieldname. + >>> i18n_fields('title', ['en', 'de']) + ['title_en', 'title_de'] + """ return [lang_suffix(l, field_name) for l in languages or OrderedDict(settings.LANGUAGES).keys()] + + +def i18n_fields_list(field_names, languages=None): + """ + Returns i18n fields for a list of fields, i.e. + + >>> search_fields = ['title', 'window_title', 'short_title'] + >>> i18n_fields_list(search_fields, ['en', 'de']) + ['title_en', 'title_en', 'windowtitle_en', 'windowtitle_en', 'shorttitle_en', 'shorttitle_en', ] + """ + f = partial(i18n_fields, languages=languages) + return reduce(lambda x, y: x + y, map(f, field_names))