Merge branch 'dev' into feature-unified-search

This commit is contained in:
jonaswinkler
2021-03-16 20:48:05 +01:00
69 changed files with 2160 additions and 1400 deletions

View File

@@ -143,6 +143,46 @@ def run_convert(input_file,
raise ParseError("Convert failed at {}".format(args))
def get_default_thumbnail():
return os.path.join(os.path.dirname(__file__), "resources", "document.png")
def make_thumbnail_from_pdf_gs_fallback(in_path, temp_dir, logging_group=None):
out_path = os.path.join(temp_dir, "convert_gs.png")
# if convert fails, fall back to extracting
# the first PDF page as a PNG using Ghostscript
logger.warning(
"Thumbnail generation with ImageMagick failed, falling back "
"to ghostscript. Check your /etc/ImageMagick-x/policy.xml!",
extra={'group': logging_group}
)
gs_out_path = os.path.join(temp_dir, "gs_out.png")
cmd = [settings.GS_BINARY,
"-q",
"-sDEVICE=pngalpha",
"-o", gs_out_path,
in_path]
try:
if not subprocess.Popen(cmd).wait() == 0:
raise ParseError("Thumbnail (gs) failed at {}".format(cmd))
# then run convert on the output from gs
run_convert(density=300,
scale="500x5000>",
alpha="remove",
strip=True,
trim=False,
auto_orient=True,
input_file=gs_out_path,
output_file=out_path,
logging_group=logging_group)
return out_path
except ParseError:
return get_default_thumbnail()
def make_thumbnail_from_pdf(in_path, temp_dir, logging_group=None):
"""
The thumbnail of a PDF is just a 500px wide image of the first page.
@@ -161,31 +201,8 @@ def make_thumbnail_from_pdf(in_path, temp_dir, logging_group=None):
output_file=out_path,
logging_group=logging_group)
except ParseError:
# if convert fails, fall back to extracting
# the first PDF page as a PNG using Ghostscript
logger.warning(
"Thumbnail generation with ImageMagick failed, falling back "
"to ghostscript. Check your /etc/ImageMagick-x/policy.xml!",
extra={'group': logging_group}
)
gs_out_path = os.path.join(temp_dir, "gs_out.png")
cmd = [settings.GS_BINARY,
"-q",
"-sDEVICE=pngalpha",
"-o", gs_out_path,
in_path]
if not subprocess.Popen(cmd).wait() == 0:
raise ParseError("Thumbnail (gs) failed at {}".format(cmd))
# then run convert on the output from gs
run_convert(density=300,
scale="500x5000>",
alpha="remove",
strip=True,
trim=False,
auto_orient=True,
input_file=gs_out_path,
output_file=out_path,
logging_group=logging_group)
out_path = make_thumbnail_from_pdf_gs_fallback(
in_path, temp_dir, logging_group)
return out_path

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -50,7 +50,7 @@ class MatchingModelSerializer(serializers.ModelSerializer):
re.compile(match)
except Exception as e:
raise serializers.ValidationError(
_("Invalid regular expresssion: %(error)s") %
_("Invalid regular expression: %(error)s") %
{'error': str(e)}
)
return match

View File

@@ -18,6 +18,7 @@ from django_q.tasks import async_task
from rest_framework import parsers
from rest_framework.decorators import action
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import (
DestroyModelMixin,
ListModelMixin,
@@ -406,23 +407,12 @@ class SavedViewViewSet(ModelViewSet):
serializer.save(user=self.request.user)
class BulkEditView(APIView):
class BulkEditView(GenericAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = BulkEditSerializer
parser_classes = (parsers.JSONParser,)
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self
}
def get_serializer(self, *args, **kwargs):
kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs)
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
@@ -439,23 +429,12 @@ class BulkEditView(APIView):
return HttpResponseBadRequest(str(e))
class PostDocumentView(APIView):
class PostDocumentView(GenericAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = PostDocumentSerializer
parser_classes = (parsers.MultiPartParser,)
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self
}
def get_serializer(self, *args, **kwargs):
kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs)
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
@@ -493,23 +472,12 @@ class PostDocumentView(APIView):
return Response("OK")
class SelectionDataView(APIView):
class SelectionDataView(GenericAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = DocumentListSerializer
parser_classes = (parsers.MultiPartParser, parsers.JSONParser)
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self
}
def get_serializer(self, *args, **kwargs):
kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs)
def post(self, request, format=None):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
@@ -660,23 +628,12 @@ class StatisticsView(APIView):
})
class BulkDownloadView(APIView):
class BulkDownloadView(GenericAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = BulkDownloadSerializer
parser_classes = (parsers.JSONParser,)
def get_serializer_context(self):
return {
'request': self.request,
'format': self.format_kwarg,
'view': self
}
def get_serializer(self, *args, **kwargs):
kwargs['context'] = self.get_serializer_context()
return self.serializer_class(*args, **kwargs)
def post(self, request, format=None):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:58\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -226,7 +226,7 @@ msgstr "záznam"
msgid "logs"
msgstr "záznamy"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "uložený pohled"
@@ -326,25 +326,33 @@ msgstr "upraveno po"
msgid "does not have tag"
msgstr "nemá tag"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr ""
#: documents/models.py:400
msgid "rule type"
msgstr "typ pravidla"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "hodnota"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "filtrovací pravidlo"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "filtrovací pravidla"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Heslo"
msgid "Sign in"
msgstr "Přihlásit se"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr ""
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Němčina"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Holandština"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Francouzština"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr ""
#: paperless/settings.py:306
msgid "Russian"
msgstr ""
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Správa Paperless-ng"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:58\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -226,7 +226,7 @@ msgstr "Protokoll"
msgid "logs"
msgstr "Protokoll"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "Gespeicherte Ansicht"
@@ -326,25 +326,33 @@ msgstr "Geändert nach"
msgid "does not have tag"
msgstr "Hat nicht folgendes Tag"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "Dokument hat keine ASN"
#: documents/models.py:389
msgid "title or content contains"
msgstr "Titel oder Inhalt enthält"
#: documents/models.py:400
msgid "rule type"
msgstr "Regeltyp"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "Wert"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "Filterregel"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "Filterregeln"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Ungültiger regulärer Ausdruck: %(error)s"
#: documents/serialisers.py:177
@@ -382,7 +390,7 @@ msgstr "Bitte melden Sie sich an."
#: documents/templates/registration/login.html:45
msgid "Your username and password didn't match. Please try again."
msgstr "Ihr Benutzername und Passwort stimmen nicht überein. Bitte versuchen Sie es erneut."
msgstr "Ihr Benutzername und Kennwort stimmen nicht überein. Bitte versuchen Sie es erneut."
#: documents/templates/registration/login.html:48
msgid "Username"
@@ -390,44 +398,52 @@ msgstr "Benutzername"
#: documents/templates/registration/login.html:49
msgid "Password"
msgstr "Passwort"
msgstr "Kennwort"
#: documents/templates/registration/login.html:54
msgid "Sign in"
msgstr "Anmelden"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Englisch (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Englisch (UK)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Niederländisch"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Französisch"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portugiesisch (Brasilien)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italienisch"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Rumänisch"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Spanisch"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Paperless-ng Administration"
@@ -502,7 +518,7 @@ msgstr "Benutzername"
#: paperless_mail/models.py:50
msgid "password"
msgstr "Passwort"
msgstr "Kennwort"
#: paperless_mail/models.py:60
msgid "mail rule"
@@ -618,7 +634,7 @@ msgstr "Parameter für Aktion"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Zusätzlicher Parameter für die oben ausgewählte Aktion, zum Beispiel der Zielordner für die Aktion \"In angegebenen Ordner verschieben\""
msgstr "Zusätzlicher Parameter für die oben ausgewählte Aktion, zum Beispiel der Zielordner für die Aktion \"In angegebenen Ordner verschieben\"."
#: paperless_mail/models.py:173
msgid "assign title from"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 20:04\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Language: en_GB\n"
@@ -226,7 +226,7 @@ msgstr "log"
msgid "logs"
msgstr "logs"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "saved view"
@@ -326,26 +326,34 @@ msgstr "modified after"
msgid "does not have tag"
msgstr "does not have tag"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "does not have ASN"
#: documents/models.py:389
msgid "title or content contains"
msgstr "title or content contains"
#: documents/models.py:400
msgid "rule type"
msgstr "rule type"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "value"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "filter rule"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "filter rules"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgstr "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Invalid regular expression: %(error)s"
#: documents/serialisers.py:177
msgid "Invalid color."
@@ -396,38 +404,46 @@ msgstr "Password"
msgid "Sign in"
msgstr "Sign in"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "English (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "English (GB)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "German"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Dutch"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "French"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portuguese (Brazil)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italian"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Romanian"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russian"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Spanish"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Paperless-ng administration"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -230,7 +230,7 @@ msgstr ""
msgid "logs"
msgstr ""
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr ""
@@ -330,25 +330,33 @@ msgstr ""
msgid "does not have tag"
msgstr ""
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr ""
#: documents/models.py:400
msgid "rule type"
msgstr ""
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr ""
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr ""
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:177
@@ -400,38 +408,46 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr ""
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr ""
#: paperless/settings.py:306
msgid "Russian"
msgstr ""
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 20:04\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -39,7 +39,7 @@ msgstr "Expresión regular"
#: documents/models.py:36
msgid "Fuzzy word"
msgstr ""
msgstr "Palabra borrosa"
#: documents/models.py:37
msgid "Automatic"
@@ -52,23 +52,23 @@ msgstr "nombre"
#: documents/models.py:45
msgid "match"
msgstr ""
msgstr "coincidencia"
#: documents/models.py:49
msgid "matching algorithm"
msgstr ""
msgstr "Algoritmo de coincidencia"
#: documents/models.py:55
msgid "is insensitive"
msgstr ""
msgstr "es insensible"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
msgstr ""
msgstr "Tipo de documento"
#: documents/models.py:75
msgid "correspondents"
msgstr ""
msgstr "Tipos de documento"
#: documents/models.py:81
msgid "color"
@@ -76,11 +76,11 @@ msgstr "color"
#: documents/models.py:87
msgid "is inbox tag"
msgstr ""
msgstr "es etiqueta de bandeja"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr ""
msgstr "Marca esta etiqueta como una etiqueta de bandeja: todos los documentos recién consumidos serán etiquetados con las etiquetas de bandeja."
#: documents/models.py:94
msgid "tag"
@@ -116,7 +116,7 @@ msgstr "contenido"
#: documents/models.py:139
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr ""
msgstr "Los datos de texto en bruto del documento. Este campo se utiliza principalmente para las búsquedas."
#: documents/models.py:144
msgid "mime type"
@@ -124,19 +124,19 @@ msgstr "tipo MIME"
#: documents/models.py:155
msgid "checksum"
msgstr ""
msgstr "Cadena de verificación"
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr ""
msgstr "La cadena de verificación del documento original."
#: documents/models.py:163
msgid "archive checksum"
msgstr ""
msgstr "cadena de comprobación del archivo"
#: documents/models.py:168
msgid "The checksum of the archived document."
msgstr ""
msgstr "La cadena de verificación del documento archivado."
#: documents/models.py:172 documents/models.py:328
msgid "created"
@@ -152,27 +152,27 @@ msgstr "tipo de almacenamiento"
#: documents/models.py:188
msgid "added"
msgstr ""
msgstr "añadido"
#: documents/models.py:192
msgid "filename"
msgstr ""
msgstr "nombre del archivo"
#: documents/models.py:198
msgid "Current filename in storage"
msgstr ""
msgstr "Nombre de archivo actual en disco"
#: documents/models.py:202
msgid "archive filename"
msgstr ""
msgstr "nombre de archivo"
#: documents/models.py:208
msgid "Current archive filename in storage"
msgstr ""
msgstr "Nombre de archivo actual en disco"
#: documents/models.py:212
msgid "archive serial number"
msgstr ""
msgstr "número de serie del archivo"
#: documents/models.py:217
msgid "The position of this document in your physical document archive."
@@ -226,7 +226,7 @@ msgstr "log"
msgid "logs"
msgstr "logs"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "vista guardada"
@@ -240,7 +240,7 @@ msgstr "usuario"
#: documents/models.py:354
msgid "show on dashboard"
msgstr ""
msgstr "mostrar en el panel de control"
#: documents/models.py:357
msgid "show in sidebar"
@@ -264,11 +264,11 @@ msgstr "el contenido contiene"
#: documents/models.py:372
msgid "ASN is"
msgstr ""
msgstr "ASN es"
#: documents/models.py:373
msgid "correspondent is"
msgstr ""
msgstr "tipo de documento es"
#: documents/models.py:374
msgid "document type is"
@@ -276,7 +276,7 @@ msgstr "el tipo de documento es"
#: documents/models.py:375
msgid "is in inbox"
msgstr ""
msgstr "está en la bandeja de entrada"
#: documents/models.py:376
msgid "has tag"
@@ -326,25 +326,33 @@ msgstr "modificado antes de"
msgid "does not have tag"
msgstr "no tiene la etiqueta"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "no tiene ASN"
#: documents/models.py:389
msgid "title or content contains"
msgstr "el título o cuerpo contiene"
#: documents/models.py:400
msgid "rule type"
msgstr "tipo de regla"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "valor"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr ""
msgstr "regla de filtrado"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr ""
msgstr "reglas de filtrado"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Expresión irregular inválida: %(error)s"
#: documents/serialisers.py:177
@@ -358,7 +366,7 @@ msgstr "Tipo de fichero %(type)s no suportado"
#: documents/templates/index.html:21
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng está cargándose"
msgstr "Paperless-ng está cargándose..."
#: documents/templates/registration/logged_out.html:13
msgid "Paperless-ng signed out"
@@ -396,38 +404,46 @@ msgstr "Contraseña"
msgid "Sign in"
msgstr "Iniciar sesión"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Inglés (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Inglés (Gran Bretaña)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Alemán"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Alemán"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Francés"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portugués (Brasil)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Rumano"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Ruso"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Español"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Paperless-ng Administración"
@@ -446,7 +462,7 @@ msgstr "Acciones"
#: paperless_mail/admin.py:39
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr ""
msgstr "La acción aplicada al correo. Esta acción solo se realiza cuando los documentos se consumen del correo. Los correos sin archivos adjuntos permanecerán totalmente intactos."
#: paperless_mail/admin.py:46
msgid "Metadata"
@@ -454,11 +470,11 @@ msgstr "Metadatos"
#: paperless_mail/admin.py:48
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr ""
msgstr "Asignar metadatos a documentos consumidos por esta regla automáticamente. Si no asigna etiquetas, o ipos aquí, paperless procesará igualmente todas las reglas que haya definido."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
msgstr ""
msgstr "Correo Paperless"
#: paperless_mail/models.py:11
msgid "mail account"
@@ -546,7 +562,7 @@ msgstr "Usar nombre del fichero adjunto como título"
#: paperless_mail/models.py:99
msgid "Do not assign a correspondent"
msgstr ""
msgstr "No asignar un tipo de documento"
#: paperless_mail/models.py:101
msgid "Use mail address"
@@ -558,7 +574,7 @@ msgstr "Usar nombre (o dirección de correo si no está disponible)"
#: paperless_mail/models.py:105
msgid "Use correspondent selected below"
msgstr ""
msgstr "Usar el tipo seleccionado debajo"
#: paperless_mail/models.py:113
msgid "order"
@@ -574,7 +590,7 @@ msgstr "carpeta"
#: paperless_mail/models.py:128
msgid "filter from"
msgstr ""
msgstr "filtrar desde"
#: paperless_mail/models.py:131
msgid "filter subject"
@@ -590,7 +606,7 @@ msgstr "filtrar nombre del fichero adjunto"
#: paperless_mail/models.py:140
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
msgstr "Sólo consumirá documentos que coincidan completamente con este nombre de archivo si se especifica. Se permiten comodines como *.pdf o *factura*. No diferencia mayúsculas."
#: paperless_mail/models.py:146
msgid "maximum age"
@@ -634,9 +650,9 @@ msgstr "asignar este tipo de documento"
#: paperless_mail/models.py:195
msgid "assign correspondent from"
msgstr ""
msgstr "Asignar tipo de documento desde"
#: paperless_mail/models.py:205
msgid "assign this correspondent"
msgstr ""
msgstr "asignar este tipo de documento"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 20:04\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -220,13 +220,13 @@ msgstr "niveau"
#: documents/models.py:332
msgid "log"
msgstr "rapport"
msgstr "journal"
#: documents/models.py:333
msgid "logs"
msgstr "rapports"
msgstr "journaux"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "vue enregistrée"
@@ -326,25 +326,33 @@ msgstr "modifié après"
msgid "does not have tag"
msgstr "ne porte pas d'étiquette"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "ne porte pas de NSA"
#: documents/models.py:389
msgid "title or content contains"
msgstr "le titre ou le contenu contient"
#: documents/models.py:400
msgid "rule type"
msgstr "type de règle"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "valeur"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "règle de filtrage"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "règles de filtrage"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Expression régulière incorrecte : %(error)s"
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Mot de passe"
msgid "Sign in"
msgstr "S'identifier"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Anglais (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Anglais (GB)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Allemand"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Néerlandais"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Français"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portugais (Brésil)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italien"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Roumain"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russe"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Espagnol"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Administration de Paperless-ng"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:57\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -226,7 +226,7 @@ msgstr ""
msgid "logs"
msgstr ""
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr ""
@@ -326,25 +326,33 @@ msgstr ""
msgid "does not have tag"
msgstr ""
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr ""
#: documents/models.py:400
msgid "rule type"
msgstr ""
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr ""
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr ""
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Angol (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Német"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr ""
#: paperless/settings.py:306
msgid "Russian"
msgstr ""
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 18:56\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -226,7 +226,7 @@ msgstr "log"
msgid "logs"
msgstr "log"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "vista salvata"
@@ -326,25 +326,33 @@ msgstr "modificato dopo"
msgid "does not have tag"
msgstr "non ha tag"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "non ha ASN"
#: documents/models.py:389
msgid "title or content contains"
msgstr "il titolo o il contenuto contiene"
#: documents/models.py:400
msgid "rule type"
msgstr "tipo di regola"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "valore"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "regola filtro"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "regole filtro"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Espressione regolare non valida: %(error)s"
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Password"
msgid "Sign in"
msgstr "Accedi"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Inglese (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Inglese (GB)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Tedesco"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Olandese"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Francese"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portoghese (Brasile)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Rumeno"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Spagnolo"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Amministrazione di Paperless-ng"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 15:58\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -226,7 +226,7 @@ msgstr "bericht"
msgid "logs"
msgstr "berichten"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "opgeslagen view"
@@ -326,25 +326,33 @@ msgstr "gewijzigd na"
msgid "does not have tag"
msgstr "heeft geen etiket"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "heeft geen ASN"
#: documents/models.py:389
msgid "title or content contains"
msgstr "titel of inhoud bevat"
#: documents/models.py:400
msgid "rule type"
msgstr "type regel"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "waarde"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "filterregel"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "filterregels"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Ongeldige reguliere expressie: %(error)s"
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Wachtwoord"
msgid "Sign in"
msgstr "Aanmelden"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Engels (US)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Engels (Brits)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Duits"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Nederlands"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Frans"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portugees (Brazilië)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italiaans"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Roemeens"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Spaans"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Paperless-ng administratie"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:57\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -226,7 +226,7 @@ msgstr "log"
msgid "logs"
msgstr "logs"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "visualização"
@@ -326,25 +326,33 @@ msgstr "modificado depois de"
msgid "does not have tag"
msgstr "não tem etiqueta"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr "título ou conteúdo contém"
#: documents/models.py:400
msgid "rule type"
msgstr "tipo de regra"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "valor"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "regra de filtragem"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "regras de filtragem"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Expressão regular inválida: %(error)s"
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Senha"
msgid "Sign in"
msgstr "Entrar"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Inglês (GB)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Alemão"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Holandês"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Francês"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Romeno"
#: paperless/settings.py:306
msgid "Russian"
msgstr ""
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Administração do Paperless-ng"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 14:58\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -48,35 +48,35 @@ msgstr "Automático"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
msgid "name"
msgstr ""
msgstr "nome"
#: documents/models.py:45
msgid "match"
msgstr ""
msgstr "correspondência"
#: documents/models.py:49
msgid "matching algorithm"
msgstr ""
msgstr "algoritmo correspondente"
#: documents/models.py:55
msgid "is insensitive"
msgstr ""
msgstr "é insensível"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
msgstr ""
msgstr "correspondente"
#: documents/models.py:75
msgid "correspondents"
msgstr ""
msgstr "correspondentes"
#: documents/models.py:81
msgid "color"
msgstr ""
msgstr "cor"
#: documents/models.py:87
msgid "is inbox tag"
msgstr ""
msgstr "é etiqueta de novo"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
@@ -84,35 +84,35 @@ msgstr ""
#: documents/models.py:94
msgid "tag"
msgstr ""
msgstr "etiqueta"
#: documents/models.py:95 documents/models.py:151
msgid "tags"
msgstr ""
msgstr "etiquetas"
#: documents/models.py:101 documents/models.py:133
msgid "document type"
msgstr ""
msgstr "tipo de documento"
#: documents/models.py:102
msgid "document types"
msgstr ""
msgstr "tipos de documento"
#: documents/models.py:110
msgid "Unencrypted"
msgstr ""
msgstr "Não encriptado"
#: documents/models.py:111
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
msgstr "Encriptado com GNU Privacy Guard"
#: documents/models.py:124
msgid "title"
msgstr ""
msgstr "título"
#: documents/models.py:137
msgid "content"
msgstr ""
msgstr "conteúdo"
#: documents/models.py:139
msgid "The raw, text-only data of the document. This field is primarily used for searching."
@@ -140,23 +140,23 @@ msgstr ""
#: documents/models.py:172 documents/models.py:328
msgid "created"
msgstr ""
msgstr "criado"
#: documents/models.py:176
msgid "modified"
msgstr ""
msgstr "modificado"
#: documents/models.py:180
msgid "storage type"
msgstr ""
msgstr "tipo de armazenamento"
#: documents/models.py:188
msgid "added"
msgstr ""
msgstr "adicionado"
#: documents/models.py:192
msgid "filename"
msgstr ""
msgstr "nome de ficheiro"
#: documents/models.py:198
msgid "Current filename in storage"
@@ -180,53 +180,53 @@ msgstr ""
#: documents/models.py:223
msgid "document"
msgstr ""
msgstr "documento"
#: documents/models.py:224
msgid "documents"
msgstr ""
msgstr "documentos"
#: documents/models.py:311
msgid "debug"
msgstr ""
msgstr "depurar"
#: documents/models.py:312
msgid "information"
msgstr ""
msgstr "informação"
#: documents/models.py:313
msgid "warning"
msgstr ""
msgstr "aviso"
#: documents/models.py:314
msgid "error"
msgstr ""
msgstr "erro"
#: documents/models.py:315
msgid "critical"
msgstr ""
msgstr "crítico"
#: documents/models.py:319
msgid "group"
msgstr ""
msgstr "grupo"
#: documents/models.py:322
msgid "message"
msgstr ""
msgstr "mensagem"
#: documents/models.py:325
msgid "level"
msgstr ""
msgstr "nível"
#: documents/models.py:332
msgid "log"
msgstr ""
msgstr "registo"
#: documents/models.py:333
msgid "logs"
msgstr ""
msgstr "registos"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr ""
@@ -236,11 +236,11 @@ msgstr ""
#: documents/models.py:348
msgid "user"
msgstr ""
msgstr "utilizador"
#: documents/models.py:354
msgid "show on dashboard"
msgstr ""
msgstr "exibir no painel de controlo"
#: documents/models.py:357
msgid "show in sidebar"
@@ -326,25 +326,33 @@ msgstr ""
msgid "does not have tag"
msgstr ""
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr ""
#: documents/models.py:400
msgid "rule type"
msgstr ""
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr ""
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr ""
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "English (GB)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Nederlandse"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Français"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr ""
#: paperless/settings.py:306
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Espanhol"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:57\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -23,7 +23,7 @@ msgstr "Documente"
#: documents/models.py:32
msgid "Any word"
msgstr "Orice cuvant"
msgstr "Orice cuvânt"
#: documents/models.py:33
msgid "All words"
@@ -31,15 +31,15 @@ msgstr "Toate cuvintele"
#: documents/models.py:34
msgid "Exact match"
msgstr "Potrivire exacta"
msgstr "Potrivire exactă"
#: documents/models.py:35
msgid "Regular expression"
msgstr "Expresie regulata"
msgstr "Expresie regulată"
#: documents/models.py:36
msgid "Fuzzy word"
msgstr "Cuvant neclar"
msgstr "Mod neatent"
#: documents/models.py:37
msgid "Automatic"
@@ -60,7 +60,7 @@ msgstr "algoritm de potrivire"
#: documents/models.py:55
msgid "is insensitive"
msgstr "ignora majusculele"
msgstr "nu ține cont de majuscule"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
@@ -68,7 +68,7 @@ msgstr "corespondent"
#: documents/models.py:75
msgid "correspondents"
msgstr "corespondenti"
msgstr "corespondenți"
#: documents/models.py:81
msgid "color"
@@ -76,15 +76,15 @@ msgstr "culoare"
#: documents/models.py:87
msgid "is inbox tag"
msgstr "este eticheta inbox"
msgstr "este etichetă inbox"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Marcheaza aceasta eticheta ca eticheta inbox: Toate documentele nou consumate primesc aceasta eticheta."
msgstr "Marchează aceasta eticheta ca etichetă inbox: Toate documentele nou consumate primesc aceasta eticheta."
#: documents/models.py:94
msgid "tag"
msgstr "eticheta"
msgstr "etichetă"
#: documents/models.py:95 documents/models.py:151
msgid "tags"
@@ -112,19 +112,19 @@ msgstr "titlu"
#: documents/models.py:137
msgid "content"
msgstr "continut"
msgstr "conținut"
#: documents/models.py:139
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Textul brut al documentului. Acest camp este folosit in principal pentru cautare."
msgstr "Textul brut al documentului. Acest camp este folosit in principal pentru căutare."
#: documents/models.py:144
msgid "mime type"
msgstr "tip mime"
msgstr "tip MIME"
#: documents/models.py:155
msgid "checksum"
msgstr "suma de control"
msgstr "sumă de control"
#: documents/models.py:159
msgid "The checksum of the original document."
@@ -152,19 +152,19 @@ msgstr "tip de stocare"
#: documents/models.py:188
msgid "added"
msgstr "adaugat"
msgstr "adăugat"
#: documents/models.py:192
msgid "filename"
msgstr "nume fisier"
msgstr "nume fișier"
#: documents/models.py:198
msgid "Current filename in storage"
msgstr "Numele curent al fisierului stocat"
msgstr "Numele curent al fișierului stocat"
#: documents/models.py:202
msgid "archive filename"
msgstr "nume fisier arhiva"
msgstr "nume fișier arhiva"
#: documents/models.py:208
msgid "Current archive filename in storage"
@@ -172,11 +172,11 @@ msgstr "Numele curent al arhivei stocate"
#: documents/models.py:212
msgid "archive serial number"
msgstr "numar serial in arhiva"
msgstr "număr serial in arhiva"
#: documents/models.py:217
msgid "The position of this document in your physical document archive."
msgstr "Pozitia acestui document in arhiva fizica."
msgstr "Poziția acestui document in arhiva fizica."
#: documents/models.py:223
msgid "document"
@@ -192,7 +192,7 @@ msgstr "depanare"
#: documents/models.py:312
msgid "information"
msgstr "informatii"
msgstr "informații"
#: documents/models.py:313
msgid "warning"
@@ -226,13 +226,13 @@ msgstr "jurnal"
msgid "logs"
msgstr "jurnale"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "vizualizare"
#: documents/models.py:345
msgid "saved views"
msgstr "vizualizari"
msgstr "vizualizări"
#: documents/models.py:348
msgid "user"
@@ -240,31 +240,31 @@ msgstr "utilizator"
#: documents/models.py:354
msgid "show on dashboard"
msgstr "afiseaza pe tabloul de bord"
msgstr "afișează pe tabloul de bord"
#: documents/models.py:357
msgid "show in sidebar"
msgstr "afiseaza in bara laterala"
msgstr "afișează in bara laterala"
#: documents/models.py:361
msgid "sort field"
msgstr "sorteaza camp"
msgstr "sortează camp"
#: documents/models.py:364
msgid "sort reverse"
msgstr "sorteaza invers"
msgstr "sortează invers"
#: documents/models.py:370
msgid "title contains"
msgstr "titlul contine"
msgstr "titlul conține"
#: documents/models.py:371
msgid "content contains"
msgstr "continutul contine"
msgstr "conținutul conține"
#: documents/models.py:372
msgid "ASN is"
msgstr "ASN-ul este"
msgstr "Avizul prealabil de expediție este"
#: documents/models.py:373
msgid "correspondent is"
@@ -276,7 +276,7 @@ msgstr "tipul documentului este"
#: documents/models.py:375
msgid "is in inbox"
msgstr "este in inbox"
msgstr "este în inbox"
#: documents/models.py:376
msgid "has tag"
@@ -288,77 +288,85 @@ msgstr "are orice eticheta"
#: documents/models.py:378
msgid "created before"
msgstr "creat inainte de"
msgstr "creat înainte de"
#: documents/models.py:379
msgid "created after"
msgstr "creat dupa"
msgstr "creat după"
#: documents/models.py:380
msgid "created year is"
msgstr "anul crearii este"
msgstr "anul creării este"
#: documents/models.py:381
msgid "created month is"
msgstr "luna crearii este"
msgstr "luna creării este"
#: documents/models.py:382
msgid "created day is"
msgstr "ziua crearii este"
msgstr "ziua creării este"
#: documents/models.py:383
msgid "added before"
msgstr "adaugat inainte de"
msgstr "adăugat înainte de"
#: documents/models.py:384
msgid "added after"
msgstr "adaugat dupa"
msgstr "adăugat după"
#: documents/models.py:385
msgid "modified before"
msgstr "modificat inainte de"
msgstr "modificat înainte de"
#: documents/models.py:386
msgid "modified after"
msgstr "modificat dupa"
msgstr "modificat după"
#: documents/models.py:387
msgid "does not have tag"
msgstr "nu are eticheta"
msgstr "nu are etichetă"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "nu are aviz prealabil de expediție"
#: documents/models.py:389
msgid "title or content contains"
msgstr "titlul sau conținutul conține"
#: documents/models.py:400
msgid "rule type"
msgstr "tip de regula"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "valoare"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "regula de filtrare"
msgstr "regulă de filtrare"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "reguli de filtrare"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgstr "Expresie regulata invalida: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "Expresie regulată invalida: %(error)s"
#: documents/serialisers.py:177
msgid "Invalid color."
msgstr "Culoare invalida."
msgstr "Culoare invalidă."
#: documents/serialisers.py:451
#, python-format
msgid "File type %(type)s not supported"
msgstr "Tip de fisier %(type)s nesuportat "
msgstr "Tip de fișier %(type)s nesuportat"
#: documents/templates/index.html:21
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng se incarca..."
msgstr "Paperless-ng se încarca..."
#: documents/templates/registration/logged_out.html:13
msgid "Paperless-ng signed out"
@@ -366,11 +374,11 @@ msgstr "Paperless-ng s-a deconectat"
#: documents/templates/registration/logged_out.html:41
msgid "You have been successfully logged out. Bye!"
msgstr "Ati fost deconectat cu succes. La revedere !"
msgstr "Ați fost deconectat cu succes. La revedere!"
#: documents/templates/registration/logged_out.html:42
msgid "Sign in again"
msgstr "Conectati-va din nou"
msgstr "Conectați-vă din nou"
#: documents/templates/registration/login.html:13
msgid "Paperless-ng sign in"
@@ -378,11 +386,11 @@ msgstr "Conectare Paperless-ng"
#: documents/templates/registration/login.html:42
msgid "Please sign in."
msgstr "Va rugam conectati-va."
msgstr "Vă rugăm conectați-vă."
#: documents/templates/registration/login.html:45
msgid "Your username and password didn't match. Please try again."
msgstr "Numele si parola nu sunt corecte. Va rugam incercati din nou."
msgstr "Numele si parola nu sunt corecte. Vă rugăm incercați din nou."
#: documents/templates/registration/login.html:48
msgid "Username"
@@ -390,43 +398,51 @@ msgstr "Nume"
#: documents/templates/registration/login.html:49
msgid "Password"
msgstr "Parola"
msgstr "Parolă"
#: documents/templates/registration/login.html:54
msgid "Sign in"
msgstr "Conectare"
#: paperless/settings.py:297
msgid "English (US)"
msgstr "Engleza (SUA)"
#: paperless/settings.py:298
msgid "English (GB)"
msgstr "Engleza (UK)"
msgid "English (US)"
msgstr "Engleză (Americană)"
#: paperless/settings.py:299
msgid "German"
msgstr "Germana"
msgid "English (GB)"
msgstr "Engleză (Britanică)"
#: paperless/settings.py:300
msgid "Dutch"
msgstr "Olandeza"
msgid "German"
msgstr "Germană"
#: paperless/settings.py:301
msgid "French"
msgstr "Franceza"
msgid "Dutch"
msgstr "Olandeză"
#: paperless/settings.py:302
msgid "Portuguese (Brazil)"
msgstr "Portugheza (Brazilia)"
msgid "French"
msgstr "Franceză"
#: paperless/settings.py:303
msgid "Italian"
msgstr "Italiana"
msgid "Portuguese (Brazil)"
msgstr "Portugheză (Brazilia)"
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italiană"
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Romana"
msgstr "Română"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Rusă"
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
@@ -438,7 +454,7 @@ msgstr "Filtru"
#: paperless_mail/admin.py:27
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless va procesa numai email-urile care se potrivesc cu TOATE filtrele de mai jos."
msgstr "Paperless va procesa doar mail-urile care corespund TUTUROR filtrelor date mai jos."
#: paperless_mail/admin.py:37
msgid "Actions"
@@ -446,7 +462,7 @@ msgstr "Acțiuni"
#: paperless_mail/admin.py:39
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Actiunea aplicata tuturol email-urilor. Aceasta este realizata doar cand sunt consumate documente din email. Cele fara atasamente nu vor fi procesate."
msgstr "Acțiunea aplicată tuturor email-urilor. Aceasta este realizată doar când sunt consumate documente din email. Cele fara atașamente nu vor fi procesate."
#: paperless_mail/admin.py:46
msgid "Metadata"
@@ -454,7 +470,7 @@ msgstr "Metadate"
#: paperless_mail/admin.py:48
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Atribuie metadate documentelor consumate prin aceasta regula in mod automat. Chiar daca nu sunt atribuite etichete, tipuri sau corespondenti, Paperless va procesa toate regulile definite care se potrivesc."
msgstr "Atribuie metadate documentelor consumate prin aceasta regula în mod automat. Chiar dacă nu sunt atribuite etichete, tipuri sau corespondenți, Paperless va procesa toate regulile definite care se potrivesc."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
@@ -470,15 +486,15 @@ msgstr "conturi de email"
#: paperless_mail/models.py:19
msgid "No encryption"
msgstr "Fara criptare"
msgstr "Fără criptare"
#: paperless_mail/models.py:20
msgid "Use SSL"
msgstr "Foloseste SSL"
msgstr "Folosește SSL"
#: paperless_mail/models.py:21
msgid "Use STARTTLS"
msgstr "Foloseste STARTTLS"
msgstr "Folosește STARTTLS"
#: paperless_mail/models.py:29
msgid "IMAP server"
@@ -490,7 +506,7 @@ msgstr "port IMAP"
#: paperless_mail/models.py:36
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "De obicei este 143 pentru conexiuni necriptate si STARTTLS, sau 993 pentru conexiuni SSL."
msgstr "De obicei este 143 pentru conexiuni necriptate și STARTTLS, sau 993 pentru conexiuni SSL."
#: paperless_mail/models.py:40
msgid "IMAP security"
@@ -502,11 +518,11 @@ msgstr "nume"
#: paperless_mail/models.py:50
msgid "password"
msgstr "parola"
msgstr "parolă"
#: paperless_mail/models.py:60
msgid "mail rule"
msgstr "regula email"
msgstr "regulă email"
#: paperless_mail/models.py:61
msgid "mail rules"
@@ -514,35 +530,35 @@ msgstr "reguli email"
#: paperless_mail/models.py:67
msgid "Only process attachments."
msgstr "Proceseaza doar atasamentele."
msgstr "Procesează doar atașamentele."
#: paperless_mail/models.py:68
msgid "Process all files, including 'inline' attachments."
msgstr "Proceseaza toate fisierele, inclusiv atasamentele \"inline\"."
msgstr "Procesează toate fișierele, inclusiv atașamentele inline."
#: paperless_mail/models.py:78
msgid "Mark as read, don't process read mails"
msgstr "Marcheaza ca citit, nu procesa email-uri citite"
msgstr "Marchează ca citit, nu procesa email-uri citite"
#: paperless_mail/models.py:79
msgid "Flag the mail, don't process flagged mails"
msgstr "Semnalizeaza, nu procesa email-uri semnalizate"
msgstr "Marchează, nu procesa email-uri marcate"
#: paperless_mail/models.py:80
msgid "Move to specified folder"
msgstr "Muta in directorul specificat"
msgstr "Mută în directorul specificat"
#: paperless_mail/models.py:81
msgid "Delete"
msgstr "Sterge"
msgstr "Șterge"
#: paperless_mail/models.py:88
msgid "Use subject as title"
msgstr "Foloseste subiectul ca titlu"
msgstr "Utilizează subiectul ca titlu"
#: paperless_mail/models.py:89
msgid "Use attachment filename as title"
msgstr "Foloseste numele atasamentului ca titlu"
msgstr "Utilizează numele fișierului atașat ca titlu"
#: paperless_mail/models.py:99
msgid "Do not assign a correspondent"
@@ -550,19 +566,19 @@ msgstr "Nu atribui un corespondent"
#: paperless_mail/models.py:101
msgid "Use mail address"
msgstr "Foloseste adresa de email"
msgstr "Folosește adresa de email"
#: paperless_mail/models.py:103
msgid "Use name (or mail address if not available)"
msgstr "Foloseste numele (daca nu exista, foloseste adresa de email)"
msgstr "Folosește numele (dacă nu exista, folosește adresa de email)"
#: paperless_mail/models.py:105
msgid "Use correspondent selected below"
msgstr "Foloseste corespondentul selectat mai jos"
msgstr "Folosește corespondentul selectat mai jos"
#: paperless_mail/models.py:113
msgid "order"
msgstr "ordoneaza"
msgstr "ordonează"
#: paperless_mail/models.py:120
msgid "account"
@@ -574,51 +590,51 @@ msgstr "director"
#: paperless_mail/models.py:128
msgid "filter from"
msgstr "filtreaza de la"
msgstr "filtrează de la"
#: paperless_mail/models.py:131
msgid "filter subject"
msgstr "filtreaza subiect"
msgstr "filtrează subiect"
#: paperless_mail/models.py:134
msgid "filter body"
msgstr "filtreaza corpul email-ului"
msgstr "filtrează corpul email-ului"
#: paperless_mail/models.py:138
msgid "filter attachment filename"
msgstr "filtreaza numele atasamentului"
msgstr "filtrează numele fișierului atașat"
#: paperless_mail/models.py:140
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consuma doar documentele care se potrivesc in intregime cu acest nume de fisier, daca este specificat. Simbolul * tine locul oricarui sir de caractere. Majusculele nu conteaza."
msgstr "Consumă doar documentele care se potrivesc în întregime cu acest nume de fișier, dacă este specificat. Simbolul * ține locul oricărui șir de caractere. Majusculele nu contează."
#: paperless_mail/models.py:146
msgid "maximum age"
msgstr "varsta maxima"
msgstr "vârsta maximă"
#: paperless_mail/models.py:148
msgid "Specified in days."
msgstr "Specificata in zile."
msgstr "Specificată in zile."
#: paperless_mail/models.py:151
msgid "attachment type"
msgstr "tipul atasamentului"
msgstr "tip atașament"
#: paperless_mail/models.py:154
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Atasamentele \"inline\" includ si imaginile incorporate, deci aceasta optiune functioneaza cel mai bine combinata cu un filtru pentru numele fisierului."
msgstr "Atașamentele \"inline\" includ și imaginile încorporate, deci această opțiune funcționează cel mai bine combinată cu un filtru pentru numele fișierului."
#: paperless_mail/models.py:159
msgid "action"
msgstr "actiune"
msgstr "acţiune"
#: paperless_mail/models.py:165
msgid "action parameter"
msgstr "parametru al actiunii"
msgstr "parametru aiune"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parametru aditional pentru actiunea definita mai sus (ex. directorul in care sa se realizeze o mutare)"
msgstr "Parametru adițional pentru acțiunea definită mai sus (ex. directorul în care să se realizeze o mutare)."
#: paperless_mail/models.py:173
msgid "assign title from"
@@ -626,7 +642,7 @@ msgstr "atribuie titlu din"
#: paperless_mail/models.py:183
msgid "assign this tag"
msgstr "atribuie aceasta eticheta"
msgstr "atribuie această etichetă"
#: paperless_mail/models.py:191
msgid "assign this document type"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-07 01:58\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-15 17:33\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -226,7 +226,7 @@ msgstr "журнал"
msgid "logs"
msgstr "логи"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "сохранённое представление"
@@ -326,25 +326,33 @@ msgstr "изменен после"
msgid "does not have tag"
msgstr "не имеет тега"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "не имеет архивного номера"
#: documents/models.py:389
msgid "title or content contains"
msgstr "Название или содержимое включает"
#: documents/models.py:400
msgid "rule type"
msgstr "Тип правила"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "значение"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "Правило фильтрации"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "правила фильтрации"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr "неверное регулярное выражение: %(error)s"
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr "Пароль"
msgid "Sign in"
msgstr "Вход"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "Английский (США)"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "Английский (Великобритании)"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "Немецкий"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "Датский"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "Французский"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "Portuguese (Brazil)"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "Italian"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "Romanian"
#: paperless/settings.py:306
msgid "Russian"
msgstr "Русский"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "Испанский"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "Администрирование Paperless-ng"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 21:39\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:57\n"
"Last-Translator: \n"
"Language-Team: Xhosa\n"
"Language: xh_ZA\n"
@@ -226,7 +226,7 @@ msgstr "crwdns2628:0crwdne2628:0"
msgid "logs"
msgstr "crwdns2630:0crwdne2630:0"
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr "crwdns2632:0crwdne2632:0"
@@ -326,26 +326,34 @@ msgstr "crwdns2678:0crwdne2678:0"
msgid "does not have tag"
msgstr "crwdns2680:0crwdne2680:0"
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr "crwdns3408:0crwdne3408:0"
#: documents/models.py:389
msgid "title or content contains"
msgstr "crwdns3410:0crwdne3410:0"
#: documents/models.py:400
msgid "rule type"
msgstr "crwdns2682:0crwdne2682:0"
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr "crwdns2684:0crwdne2684:0"
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr "crwdns2686:0crwdne2686:0"
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr "crwdns2688:0crwdne2688:0"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgstr "crwdns2690:0%(error)scrwdne2690:0"
msgid "Invalid regular expression: %(error)s"
msgstr "crwdns3412:0%(error)scrwdne3412:0"
#: documents/serialisers.py:177
msgid "Invalid color."
@@ -396,38 +404,46 @@ msgstr "crwdns2712:0crwdne2712:0"
msgid "Sign in"
msgstr "crwdns2714:0crwdne2714:0"
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr "crwdns2716:0crwdne2716:0"
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr "crwdns2718:0crwdne2718:0"
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr "crwdns2720:0crwdne2720:0"
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr "crwdns2722:0crwdne2722:0"
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr "crwdns2724:0crwdne2724:0"
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr "crwdns2726:0crwdne2726:0"
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr "crwdns2728:0crwdne2728:0"
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr "crwdns2730:0crwdne2730:0"
#: paperless/settings.py:306
msgid "Russian"
msgstr "crwdns3414:0crwdne3414:0"
#: paperless/settings.py:307
msgid "Spanish"
msgstr "crwdns3420:0crwdne3420:0"
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr "crwdns2732:0crwdne2732:0"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-28 12:40+0100\n"
"PO-Revision-Date: 2021-03-06 22:56\n"
"POT-Creation-Date: 2021-03-14 13:33+0100\n"
"PO-Revision-Date: 2021-03-14 13:57\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -226,7 +226,7 @@ msgstr ""
msgid "logs"
msgstr ""
#: documents/models.py:344 documents/models.py:394
#: documents/models.py:344 documents/models.py:396
msgid "saved view"
msgstr ""
@@ -326,25 +326,33 @@ msgstr ""
msgid "does not have tag"
msgstr ""
#: documents/models.py:398
#: documents/models.py:388
msgid "does not have ASN"
msgstr ""
#: documents/models.py:389
msgid "title or content contains"
msgstr ""
#: documents/models.py:400
msgid "rule type"
msgstr ""
#: documents/models.py:402
#: documents/models.py:404
msgid "value"
msgstr ""
#: documents/models.py:408
#: documents/models.py:410
msgid "filter rule"
msgstr ""
#: documents/models.py:409
#: documents/models.py:411
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expresssion: %(error)s"
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:177
@@ -396,38 +404,46 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:297
#: paperless/settings.py:298
msgid "English (US)"
msgstr ""
#: paperless/settings.py:298
#: paperless/settings.py:299
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:300
msgid "German"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:301
msgid "Dutch"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:302
msgid "French"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:303
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:304
msgid "Italian"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:305
msgid "Romanian"
msgstr ""
#: paperless/settings.py:306
msgid "Russian"
msgstr ""
#: paperless/settings.py:307
msgid "Spanish"
msgstr ""
#: paperless/urls.py:118
msgid "Paperless-ng administration"
msgstr ""

View File

@@ -1,4 +1,5 @@
from django.conf import settings
from django.contrib import auth
from django.contrib.auth.models import User
from django.utils.deprecation import MiddlewareMixin
from rest_framework import authentication
@@ -11,6 +12,7 @@ class AutoLoginMiddleware(MiddlewareMixin):
try:
request.user = User.objects.get(
username=settings.AUTO_LOGIN_USERNAME)
auth.login(request, request.user)
except User.DoesNotExist:
pass

View File

@@ -1,5 +1,6 @@
import os
import shutil
import stat
from django.conf import settings
from django.core.checks import Error, Warning, register
@@ -16,16 +17,25 @@ writeable_hint = (
def path_check(var, directory):
messages = []
if directory:
if not os.path.exists(directory):
if not os.path.isdir(directory):
messages.append(Error(
exists_message.format(var),
exists_hint.format(directory)
))
elif not os.access(directory, os.W_OK | os.X_OK):
messages.append(Warning(
writeable_message.format(var),
writeable_hint.format(directory)
))
else:
test_file = os.path.join(directory, '__paperless_write_test__')
try:
open(test_file, 'w')
except PermissionError:
messages.append(Error(
writeable_message.format(var),
writeable_hint.format(
f'\n{stat.filemode(os.stat(directory).st_mode)} '
f'{directory}\n')
))
else:
os.remove(test_file)
return messages

View File

@@ -303,7 +303,8 @@ LANGUAGES = [
("pt-br", _("Portuguese (Brazil)")),
("it-it", _("Italian")),
("ro-ro", _("Romanian")),
("ru-ru", _("Russian"))
("ru-ru", _("Russian")),
("es-es", _("Spanish"))
]
LOCALE_PATHS = [

View File

@@ -1 +1 @@
__version__ = (1, 3, 0)
__version__ = (1, 3, 1)

View File

@@ -291,6 +291,7 @@ class RasterisedDocumentParser(DocumentParser):
f"No text was found in {document_path}, the content will "
f"be empty."
)
self.text = ""
def strip_excess_whitespace(text):

Binary file not shown.

View File

@@ -81,8 +81,8 @@ class TestParser(DirectoriesMixin, TestCase):
def test_thumbnail(self):
parser = RasterisedDocumentParser(uuid.uuid4())
parser.get_thumbnail(os.path.join(self.SAMPLE_FILES, 'simple-digital.pdf'), "application/pdf")
# dont really know how to test it, just call it and assert that it does not raise anything.
thumb = parser.get_thumbnail(os.path.join(self.SAMPLE_FILES, 'simple-digital.pdf'), "application/pdf")
self.assertTrue(os.path.isfile(thumb))
@mock.patch("documents.parsers.run_convert")
def test_thumbnail_fallback(self, m):
@@ -96,8 +96,13 @@ class TestParser(DirectoriesMixin, TestCase):
m.side_effect = call_convert
parser = RasterisedDocumentParser(uuid.uuid4())
parser.get_thumbnail(os.path.join(self.SAMPLE_FILES, 'simple-digital.pdf'), "application/pdf")
# dont really know how to test it, just call it and assert that it does not raise anything.
thumb = parser.get_thumbnail(os.path.join(self.SAMPLE_FILES, 'simple-digital.pdf'), "application/pdf")
self.assertTrue(os.path.isfile(thumb))
def test_thumbnail_encrypted(self):
parser = RasterisedDocumentParser(uuid.uuid4())
thumb = parser.get_thumbnail(os.path.join(self.SAMPLE_FILES, 'encrypted.pdf'), "application/pdf")
self.assertTrue(os.path.isfile(thumb))
def test_get_dpi(self):
parser = RasterisedDocumentParser(None)
@@ -135,6 +140,15 @@ class TestParser(DirectoriesMixin, TestCase):
self.assertIsNone(parser.archive_path)
self.assertContainsStrings(parser.get_text(), ["Please enter your name in here:", "This is a PDF document with a form."])
@override_settings(OCR_MODE="skip")
def test_signed(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "signed.pdf"), "application/pdf")
self.assertIsNone(parser.archive_path)
self.assertContainsStrings(parser.get_text(), ["This is a digitally signed PDF, created with Acrobat Pro for the Paperless project to enable", "automated testing of signed/encrypted PDFs"])
@override_settings(OCR_MODE="skip")
def test_encrypted(self):
parser = RasterisedDocumentParser(None)
@@ -142,7 +156,8 @@ class TestParser(DirectoriesMixin, TestCase):
parser.parse(os.path.join(self.SAMPLE_FILES, "encrypted.pdf"), "application/pdf")
self.assertIsNone(parser.archive_path)
self.assertContainsStrings(parser.get_text(), ["This is a digitally signed PDF, created with Acrobat Pro for the Paperless project to enable", "automated testing of signed/encrypted PDFs"])
self.assertEqual(parser.get_text(), "")
@override_settings(OCR_MODE="redo")
def test_with_form_error_notext(self):