Add region setting to supplement localization (#1875)

This commit is contained in:
Raphael Michel
2020-12-14 13:15:38 +01:00
committed by GitHub
parent e311341d01
commit 04bfa63a5e
46 changed files with 281 additions and 90 deletions

View File

@@ -12,6 +12,7 @@ from pretix.helpers.i18n import (
get_javascript_format_without_seconds, get_moment_locale,
)
from ..base.i18n import get_language_without_region
from .signals import (
footer_link, global_html_footer, global_html_head, global_html_page_header,
html_footer, html_head, html_page_header,
@@ -116,7 +117,7 @@ def _default_context(request):
ctx['js_date_format'] = get_javascript_format_without_seconds('DATE_INPUT_FORMATS')
ctx['js_time_format'] = get_javascript_format_without_seconds('TIME_INPUT_FORMATS')
ctx['js_locale'] = get_moment_locale()
ctx['html_locale'] = translation.get_language_info(translation.get_language()).get('public_code', translation.get_language())
ctx['html_locale'] = translation.get_language_info(get_language_without_region()).get('public_code', translation.get_language())
ctx['settings'] = pretix_settings
ctx['django_settings'] = settings

View File

@@ -329,7 +329,10 @@ def iframe_entry_view_wrapper(view_func):
locale = request.GET.get('locale')
if locale and locale in [lc for lc, ll in settings.LANGUAGES]:
with language(locale):
region = None
if hasattr(request, 'event'):
region = request.event.settings.region
with language(locale, region):
resp = view_func(request, *args, **kwargs)
max_age = 10 * 365 * 24 * 60 * 60
set_cookie_without_samesite(

View File

@@ -599,7 +599,7 @@ class OrganizerIcalDownload(OrganizerViewMixin, View):
)
if 'locale' in request.GET and request.GET.get('locale') in dict(settings.LANGUAGES):
with language(request.GET.get('locale')):
with language(request.GET.get('locale'), self.request.organizer.settings.region):
cal = get_ical(events)
else:
cal = get_ical(events)

View File

@@ -1,7 +1,6 @@
from django.conf import settings
from django.contrib import messages
from django.shortcuts import get_object_or_404, redirect, render
from django.utils import translation
from django.utils.decorators import method_decorator
from django.utils.functional import cached_property
from django.utils.translation import gettext_lazy as _, pgettext_lazy
@@ -12,6 +11,7 @@ from pretix.base.templatetags.urlreplace import url_replace
from pretix.multidomain.urlreverse import eventreverse
from pretix.presale.views import EventViewMixin
from ...base.i18n import get_language_without_region
from ...base.models import Item, ItemVariation, WaitingListEntry
from ..forms.waitinglist import WaitingListForm
from . import allow_frame_if_namespaced
@@ -27,7 +27,7 @@ class WaitingView(EventViewMixin, FormView):
kwargs['event'] = self.request.event
kwargs['instance'] = WaitingListEntry(
item=self.item_and_variation[0], variation=self.item_and_variation[1],
event=self.request.event, locale=translation.get_language(),
event=self.request.event, locale=get_language_without_region(),
subevent=self.subevent
)
return kwargs

View File

@@ -302,8 +302,9 @@ class WidgetAPIProductList(EventListMixin, View):
return self._get_event_view(request, **kwargs)
def dispatch(self, request, *args, **kwargs):
o = getattr(request, 'event', request.organizer)
if 'lang' in request.GET and request.GET.get('lang') in [lc for lc, ll in settings.LANGUAGES]:
with language(request.GET.get('lang')):
with language(request.GET.get('lang'), o.settings.region):
return self.get(request, **kwargs)
else:
return self.get(request, **kwargs)