mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	add initial localization support for the front end #215
This commit is contained in:
		| @@ -13,6 +13,12 @@ | ||||
| 			"root": "", | ||||
| 			"sourceRoot": "src", | ||||
| 			"prefix": "app", | ||||
| 			"i18n": { | ||||
| 				"sourceLocale": "en-US", | ||||
| 				"locales": { | ||||
| 					"de": "src/locale/messages.de-DE.xlf" | ||||
| 				} | ||||
| 			}, | ||||
| 			"architect": { | ||||
| 				"build": { | ||||
| 					"builder": "@angular-devkit/build-angular:browser", | ||||
| @@ -23,6 +29,7 @@ | ||||
| 						"main": "src/main.ts", | ||||
| 						"polyfills": "src/polyfills.ts", | ||||
| 						"tsConfig": "tsconfig.app.json", | ||||
| 						"localize": true, | ||||
| 						"aot": true, | ||||
| 						"assets": [ | ||||
| 							"src/favicon.ico", | ||||
|   | ||||
| @@ -12,11 +12,11 @@ | ||||
| 	<meta name="full_name" content="{{full_name}}"> | ||||
| 	<meta name="cookie_prefix" content="{{cookie_prefix}}"> | ||||
|   <link rel="icon" type="image/x-icon" href="favicon.ico"> | ||||
| <link rel="stylesheet" href="{% static 'frontend/styles.css' %}"></head> | ||||
| <link rel="stylesheet" href="{% static styles_css %}"></head> | ||||
| <body> | ||||
|   <app-root>Loading...</app-root> | ||||
| 	<script src="{% static 'frontend/runtime.js' %}" defer></script> | ||||
| 	<script src="{% static 'frontend/polyfills.js' %}" defer></script> | ||||
| 	<script src="{% static 'frontend/main.js' %}" defer></script> | ||||
| 	<script src="{% static runtime_js %}" defer></script> | ||||
| 	<script src="{% static polyfills_js %}" defer></script> | ||||
| 	<script src="{% static main_js %}" defer></script> | ||||
| </body> | ||||
| </html> | ||||
|   | ||||
| @@ -7,6 +7,7 @@ from django.conf import settings | ||||
| from django.db.models import Count, Max, Case, When, IntegerField | ||||
| from django.db.models.functions import Lower | ||||
| from django.http import HttpResponse, HttpResponseBadRequest, Http404 | ||||
| from django.utils.translation import get_language | ||||
| from django.views.decorators.cache import cache_control | ||||
| from django.views.generic import TemplateView | ||||
| from django_filters.rest_framework import DjangoFilterBackend | ||||
| @@ -61,6 +62,10 @@ class IndexView(TemplateView): | ||||
|         context['cookie_prefix'] = settings.COOKIE_PREFIX | ||||
|         context['username'] = self.request.user.username | ||||
|         context['full_name'] = self.request.user.get_full_name() | ||||
|         context['styles_css'] = f"frontend/{get_language()}/styles.css" | ||||
|         context['runtime_js'] = f"frontend/{get_language()}/runtime.js" | ||||
|         context['polyfills_js'] = f"frontend/{get_language()}/polyfills.js" | ||||
|         context['main_js'] = f"frontend/{get_language()}/main.js" | ||||
|         return context | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -6,6 +6,8 @@ import re | ||||
|  | ||||
| from dotenv import load_dotenv | ||||
|  | ||||
| from django.utils.translation import gettext_lazy as _ | ||||
|  | ||||
| # Tap paperless.conf if it's available | ||||
| if os.path.exists("../paperless.conf"): | ||||
|     load_dotenv("../paperless.conf") | ||||
| @@ -117,6 +119,7 @@ MIDDLEWARE = [ | ||||
|     'whitenoise.middleware.WhiteNoiseMiddleware', | ||||
|     'django.contrib.sessions.middleware.SessionMiddleware', | ||||
|     'corsheaders.middleware.CorsMiddleware', | ||||
|     'django.middleware.locale.LocaleMiddleware', | ||||
|     'django.middleware.common.CommonMiddleware', | ||||
|     'django.middleware.csrf.CsrfViewMiddleware', | ||||
|     'django.contrib.auth.middleware.AuthenticationMiddleware', | ||||
| @@ -246,6 +249,11 @@ if os.getenv("PAPERLESS_DBHOST"): | ||||
|  | ||||
| LANGUAGE_CODE = 'en-us' | ||||
|  | ||||
| LANGUAGES = [ | ||||
|     ("en-us", _("English")), | ||||
|     ("de", _("German")) | ||||
| ] | ||||
|  | ||||
| TIME_ZONE = os.getenv("PAPERLESS_TIME_ZONE", "UTC") | ||||
|  | ||||
| USE_I18N = True | ||||
|   | ||||
| @@ -88,7 +88,8 @@ urlpatterns = [ | ||||
|  | ||||
|     # Frontend assets TODO: this is pretty bad, but it works. | ||||
|     path('assets/<path:path>', | ||||
|          RedirectView.as_view(url='/static/frontend/assets/%(path)s')), | ||||
|          RedirectView.as_view(url='/static/frontend/en-us/assets/%(path)s')), | ||||
|     # TODO: with localization, this is even worse! :/ | ||||
|  | ||||
|     # login, logout | ||||
|     path('accounts/', include('django.contrib.auth.urls')), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jonaswinkler
					jonaswinkler