mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-08-26 21:31:14 +00:00
Add language selection feature and internationalization support
This commit is contained in:
0
intl_tools/__init__.py
Normal file
0
intl_tools/__init__.py
Normal file
1
intl_tools/admin.py
Normal file
1
intl_tools/admin.py
Normal file
@@ -0,0 +1 @@
|
||||
# Register your models here.
|
6
intl_tools/apps.py
Normal file
6
intl_tools/apps.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class IntlToolsConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'intl_tools'
|
23
intl_tools/forms.py
Normal file
23
intl_tools/forms.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Column, Layout, Row, Submit
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class LanguageForm(forms.Form):
|
||||
language = forms.ChoiceField(
|
||||
choices=settings.LANGUAGES,
|
||||
label=_("Language"),
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_method = 'post'
|
||||
self.helper.layout = Layout(
|
||||
Row(
|
||||
Column('language', css_class='col-md-6'),
|
||||
),
|
||||
Submit('submit', _("Change Language"), css_class='btn btn-primary')
|
||||
)
|
0
intl_tools/migrations/__init__.py
Normal file
0
intl_tools/migrations/__init__.py
Normal file
1
intl_tools/models.py
Normal file
1
intl_tools/models.py
Normal file
@@ -0,0 +1 @@
|
||||
# Create your models here.
|
1
intl_tools/tests.py
Normal file
1
intl_tools/tests.py
Normal file
@@ -0,0 +1 @@
|
||||
# Create your tests here.
|
25
intl_tools/views.py
Normal file
25
intl_tools/views.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from django.conf import settings
|
||||
from django.shortcuts import redirect, render
|
||||
from django.utils import translation
|
||||
|
||||
from .forms import LanguageForm
|
||||
|
||||
|
||||
def view_change_language(request):
|
||||
if request.method == 'POST':
|
||||
form = LanguageForm(request.POST)
|
||||
if form.is_valid():
|
||||
language = form.cleaned_data['language']
|
||||
translation.activate(language)
|
||||
request.session['django_language'] = language
|
||||
next_url = '/'
|
||||
response = redirect(next_url)
|
||||
response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
|
||||
return response
|
||||
else:
|
||||
form = LanguageForm(initial={'language': translation.get_language()})
|
||||
|
||||
if request.user.is_authenticated:
|
||||
return render(request, 'generic_form.html', {'form': form})
|
||||
else:
|
||||
return render(request, 'generic_form_guest.html', {'form': form})
|
Reference in New Issue
Block a user