From 452ef71eeb49339ae1ea8cdff6bcd0c736f8a27b Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Sat, 18 Nov 2017 09:20:24 +0100 Subject: [PATCH] i18n_fields function. --- shared/multilingual/utils/__init__.py | 11 +++++++++++ shared/multilingual/utils/fields.py | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/shared/multilingual/utils/__init__.py b/shared/multilingual/utils/__init__.py index e69de29..fbe84a3 100644 --- a/shared/multilingual/utils/__init__.py +++ b/shared/multilingual/utils/__init__.py @@ -0,0 +1,11 @@ +# Erik Stein , 2017 + +from collections import OrderedDict +from django.conf import settings + +from shared.utils.translation import lang_suffix + + +def i18n_fields(field_name, languages=None): + return [lang_suffix(l, field_name) for l in languages or + OrderedDict(settings.LANGUAGES).keys()] diff --git a/shared/multilingual/utils/fields.py b/shared/multilingual/utils/fields.py index 1563e6e..1be88df 100644 --- a/shared/multilingual/utils/fields.py +++ b/shared/multilingual/utils/fields.py @@ -12,9 +12,10 @@ from shared.utils.translation import get_language, lang_suffix def get_translated_value(name): def translated_value(obj): language = get_language() - val = obj.__dict__["%s%s" % (name, lang_suffix(language))] + val = obj.__dict__[lang_suffix(language, name)] + # FIXME Try all available languages, not only the default one if not val: - val = obj.__dict__["%s%s" % (name, lang_suffix(settings.LANGUAGE_CODE))] + val = obj.__dict__[lang_suffix(settings.LANGUAGE_CODE, name)] return val return translated_value