Add language selection feature and internationalization support

This commit is contained in:
Eduardo Silva
2025-04-14 15:42:12 -03:00
parent 701f957642
commit e430580aba
18 changed files with 261 additions and 107 deletions

View File

@@ -10,6 +10,7 @@ For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""
import os
from pathlib import Path
# Build paths inside the project like this: BASE_DIR / 'subdir'.
@@ -38,6 +39,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'crispy_forms',
'crispy_bootstrap4',
'intl_tools',
'wireguard',
'user_manager',
'wireguard_tools',
@@ -49,6 +51,7 @@ INSTALLED_APPS = [
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -113,17 +116,22 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'en'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = [
('pt-br', 'Português'),
('en', 'English'),
]
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
]
STATIC_URL = 'static/'
STATIC_ROOT = '/app_static_files/'

View File

@@ -26,6 +26,7 @@ from dns.views import view_apply_dns_config, view_manage_dns_settings, view_mana
from firewall.views import manage_firewall_rule, manage_redirect_rule, view_firewall_migration_required, \
view_firewall_rule_list, view_generate_iptables_script, view_manage_firewall_settings, view_redirect_rule_list, \
view_reset_firewall
from intl_tools.views import view_change_language
from user_manager.views import view_manage_user, view_peer_group_list, view_peer_group_manage, view_user_list
from vpn_invite.views import view_email_settings, view_vpn_invite_list, view_vpn_invite_settings
from vpn_invite_public.views import view_public_vpn_invite
@@ -85,4 +86,5 @@ urlpatterns = [
path('vpn_invite/smtp_settings/', view_email_settings, name='email_settings'),
path('invite/', view_public_vpn_invite, name='public_vpn_invite'),
path('invite/download_config/', download_config_or_qrcode, name='download_config_or_qrcode'),
path('change_language/', view_change_language, name='change_language'),
]