feat: Add basic translation support
This commit is contained in:
@@ -12,8 +12,8 @@ from notfellchen.settings import host
|
||||
def mail_admins_new_report(report):
|
||||
subject = _("New report")
|
||||
for moderator in Member.objects.filter(Q(trust_level=Member.MODERATOR) | Q(trust_level=Member.ADMIN)):
|
||||
greeting = _("Moin,\r\n")
|
||||
new_report_text = "es wurde eine Vermittlung gemeldet.\r\n"
|
||||
greeting = _("Moin,") + "\r\n"
|
||||
new_report_text = _("es wurde eine Vermittlung gemeldet.") + "\r\n"
|
||||
if len(report.reported_broken_rules.all()) > 0:
|
||||
reported_rules_text = f"Ein Verstoß gegen die folgenden Regeln wurde gemeldet [{', '.join(report.reported_broken_rules.all())}]\r\n"
|
||||
else:
|
||||
|
@@ -22,9 +22,26 @@
|
||||
<button type="submit">Ausloggen</button>
|
||||
</form>
|
||||
</div>
|
||||
{% else %}
|
||||
{% else %}
|
||||
<a href="{% url "django_registration_register" %}">Registrieren</a>
|
||||
<a href="{% url "login" %}">Einloggen</a>
|
||||
{% endif %}
|
||||
|
||||
<form action="{% url 'change-language' %}" method="post" onchange='this.form.submit()'>
|
||||
{% csrf_token %}
|
||||
<select name="language" onchange='this.form.submit()'>
|
||||
{% get_current_language as LANGUAGE_CODE_CURRENT %}
|
||||
{% get_available_languages as LANGUAGES %}
|
||||
{% for language in LANGUAGES %}
|
||||
<option value="{{ language.0 }}" {% if language.0 == LANGUAGE_CODE_CURRENT %} selected{% endif %}>
|
||||
{{ language.0|language_name_local }}
|
||||
</option>
|
||||
<!--<option value="{{ language.0 }}" {% if language.0 == LANGUAGE_CODE %} selected{% endif %}>
|
||||
{{ language.0|language_name_local }} ({{ language.0 }})
|
||||
</option>-->
|
||||
{% endfor %}
|
||||
</select>
|
||||
<!--<input type="submit" value={% translate "change" %}>-->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
@@ -47,4 +47,6 @@ urlpatterns = [
|
||||
path('accounts/', include('django_registration.backends.activation.urls')),
|
||||
path('accounts/', include('django.contrib.auth.urls')),
|
||||
|
||||
path('change-language', views.change_language, name="change-language")
|
||||
|
||||
]
|
||||
|
@@ -1,6 +1,9 @@
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render, redirect
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from .mail import mail_admins_new_report
|
||||
from notfellchen import settings
|
||||
|
||||
from fellchensammlung.models import AdoptionNotice, MarkdownContent, Animal, Rule, Image, Report, ModerationAction, \
|
||||
Member
|
||||
@@ -15,6 +18,24 @@ def index(request):
|
||||
return render(request, 'fellchensammlung/index.html', context=context)
|
||||
|
||||
|
||||
def change_language(request):
|
||||
if request.method == 'POST':
|
||||
language_code = request.POST.get('language')
|
||||
if language_code:
|
||||
if language_code != settings.LANGUAGE_CODE and language_code in list(zip(*settings.LANGUAGES))[0]:
|
||||
redirect_path = f'/{language_code}/'
|
||||
elif language_code == settings.LANGUAGE_CODE:
|
||||
redirect_path = '/'
|
||||
else:
|
||||
response = HttpResponseRedirect('/')
|
||||
return response
|
||||
from django.utils import translation
|
||||
translation.activate(language_code)
|
||||
response = HttpResponseRedirect(redirect_path)
|
||||
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language_code)
|
||||
return response
|
||||
|
||||
|
||||
def adoption_notice_detail(request, adoption_notice_id):
|
||||
adoption_notice = AdoptionNotice.objects.get(id=adoption_notice_id)
|
||||
context = {"adoption_notice": adoption_notice}
|
||||
@@ -33,6 +54,7 @@ def search(request):
|
||||
return render(request, 'fellchensammlung/search.html', context=context)
|
||||
|
||||
|
||||
@login_required
|
||||
def add_adoption(request):
|
||||
if request.method == 'POST':
|
||||
form = AdoptionNoticeForm(request.POST, request.FILES)
|
||||
@@ -45,6 +67,7 @@ def add_adoption(request):
|
||||
return render(request, 'fellchensammlung/forms/form_add_adoption.html', {'form': form})
|
||||
|
||||
|
||||
@login_required
|
||||
def add_animal_to_adoption(request, adoption_notice_id):
|
||||
if request.method == 'POST':
|
||||
form = AnimalForm(request.POST)
|
||||
|
Reference in New Issue
Block a user