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