diff --git a/config/settings/base.py b/config/settings/base.py index f328328..737c7ce 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -219,6 +219,8 @@ ('de', _('German')), ) +MODELTRANSLATION_FALLBACK_LANGUAGES = ('en', 'de') + LOCALE_PATHS = [ os.path.join(ROOT_DIR, 'locale'), ] diff --git a/mpicms/base/mixins.py b/mpicms/base/mixins.py index 3f0f7bb..43b2e29 100644 --- a/mpicms/base/mixins.py +++ b/mpicms/base/mixins.py @@ -1,8 +1,9 @@ from django.utils import translation from django.conf import settings from django.db import models -from django.utils.translation import gettext_lazy as _ +from django.utils.translation import gettext_lazy as _, get_language_info from django.contrib.auth import get_user_model +from django.contrib import messages from wagtail.admin.edit_handlers import StreamFieldPanel from wagtail.core.models import Page @@ -64,5 +65,12 @@ def preview_text(self): 'markdown' ] else None + def serve(self, request): + lang = request.LANGUAGE_CODE + if not getattr(self, 'body_' + lang): + messages.info(request, _('Page not available in ') + get_language_info(lang)['name_local']) + + return super().serve(request) + class Meta: # noqa abstract = True