Merge remote-tracking branch 'paperless/dev' into feature-consume-eml

This commit is contained in:
phail
2022-07-11 23:58:21 +02:00
214 changed files with 49850 additions and 27323 deletions

186
src/documents/barcodes.py Normal file
View File

@@ -0,0 +1,186 @@
import logging
import os
import shutil
import tempfile
from functools import lru_cache
from typing import List # for type hinting. Can be removed, if only Python >3.8 is used
import magic
from django.conf import settings
from pdf2image import convert_from_path
from pikepdf import Pdf
from PIL import Image
from PIL import ImageSequence
from pyzbar import pyzbar
logger = logging.getLogger("paperless.barcodes")
@lru_cache(maxsize=8)
def supported_file_type(mime_type) -> bool:
"""
Determines if the file is valid for barcode
processing, based on MIME type and settings
:return: True if the file is supported, False otherwise
"""
supported_mime = ["application/pdf"]
if settings.CONSUMER_BARCODE_TIFF_SUPPORT:
supported_mime += ["image/tiff"]
return mime_type in supported_mime
def barcode_reader(image) -> List[str]:
"""
Read any barcodes contained in image
Returns a list containing all found barcodes
"""
barcodes = []
# Decode the barcode image
detected_barcodes = pyzbar.decode(image)
if detected_barcodes:
# Traverse through all the detected barcodes in image
for barcode in detected_barcodes:
if barcode.data:
decoded_barcode = barcode.data.decode("utf-8")
barcodes.append(decoded_barcode)
logger.debug(
f"Barcode of type {str(barcode.type)} found: {decoded_barcode}",
)
return barcodes
def get_file_mime_type(path: str) -> str:
"""
Determines the file type, based on MIME type.
Returns the MIME type.
"""
mime_type = magic.from_file(path, mime=True)
logger.debug(f"Detected mime type: {mime_type}")
return mime_type
def convert_from_tiff_to_pdf(filepath: str) -> str:
"""
converts a given TIFF image file to pdf into a temporary directory.
Returns the new pdf file.
"""
file_name = os.path.splitext(os.path.basename(filepath))[0]
mime_type = get_file_mime_type(filepath)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
# use old file name with pdf extension
if mime_type == "image/tiff":
newpath = os.path.join(tempdir, file_name + ".pdf")
else:
logger.warning(
f"Cannot convert mime type {str(mime_type)} from {str(filepath)} to pdf.",
)
return None
with Image.open(filepath) as image:
images = []
for i, page in enumerate(ImageSequence.Iterator(image)):
page = page.convert("RGB")
images.append(page)
try:
if len(images) == 1:
images[0].save(newpath)
else:
images[0].save(newpath, save_all=True, append_images=images[1:])
except OSError as e:
logger.warning(
f"Could not save the file as pdf. Error: {str(e)}",
)
return None
return newpath
def scan_file_for_separating_barcodes(filepath: str) -> List[int]:
"""
Scan the provided pdf file for page separating barcodes
Returns a list of pagenumbers, which separate the file
"""
separator_page_numbers = []
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
# use a temporary directory in case the file os too big to handle in memory
with tempfile.TemporaryDirectory() as path:
pages_from_path = convert_from_path(filepath, output_folder=path)
for current_page_number, page in enumerate(pages_from_path):
current_barcodes = barcode_reader(page)
if separator_barcode in current_barcodes:
separator_page_numbers.append(current_page_number)
return separator_page_numbers
def separate_pages(filepath: str, pages_to_split_on: List[int]) -> List[str]:
"""
Separate the provided pdf file on the pages_to_split_on.
The pages which are defined by page_numbers will be removed.
Returns a list of (temporary) filepaths to consume.
These will need to be deleted later.
"""
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
fname = os.path.splitext(os.path.basename(filepath))[0]
pdf = Pdf.open(filepath)
document_paths = []
logger.debug(f"Temp dir is {str(tempdir)}")
if not pages_to_split_on:
logger.warning("No pages to split on!")
else:
# go from the first page to the first separator page
dst = Pdf.new()
for n, page in enumerate(pdf.pages):
if n < pages_to_split_on[0]:
dst.pages.append(page)
output_filename = f"{fname}_document_0.pdf"
savepath = os.path.join(tempdir, output_filename)
with open(savepath, "wb") as out:
dst.save(out)
document_paths = [savepath]
# iterate through the rest of the document
for count, page_number in enumerate(pages_to_split_on):
logger.debug(f"Count: {str(count)} page_number: {str(page_number)}")
dst = Pdf.new()
try:
next_page = pages_to_split_on[count + 1]
except IndexError:
next_page = len(pdf.pages)
# skip the first page_number. This contains the barcode page
for page in range(page_number + 1, next_page):
logger.debug(
f"page_number: {str(page_number)} next_page: {str(next_page)}",
)
dst.pages.append(pdf.pages[page])
output_filename = f"{fname}_document_{str(count + 1)}.pdf"
logger.debug(f"pdf no:{str(count)} has {str(len(dst.pages))} pages")
savepath = os.path.join(tempdir, output_filename)
with open(savepath, "wb") as out:
dst.save(out)
document_paths.append(savepath)
logger.debug(f"Temp files are {str(document_paths)}")
return document_paths
def save_to_dir(
filepath: str,
newname: str = None,
target_dir: str = settings.CONSUMPTION_DIR,
):
"""
Copies filepath to target_dir.
Optionally rename the file.
"""
if os.path.isfile(filepath) and os.path.isdir(target_dir):
dst = shutil.copy(filepath, target_dir)
logging.debug(f"saved {str(filepath)} to {str(dst)}")
if newname:
dst_new = os.path.join(target_dir, newname)
logger.debug(f"moving {str(dst)} to {str(dst_new)}")
os.rename(dst, dst_new)
else:
logger.warning(f"{str(filepath)} or {str(target_dir)} don't exist.")

View File

@@ -118,3 +118,10 @@ def delete(doc_ids):
index.remove_document_by_id(writer, id)
return "OK"
def redo_ocr(doc_ids):
async_task("documents.tasks.redo_ocr", document_ids=doc_ids)
return "OK"

View File

@@ -11,7 +11,6 @@ from documents.signals import document_consumer_declaration
@register()
def changed_password_check(app_configs, **kwargs):
from documents.models import Document
from paperless.db import GnuPG

View File

@@ -4,6 +4,8 @@ import os
import pickle
import re
import shutil
import warnings
from typing import Optional
from django.conf import settings
from documents.models import Document
@@ -21,13 +23,13 @@ class ClassifierModelCorruptError(Exception):
logger = logging.getLogger("paperless.classifier")
def preprocess_content(content):
def preprocess_content(content: str) -> str:
content = content.lower().strip()
content = re.sub(r"\s+", " ", content)
return content
def load_classifier():
def load_classifier() -> Optional["DocumentClassifier"]:
if not os.path.isfile(settings.MODEL_FILE):
logger.debug(
"Document classification model does not exist (yet), not "
@@ -39,7 +41,11 @@ def load_classifier():
try:
classifier.load()
except (ClassifierModelCorruptError, IncompatibleClassifierVersionError):
except IncompatibleClassifierVersionError:
logger.info("Classifier version updated, will re-train")
os.unlink(settings.MODEL_FILE)
classifier = None
except ClassifierModelCorruptError:
# there's something wrong with the model file.
logger.exception(
"Unrecoverable error while loading document "
@@ -59,13 +65,14 @@ def load_classifier():
class DocumentClassifier:
# v7 - Updated scikit-learn package version
# v8 - Added storage path classifier
FORMAT_VERSION = 8
def __init__(self):
# hash of the training data. used to prevent re-training when the
# training data has not changed.
self.data_hash = None
self.data_hash: Optional[bytes] = None
self.data_vectorizer = None
self.tags_binarizer = None
@@ -75,25 +82,40 @@ class DocumentClassifier:
self.storage_path_classifier = None
def load(self):
with open(settings.MODEL_FILE, "rb") as f:
schema_version = pickle.load(f)
# Catch warnings for processing
with warnings.catch_warnings(record=True) as w:
with open(settings.MODEL_FILE, "rb") as f:
schema_version = pickle.load(f)
if schema_version != self.FORMAT_VERSION:
raise IncompatibleClassifierVersionError(
"Cannot load classifier, incompatible versions.",
)
else:
try:
self.data_hash = pickle.load(f)
self.data_vectorizer = pickle.load(f)
self.tags_binarizer = pickle.load(f)
if schema_version != self.FORMAT_VERSION:
raise IncompatibleClassifierVersionError(
"Cannot load classifier, incompatible versions.",
)
else:
try:
self.data_hash = pickle.load(f)
self.data_vectorizer = pickle.load(f)
self.tags_binarizer = pickle.load(f)
self.tags_classifier = pickle.load(f)
self.correspondent_classifier = pickle.load(f)
self.document_type_classifier = pickle.load(f)
self.storage_path_classifier = pickle.load(f)
except Exception:
raise ClassifierModelCorruptError()
self.tags_classifier = pickle.load(f)
self.correspondent_classifier = pickle.load(f)
self.document_type_classifier = pickle.load(f)
self.storage_path_classifier = pickle.load(f)
except Exception:
raise ClassifierModelCorruptError()
# Check for the warning about unpickling from differing versions
# and consider it incompatible
sk_learn_warning_url = (
"https://scikit-learn.org/stable/"
"model_persistence.html"
"#security-maintainability-limitations"
)
for warning in w:
if issubclass(warning.category, UserWarning):
w_msg = str(warning.message)
if sk_learn_warning_url in w_msg:
raise IncompatibleClassifierVersionError()
def save(self):
target_file = settings.MODEL_FILE

View File

@@ -273,7 +273,7 @@ class Consumer(LoggingMixin):
self.log("debug", f"Generating thumbnail for {self.filename}...")
self._send_progress(70, 100, "WORKING", MESSAGE_GENERATING_THUMBNAIL)
thumbnail = document_parser.get_optimised_thumbnail(
thumbnail = document_parser.get_thumbnail(
self.path,
mime_type,
self.filename,

View File

@@ -41,7 +41,7 @@ def handle_document(document_id):
try:
parser.parse(document.source_path, mime_type, document.get_public_filename())
thumbnail = parser.get_optimised_thumbnail(
thumbnail = parser.get_thumbnail(
document.source_path,
mime_type,
document.get_public_filename(),

View File

@@ -67,17 +67,19 @@ def _consume(filepath):
read_try_count = 0
file_open_ok = False
os_error_str = None
while (read_try_count < os_error_retry_count) and not file_open_ok:
try:
with open(filepath, "rb"):
file_open_ok = True
except OSError:
except OSError as e:
read_try_count += 1
os_error_str = str(e)
sleep(os_error_retry_wait)
if read_try_count >= os_error_retry_count:
logger.warning(f"Not consuming file {filepath}: OS reports file as busy still")
logger.warning(f"Not consuming file {filepath}: OS reports {os_error_str}")
return
tag_ids = None

View File

@@ -189,7 +189,7 @@ class Command(BaseCommand):
original_target = os.path.join(self.target, original_name)
document_dict[EXPORTER_FILE_NAME] = original_name
thumbnail_name = base_name + "-thumbnail.png"
thumbnail_name = base_name + "-thumbnail.webp"
thumbnail_target = os.path.join(self.target, thumbnail_name)
document_dict[EXPORTER_THUMBNAIL_NAME] = thumbnail_name

View File

@@ -0,0 +1,35 @@
import tqdm
from django.core.management.base import BaseCommand
from documents.tasks import redo_ocr
class Command(BaseCommand):
help = """
This will rename all documents to match the latest filename format.
""".replace(
" ",
"",
)
def add_arguments(self, parser):
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown",
)
parser.add_argument(
"documents",
nargs="+",
help="Document primary keys for re-processing OCR on",
)
def handle(self, *args, **options):
doc_pks = tqdm.tqdm(
options["documents"],
disable=options["no_progress_bar"],
)
redo_ocr(doc_pks)

View File

@@ -11,7 +11,7 @@ from ...parsers import get_parser_class_for_mime_type
def _process_document(doc_in):
document = Document.objects.get(id=doc_in)
document: Document = Document.objects.get(id=doc_in)
parser_class = get_parser_class_for_mime_type(document.mime_type)
if parser_class:
@@ -21,7 +21,8 @@ def _process_document(doc_in):
return
try:
thumb = parser.get_optimised_thumbnail(
thumb = parser.get_thumbnail(
document.source_path,
document.mime_type,
document.get_public_filename(),
@@ -69,7 +70,7 @@ class Command(BaseCommand):
ids = [doc.id for doc in documents]
# Note to future self: this prevents django from reusing database
# conncetions between processes, which is bad and does not work
# connections between processes, which is bad and does not work
# with postgres.
db.connections.close_all()

View File

@@ -3,7 +3,9 @@ import sys
from django.core.management.commands.loaddata import Command as LoadDataCommand
class Command(LoadDataCommand):
# This class is used to migrate data between databases
# That's difficult to test
class Command(LoadDataCommand): # pragma: nocover
"""
Allow the loading of data from standard in. Sourced originally from:
https://gist.github.com/bmispelon/ad5a2c333443b3a1d051 (MIT licensed)

View File

@@ -0,0 +1,107 @@
# Generated by Django 4.0.5 on 2022-06-11 15:40
import logging
import multiprocessing.pool
import shutil
import tempfile
import time
from pathlib import Path
from django.conf import settings
from django.db import migrations
from documents.parsers import run_convert
logger = logging.getLogger("paperless.migrations")
def _do_convert(work_package):
existing_thumbnail, converted_thumbnail = work_package
try:
logger.info(f"Converting thumbnail: {existing_thumbnail}")
# Run actual conversion
run_convert(
density=300,
scale="500x5000>",
alpha="remove",
strip=True,
trim=False,
auto_orient=True,
input_file=f"{existing_thumbnail}[0]",
output_file=str(converted_thumbnail),
)
# Copy newly created thumbnail to thumbnail directory
shutil.copy(converted_thumbnail, existing_thumbnail.parent)
# Remove the PNG version
existing_thumbnail.unlink()
logger.info(
"Conversion to WebP completed, "
f"replaced {existing_thumbnail.name} with {converted_thumbnail.name}",
)
except Exception as e:
logger.error(f"Error converting thumbnail (existing file unchanged): {e}")
def _convert_thumbnails_to_webp(apps, schema_editor):
start = time.time()
with tempfile.TemporaryDirectory() as tempdir:
work_packages = []
for file in Path(settings.THUMBNAIL_DIR).glob("*.png"):
existing_thumbnail = file.resolve()
# Change the existing filename suffix from png to webp
converted_thumbnail_name = existing_thumbnail.with_suffix(
".webp",
).name
# Create the expected output filename in the tempdir
converted_thumbnail = (
Path(tempdir) / Path(converted_thumbnail_name)
).resolve()
# Package up the necessary info
work_packages.append(
(existing_thumbnail, converted_thumbnail),
)
if len(work_packages):
logger.info(
"\n\n"
" This is a one-time only migration to convert thumbnails for all of your\n"
" documents into WebP format. If you have a lot of documents though, \n"
" this may take a while, so a coffee break may be in order."
"\n",
)
with multiprocessing.pool.Pool(
processes=min(multiprocessing.cpu_count(), 4),
maxtasksperchild=4,
) as pool:
pool.map(_do_convert, work_packages)
end = time.time()
duration = end - start
logger.info(f"Conversion completed in {duration:.3f}s")
class Migration(migrations.Migration):
dependencies = [
("documents", "1020_merge_20220518_1839"),
]
operations = [
migrations.RunPython(
code=_convert_thumbnails_to_webp,
reverse_code=migrations.RunPython.noop,
),
]

View File

@@ -0,0 +1,69 @@
# Generated by Django 4.0.4 on 2022-05-23 07:14
from django.db import migrations, models
import django.db.models.deletion
def init_paperless_tasks(apps, schema_editor):
PaperlessTask = apps.get_model("documents", "PaperlessTask")
Task = apps.get_model("django_q", "Task")
for task in Task.objects.filter(func="documents.tasks.consume_file"):
if not hasattr(task, "paperlesstask"):
paperlesstask = PaperlessTask.objects.create(
attempted_task=task,
task_id=task.id,
name=task.name,
created=task.started,
started=task.started,
acknowledged=True,
)
task.paperlesstask = paperlesstask
task.save()
class Migration(migrations.Migration):
dependencies = [
("django_q", "0014_schedule_cluster"),
("documents", "1021_webp_thumbnail_conversion"),
]
operations = [
migrations.CreateModel(
name="PaperlessTask",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("task_id", models.CharField(max_length=128)),
("name", models.CharField(max_length=256)),
(
"created",
models.DateTimeField(auto_now=True, verbose_name="created"),
),
(
"started",
models.DateTimeField(null=True, verbose_name="started"),
),
("acknowledged", models.BooleanField(default=False)),
(
"attempted_task",
models.OneToOneField(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="attempted_task",
to="django_q.task",
),
),
],
),
migrations.RunPython(init_paperless_tasks, migrations.RunPython.noop),
]

View File

@@ -3,6 +3,7 @@ import logging
import os
import re
from collections import OrderedDict
from typing import Optional
import dateutil.parser
import pathvalidate
@@ -11,6 +12,7 @@ from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from django_q.tasks import Task
from documents.parsers import get_default_file_extension
@@ -228,18 +230,21 @@ class Document(models.Model):
verbose_name = _("document")
verbose_name_plural = _("documents")
def __str__(self):
def __str__(self) -> str:
# Convert UTC database time to local time
created = datetime.date.isoformat(timezone.localdate(self.created))
if self.correspondent and self.title:
return f"{created} {self.correspondent} {self.title}"
else:
return f"{created} {self.title}"
res = f"{created}"
if self.correspondent:
res += f" {self.correspondent}"
if self.title:
res += f" {self.title}"
return res
@property
def source_path(self):
def source_path(self) -> str:
if self.filename:
fname = str(self.filename)
else:
@@ -254,11 +259,11 @@ class Document(models.Model):
return open(self.source_path, "rb")
@property
def has_archive_version(self):
def has_archive_version(self) -> bool:
return self.archive_filename is not None
@property
def archive_path(self):
def archive_path(self) -> Optional[str]:
if self.has_archive_version:
return os.path.join(settings.ARCHIVE_DIR, str(self.archive_filename))
else:
@@ -268,7 +273,7 @@ class Document(models.Model):
def archive_file(self):
return open(self.archive_path, "rb")
def get_public_filename(self, archive=False, counter=0, suffix=None):
def get_public_filename(self, archive=False, counter=0, suffix=None) -> str:
result = str(self)
if counter:
@@ -289,17 +294,23 @@ class Document(models.Model):
return get_default_file_extension(self.mime_type)
@property
def thumbnail_path(self):
file_name = f"{self.pk:07}.png"
def thumbnail_path(self) -> str:
webp_file_name = f"{self.pk:07}.webp"
if self.storage_type == self.STORAGE_TYPE_GPG:
file_name += ".gpg"
webp_file_name += ".gpg"
return os.path.join(settings.THUMBNAIL_DIR, file_name)
webp_file_path = os.path.join(settings.THUMBNAIL_DIR, webp_file_name)
return os.path.normpath(webp_file_path)
@property
def thumbnail_file(self):
return open(self.thumbnail_path, "rb")
@property
def created_date(self):
return timezone.localdate(self.created)
class Log(models.Model):
@@ -500,3 +511,19 @@ class UiSettings(models.Model):
def __str__(self):
return self.user.username
class PaperlessTask(models.Model):
task_id = models.CharField(max_length=128)
name = models.CharField(max_length=256)
created = models.DateTimeField(_("created"), auto_now=True)
started = models.DateTimeField(_("started"), null=True)
attempted_task = models.OneToOneField(
Task,
on_delete=models.CASCADE,
related_name="attempted_task",
null=True,
blank=True,
)
acknowledged = models.BooleanField(default=False)

View File

@@ -150,11 +150,14 @@ def run_convert(
def get_default_thumbnail() -> str:
"""
Returns the path to a generic 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) -> str:
out_path = os.path.join(temp_dir, "convert_gs.png")
out_path = os.path.join(temp_dir, "convert_gs.webp")
# if convert fails, fall back to extracting
# the first PDF page as a PNG using Ghostscript
@@ -191,7 +194,7 @@ def make_thumbnail_from_pdf(in_path, temp_dir, logging_group=None) -> str:
"""
The thumbnail of a PDF is just a 500px wide image of the first page.
"""
out_path = os.path.join(temp_dir, "convert.png")
out_path = os.path.join(temp_dir, "convert.webp")
# Run convert to get a decent thumbnail
try:
@@ -319,29 +322,6 @@ class DocumentParser(LoggingMixin):
"""
raise NotImplementedError()
def get_optimised_thumbnail(self, document_path, mime_type, file_name=None):
thumbnail = self.get_thumbnail(document_path, mime_type, file_name)
if settings.OPTIMIZE_THUMBNAILS:
out_path = os.path.join(self.tempdir, "thumb_optipng.png")
args = (
settings.OPTIPNG_BINARY,
"-silent",
"-o5",
thumbnail,
"-out",
out_path,
)
self.log("debug", f"Execute: {' '.join(args)}")
if not subprocess.Popen(args).wait() == 0:
raise ParseError(f"Optipng failed at {args}")
return out_path
else:
return thumbnail
def get_text(self):
return self.text

View File

@@ -1,6 +1,8 @@
import hashlib
import logging
import os
from collections import defaultdict
from pathlib import Path
from typing import Final
from django.conf import settings
from documents.models import Document
@@ -9,16 +11,20 @@ from tqdm import tqdm
class SanityCheckMessages:
def __init__(self):
self._messages = []
self._messages = defaultdict(list)
self.has_error = False
self.has_warning = False
def error(self, message):
self._messages.append({"level": logging.ERROR, "message": message})
def error(self, doc_pk, message):
self._messages[doc_pk].append({"level": logging.ERROR, "message": message})
self.has_error = True
def warning(self, message):
self._messages.append({"level": logging.WARNING, "message": message})
def warning(self, doc_pk, message):
self._messages[doc_pk].append({"level": logging.WARNING, "message": message})
self.has_warning = True
def info(self, message):
self._messages.append({"level": logging.INFO, "message": message})
def info(self, doc_pk, message):
self._messages[doc_pk].append({"level": logging.INFO, "message": message})
def log_messages(self):
logger = logging.getLogger("paperless.sanity_checker")
@@ -26,8 +32,19 @@ class SanityCheckMessages:
if len(self._messages) == 0:
logger.info("Sanity checker detected no issues.")
else:
for msg in self._messages:
logger.log(msg["level"], msg["message"])
# Query once
all_docs = Document.objects.all()
for doc_pk in self._messages:
if doc_pk is not None:
doc = all_docs.get(pk=doc_pk)
logger.info(
f"Detected following issue(s) with document #{doc.pk},"
f" titled {doc.title}",
)
for msg in self._messages[doc_pk]:
logger.log(msg["level"], msg["message"])
def __len__(self):
return len(self._messages)
@@ -35,99 +52,94 @@ class SanityCheckMessages:
def __getitem__(self, item):
return self._messages[item]
def has_error(self):
return any([msg["level"] == logging.ERROR for msg in self._messages])
def has_warning(self):
return any([msg["level"] == logging.WARNING for msg in self._messages])
class SanityCheckFailedException(Exception):
pass
def check_sanity(progress=False):
def check_sanity(progress=False) -> SanityCheckMessages:
messages = SanityCheckMessages()
present_files = []
for root, subdirs, files in os.walk(settings.MEDIA_ROOT):
for f in files:
present_files.append(os.path.normpath(os.path.join(root, f)))
present_files = {
x.resolve() for x in Path(settings.MEDIA_ROOT).glob("**/*") if not x.is_dir()
}
lockfile = os.path.normpath(settings.MEDIA_LOCK)
lockfile = Path(settings.MEDIA_LOCK).resolve()
if lockfile in present_files:
present_files.remove(lockfile)
for doc in tqdm(Document.objects.all(), disable=not progress):
# Check sanity of the thumbnail
if not os.path.isfile(doc.thumbnail_path):
messages.error(f"Thumbnail of document {doc.pk} does not exist.")
thumbnail_path: Final[Path] = Path(doc.thumbnail_path).resolve()
if not thumbnail_path.exists() or not thumbnail_path.is_file():
messages.error(doc.pk, "Thumbnail of document does not exist.")
else:
if os.path.normpath(doc.thumbnail_path) in present_files:
present_files.remove(os.path.normpath(doc.thumbnail_path))
if thumbnail_path in present_files:
present_files.remove(thumbnail_path)
try:
with doc.thumbnail_file as f:
f.read()
_ = thumbnail_path.read_bytes()
except OSError as e:
messages.error(f"Cannot read thumbnail file of document {doc.pk}: {e}")
messages.error(doc.pk, f"Cannot read thumbnail file of document: {e}")
# Check sanity of the original file
# TODO: extract method
if not os.path.isfile(doc.source_path):
messages.error(f"Original of document {doc.pk} does not exist.")
source_path: Final[Path] = Path(doc.source_path).resolve()
if not source_path.exists() or not source_path.is_file():
messages.error(doc.pk, "Original of document does not exist.")
else:
if os.path.normpath(doc.source_path) in present_files:
present_files.remove(os.path.normpath(doc.source_path))
if source_path in present_files:
present_files.remove(source_path)
try:
with doc.source_file as f:
checksum = hashlib.md5(f.read()).hexdigest()
checksum = hashlib.md5(source_path.read_bytes()).hexdigest()
except OSError as e:
messages.error(f"Cannot read original file of document {doc.pk}: {e}")
messages.error(doc.pk, f"Cannot read original file of document: {e}")
else:
if not checksum == doc.checksum:
messages.error(
f"Checksum mismatch of document {doc.pk}. "
doc.pk,
"Checksum mismatch. "
f"Stored: {doc.checksum}, actual: {checksum}.",
)
# Check sanity of the archive file.
if doc.archive_checksum and not doc.archive_filename:
if doc.archive_checksum is not None and doc.archive_filename is None:
messages.error(
f"Document {doc.pk} has an archive file checksum, but no "
f"archive filename.",
doc.pk,
"Document has an archive file checksum, but no archive filename.",
)
elif not doc.archive_checksum and doc.archive_filename:
elif doc.archive_checksum is None and doc.archive_filename is not None:
messages.error(
f"Document {doc.pk} has an archive file, but its checksum is "
f"missing.",
doc.pk,
"Document has an archive file, but its checksum is missing.",
)
elif doc.has_archive_version:
if not os.path.isfile(doc.archive_path):
messages.error(f"Archived version of document {doc.pk} does not exist.")
archive_path: Final[Path] = Path(doc.archive_path).resolve()
if not archive_path.exists() or not archive_path.is_file():
messages.error(doc.pk, "Archived version of document does not exist.")
else:
if os.path.normpath(doc.archive_path) in present_files:
present_files.remove(os.path.normpath(doc.archive_path))
if archive_path in present_files:
present_files.remove(archive_path)
try:
with doc.archive_file as f:
checksum = hashlib.md5(f.read()).hexdigest()
checksum = hashlib.md5(archive_path.read_bytes()).hexdigest()
except OSError as e:
messages.error(
f"Cannot read archive file of document {doc.pk}: {e}",
doc.pk,
f"Cannot read archive file of document : {e}",
)
else:
if not checksum == doc.archive_checksum:
messages.error(
f"Checksum mismatch of archived document "
f"{doc.pk}. "
doc.pk,
"Checksum mismatch of archived document. "
f"Stored: {doc.archive_checksum}, "
f"actual: {checksum}.",
)
# other document checks
if not doc.content:
messages.info(f"Document {doc.pk} has no content.")
messages.info(doc.pk, "Document contains no OCR data")
for extra_file in present_files:
messages.warning(f"Orphaned file in media dir: {extra_file}")
messages.warning(None, f"Orphaned file in media dir: {extra_file}")
return messages

View File

@@ -1,7 +1,13 @@
import datetime
import math
import re
try:
import zoneinfo
except ImportError:
import backports.zoneinfo as zoneinfo
import magic
from django.conf import settings
from django.utils.text import slugify
from django.utils.translation import gettext as _
from rest_framework import serializers
@@ -12,6 +18,7 @@ from .models import Correspondent
from .models import Document
from .models import DocumentType
from .models import MatchingModel
from .models import PaperlessTask
from .models import SavedView
from .models import SavedViewFilterRule
from .models import StoragePath
@@ -214,6 +221,7 @@ class DocumentSerializer(DynamicFieldsModelSerializer):
original_file_name = SerializerMethodField()
archived_file_name = SerializerMethodField()
created_date = serializers.DateField(required=False)
def get_original_file_name(self, obj):
return obj.get_public_filename()
@@ -224,6 +232,18 @@ class DocumentSerializer(DynamicFieldsModelSerializer):
else:
return None
def update(self, instance, validated_data):
if "created_date" in validated_data and "created" not in validated_data:
new_datetime = datetime.datetime.combine(
validated_data.get("created_date"),
datetime.time(0, 0, 0, 0, zoneinfo.ZoneInfo(settings.TIME_ZONE)),
)
instance.created = new_datetime
instance.save()
validated_data.pop("created_date")
super().update(instance, validated_data)
return instance
class Meta:
model = Document
depth = 1
@@ -236,6 +256,7 @@ class DocumentSerializer(DynamicFieldsModelSerializer):
"content",
"tags",
"created",
"created_date",
"modified",
"added",
"archive_serial_number",
@@ -323,6 +344,7 @@ class BulkEditSerializer(DocumentListSerializer):
"remove_tag",
"modify_tags",
"delete",
"redo_ocr",
],
label="Method",
write_only=True,
@@ -356,6 +378,8 @@ class BulkEditSerializer(DocumentListSerializer):
return bulk_edit.modify_tags
elif method == "delete":
return bulk_edit.delete
elif method == "redo_ocr":
return bulk_edit.redo_ocr
else:
raise serializers.ValidationError("Unsupported method.")
@@ -536,8 +560,6 @@ class BulkDownloadSerializer(DocumentListSerializer):
class StoragePathSerializer(MatchingModelSerializer):
document_count = serializers.IntegerField(read_only=True)
class Meta:
model = StoragePath
fields = (
@@ -585,13 +607,71 @@ class UiSettingsViewSerializer(serializers.ModelSerializer):
"settings",
]
def update(self, instance, validated_data):
super().update(instance, validated_data)
return instance
def create(self, validated_data):
ui_settings = UiSettings.objects.update_or_create(
user=validated_data.get("user"),
defaults={"settings": validated_data.get("settings", None)},
)
return ui_settings
class TasksViewSerializer(serializers.ModelSerializer):
class Meta:
model = PaperlessTask
depth = 1
fields = "__all__"
type = serializers.SerializerMethodField()
def get_type(self, obj):
# just file tasks, for now
return "file"
result = serializers.SerializerMethodField()
def get_result(self, obj):
result = ""
if hasattr(obj, "attempted_task") and obj.attempted_task:
result = obj.attempted_task.result
return result
status = serializers.SerializerMethodField()
def get_status(self, obj):
if obj.attempted_task is None:
if obj.started:
return "started"
else:
return "queued"
elif obj.attempted_task.success:
return "complete"
elif not obj.attempted_task.success:
return "failed"
else:
return "unknown"
class AcknowledgeTasksViewSerializer(serializers.Serializer):
tasks = serializers.ListField(
required=True,
label="Tasks",
write_only=True,
child=serializers.IntegerField(),
)
def _validate_task_id_list(self, tasks, name="tasks"):
pass
if not type(tasks) == list:
raise serializers.ValidationError(f"{name} must be a list")
if not all([type(i) == int for i in tasks]):
raise serializers.ValidationError(f"{name} must be a list of integers")
count = PaperlessTask.objects.filter(id__in=tasks).count()
if not count == len(tasks):
raise serializers.ValidationError(
f"Some tasks in {name} don't exist or were specified twice.",
)
def validate_tasks(self, tasks):
self._validate_task_id_list(tasks)
return tasks

View File

@@ -2,6 +2,7 @@ import logging
import os
import shutil
import django_q
from django.conf import settings
from django.contrib.admin.models import ADDITION
from django.contrib.admin.models import LogEntry
@@ -21,6 +22,7 @@ from ..file_handling import delete_empty_directories
from ..file_handling import generate_unique_filename
from ..models import Document
from ..models import MatchingModel
from ..models import PaperlessTask
from ..models import Tag
@@ -499,3 +501,36 @@ def add_to_index(sender, document, **kwargs):
from documents import index
index.add_or_update_document(document)
@receiver(django_q.signals.pre_enqueue)
def init_paperless_task(sender, task, **kwargs):
if task["func"] == "documents.tasks.consume_file":
paperless_task, created = PaperlessTask.objects.get_or_create(
task_id=task["id"],
)
paperless_task.name = task["name"]
paperless_task.created = task["started"]
paperless_task.save()
@receiver(django_q.signals.pre_execute)
def paperless_task_started(sender, task, **kwargs):
try:
if task["func"] == "documents.tasks.consume_file":
paperless_task = PaperlessTask.objects.get(task_id=task["id"])
paperless_task.started = timezone.now()
paperless_task.save()
except PaperlessTask.DoesNotExist:
pass
@receiver(models.signals.post_save, sender=django_q.models.Task)
def update_paperless_task(sender, instance, **kwargs):
try:
if instance.func == "documents.tasks.consume_file":
paperless_task = PaperlessTask.objects.get(task_id=instance.id)
paperless_task.attempted_task = instance
paperless_task.save()
except PaperlessTask.DoesNotExist:
pass

View File

@@ -1,15 +1,16 @@
import logging
import os
import shutil
import tempfile
from typing import List # for type hinting. Can be removed, if only Python >3.8 is used
from pathlib import Path
from typing import Type
import magic
import tqdm
from asgiref.sync import async_to_sync
from channels.layers import get_channel_layer
from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.db.models.signals import post_save
from documents import barcodes
from documents import index
from documents import sanity_checker
from documents.classifier import DocumentClassifier
@@ -21,12 +22,10 @@ from documents.models import Document
from documents.models import DocumentType
from documents.models import StoragePath
from documents.models import Tag
from documents.parsers import DocumentParser
from documents.parsers import get_parser_class_for_mime_type
from documents.parsers import ParseError
from documents.sanity_checker import SanityCheckFailedException
from pdf2image import convert_from_path
from pikepdf import Pdf
from PIL import Image
from PIL import ImageSequence
from pyzbar import pyzbar
from whoosh.writing import AsyncWriter
@@ -77,161 +76,6 @@ def train_classifier():
logger.warning("Classifier error: " + str(e))
def barcode_reader(image) -> List[str]:
"""
Read any barcodes contained in image
Returns a list containing all found barcodes
"""
barcodes = []
# Decode the barcode image
detected_barcodes = pyzbar.decode(image)
if detected_barcodes:
# Traverse through all the detected barcodes in image
for barcode in detected_barcodes:
if barcode.data:
decoded_barcode = barcode.data.decode("utf-8")
barcodes.append(decoded_barcode)
logger.debug(
f"Barcode of type {str(barcode.type)} found: {decoded_barcode}",
)
return barcodes
def get_file_type(path: str) -> str:
"""
Determines the file type, based on MIME type.
Returns the MIME type.
"""
mime_type = magic.from_file(path, mime=True)
logger.debug(f"Detected mime type: {mime_type}")
return mime_type
def convert_from_tiff_to_pdf(filepath: str) -> str:
"""
converts a given TIFF image file to pdf into a temporary directory.
Returns the new pdf file.
"""
file_name = os.path.splitext(os.path.basename(filepath))[0]
mime_type = get_file_type(filepath)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
# use old file name with pdf extension
if mime_type == "image/tiff":
newpath = os.path.join(tempdir, file_name + ".pdf")
else:
logger.warning(
f"Cannot convert mime type {str(mime_type)} from {str(filepath)} to pdf.",
)
return None
with Image.open(filepath) as image:
images = []
for i, page in enumerate(ImageSequence.Iterator(image)):
page = page.convert("RGB")
images.append(page)
try:
if len(images) == 1:
images[0].save(newpath)
else:
images[0].save(newpath, save_all=True, append_images=images[1:])
except OSError as e:
logger.warning(
f"Could not save the file as pdf. Error: {str(e)}",
)
return None
return newpath
def scan_file_for_separating_barcodes(filepath: str) -> List[int]:
"""
Scan the provided pdf file for page separating barcodes
Returns a list of pagenumbers, which separate the file
"""
separator_page_numbers = []
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
# use a temporary directory in case the file os too big to handle in memory
with tempfile.TemporaryDirectory() as path:
pages_from_path = convert_from_path(filepath, output_folder=path)
for current_page_number, page in enumerate(pages_from_path):
current_barcodes = barcode_reader(page)
if separator_barcode in current_barcodes:
separator_page_numbers.append(current_page_number)
return separator_page_numbers
def separate_pages(filepath: str, pages_to_split_on: List[int]) -> List[str]:
"""
Separate the provided pdf file on the pages_to_split_on.
The pages which are defined by page_numbers will be removed.
Returns a list of (temporary) filepaths to consume.
These will need to be deleted later.
"""
os.makedirs(settings.SCRATCH_DIR, exist_ok=True)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
fname = os.path.splitext(os.path.basename(filepath))[0]
pdf = Pdf.open(filepath)
document_paths = []
logger.debug(f"Temp dir is {str(tempdir)}")
if not pages_to_split_on:
logger.warning("No pages to split on!")
else:
# go from the first page to the first separator page
dst = Pdf.new()
for n, page in enumerate(pdf.pages):
if n < pages_to_split_on[0]:
dst.pages.append(page)
output_filename = f"{fname}_document_0.pdf"
savepath = os.path.join(tempdir, output_filename)
with open(savepath, "wb") as out:
dst.save(out)
document_paths = [savepath]
# iterate through the rest of the document
for count, page_number in enumerate(pages_to_split_on):
logger.debug(f"Count: {str(count)} page_number: {str(page_number)}")
dst = Pdf.new()
try:
next_page = pages_to_split_on[count + 1]
except IndexError:
next_page = len(pdf.pages)
# skip the first page_number. This contains the barcode page
for page in range(page_number + 1, next_page):
logger.debug(
f"page_number: {str(page_number)} next_page: {str(next_page)}",
)
dst.pages.append(pdf.pages[page])
output_filename = f"{fname}_document_{str(count + 1)}.pdf"
logger.debug(f"pdf no:{str(count)} has {str(len(dst.pages))} pages")
savepath = os.path.join(tempdir, output_filename)
with open(savepath, "wb") as out:
dst.save(out)
document_paths.append(savepath)
logger.debug(f"Temp files are {str(document_paths)}")
return document_paths
def save_to_dir(
filepath: str,
newname: str = None,
target_dir: str = settings.CONSUMPTION_DIR,
):
"""
Copies filepath to target_dir.
Optionally rename the file.
"""
if os.path.isfile(filepath) and os.path.isdir(target_dir):
dst = shutil.copy(filepath, target_dir)
logging.debug(f"saved {str(filepath)} to {str(dst)}")
if newname:
dst_new = os.path.join(target_dir, newname)
logger.debug(f"moving {str(dst)} to {str(dst_new)}")
os.rename(dst, dst_new)
else:
logger.warning(f"{str(filepath)} or {str(target_dir)} don't exist.")
def consume_file(
path,
override_filename=None,
@@ -245,32 +89,30 @@ def consume_file(
# check for separators in current document
if settings.CONSUMER_ENABLE_BARCODES:
separators = []
document_list = []
converted_tiff = None
if settings.CONSUMER_BARCODE_TIFF_SUPPORT:
supported_mime = ["image/tiff", "application/pdf"]
else:
supported_mime = ["application/pdf"]
mime_type = get_file_type(path)
if mime_type not in supported_mime:
mime_type = barcodes.get_file_mime_type(path)
if not barcodes.supported_file_type(mime_type):
# if not supported, skip this routine
logger.warning(
f"Unsupported file format for barcode reader: {str(mime_type)}",
)
else:
separators = []
document_list = []
if mime_type == "image/tiff":
file_to_process = convert_from_tiff_to_pdf(path)
file_to_process = barcodes.convert_from_tiff_to_pdf(path)
else:
file_to_process = path
separators = scan_file_for_separating_barcodes(file_to_process)
separators = barcodes.scan_file_for_separating_barcodes(file_to_process)
if separators:
logger.debug(
f"Pages with separators found in: {str(path)}",
)
document_list = separate_pages(file_to_process, separators)
document_list = barcodes.separate_pages(file_to_process, separators)
if document_list:
for n, document in enumerate(document_list):
@@ -280,14 +122,18 @@ def consume_file(
newname = f"{str(n)}_" + override_filename
else:
newname = None
save_to_dir(document, newname=newname)
barcodes.save_to_dir(document, newname=newname)
# if we got here, the document was successfully split
# and can safely be deleted
if converted_tiff:
if mime_type == "image/tiff":
# Remove the TIFF converted to PDF file
logger.debug(f"Deleting file {file_to_process}")
os.unlink(file_to_process)
# Remove the original file (new file is saved above)
logger.debug(f"Deleting file {path}")
os.unlink(path)
# notify the sender, otherwise the progress bar
# in the UI stays stuck
payload = {
@@ -338,9 +184,9 @@ def sanity_check():
messages.log_messages()
if messages.has_error():
if messages.has_error:
raise SanityCheckFailedException("Sanity check failed with errors. See log.")
elif messages.has_warning():
elif messages.has_warning:
return "Sanity check exited with warnings. See log."
elif len(messages) > 0:
return "Sanity check exited with infos. See log."
@@ -359,3 +205,46 @@ def bulk_update_documents(document_ids):
with AsyncWriter(ix) as writer:
for doc in documents:
index.update_document(writer, doc)
def redo_ocr(document_ids):
all_docs = Document.objects.all()
for doc_pk in document_ids:
try:
logger.info(f"Parsing document {doc_pk}")
doc: Document = all_docs.get(pk=doc_pk)
except ObjectDoesNotExist:
logger.error(f"Document {doc_pk} does not exist")
continue
# Get the correct parser for this mime type
parser_class: Type[DocumentParser] = get_parser_class_for_mime_type(
doc.mime_type,
)
document_parser: DocumentParser = parser_class(
"redo-ocr",
)
# Create a file path to copy the original file to for working on
temp_file = (Path(document_parser.tempdir) / Path("new-ocr-file")).resolve()
shutil.copy(doc.source_path, temp_file)
try:
logger.info(
f"Using {type(document_parser).__name__} for document",
)
# Try to re-parse the document into text
document_parser.parse(str(temp_file), doc.mime_type)
doc.content = document_parser.get_text()
doc.save()
logger.info("Document OCR updated")
except ParseError as e:
logger.error(f"Error parsing document: {e}")
finally:
# Remove the file path if it was created
if temp_file.exists() and temp_file.is_file():
temp_file.unlink()

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -5,6 +5,7 @@ import os
import shutil
import tempfile
import urllib.request
import uuid
import zipfile
from unittest import mock
from unittest.mock import MagicMock
@@ -19,12 +20,14 @@ from django.conf import settings
from django.contrib.auth.models import User
from django.test import override_settings
from django.utils import timezone
from django_q.models import Task
from documents import bulk_edit
from documents import index
from documents.models import Correspondent
from documents.models import Document
from documents.models import DocumentType
from documents.models import MatchingModel
from documents.models import PaperlessTask
from documents.models import SavedView
from documents.models import StoragePath
from documents.models import Tag
@@ -41,7 +44,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
super().setUp()
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_login(user=self.user)
self.client.force_authenticate(user=self.user)
def testDocuments(self):
@@ -176,7 +179,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
)
with open(
os.path.join(self.dirs.thumbnail_dir, f"{doc.pk:07d}.png"),
os.path.join(self.dirs.thumbnail_dir, f"{doc.pk:07d}.webp"),
"wb",
) as f:
f.write(content_thumbnail)
@@ -1022,7 +1025,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
"samples",
"documents",
"thumbnails",
"0000001.png",
"0000001.webp",
)
archive_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf")
@@ -1176,7 +1179,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
self.assertEqual(self.client.get(f"/api/saved_views/{v1.id}/").status_code, 404)
self.client.force_login(user=u1)
self.client.force_authenticate(user=u1)
response = self.client.get("/api/saved_views/")
self.assertEqual(response.status_code, 200)
@@ -1184,7 +1187,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
self.assertEqual(self.client.get(f"/api/saved_views/{v1.id}/").status_code, 200)
self.client.force_login(user=u2)
self.client.force_authenticate(user=u2)
response = self.client.get("/api/saved_views/")
self.assertEqual(response.status_code, 200)
@@ -1358,7 +1361,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase):
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_login(user=self.user)
self.client.force_authenticate(user=self.user)
self.client.defaults["HTTP_ACCEPT"] = "application/json; version=2"
def test_tag_validate_color(self):
@@ -1432,17 +1435,25 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase):
"#000000",
)
def test_ui_settings(self):
test_user = User.objects.create_superuser(username="test")
self.client.force_login(user=test_user)
response = self.client.get("/api/ui_settings/", format="json")
class TestApiUiSettings(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/ui_settings/"
def setUp(self):
super().setUp()
self.test_user = User.objects.create_superuser(username="test")
self.client.force_authenticate(user=self.test_user)
def test_api_get_ui_settings(self):
response = self.client.get(self.ENDPOINT, format="json")
self.assertEqual(response.status_code, 200)
self.assertDictEqual(
response.data["settings"],
{},
)
def test_api_set_ui_settings(self):
settings = {
"settings": {
"dark_mode": {
@@ -1452,18 +1463,16 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase):
}
response = self.client.post(
"/api/ui_settings/",
self.ENDPOINT,
json.dumps(settings),
content_type="application/json",
)
self.assertEqual(response.status_code, 200)
response = self.client.get("/api/ui_settings/", format="json")
self.assertEqual(response.status_code, 200)
ui_settings = self.test_user.ui_settings
self.assertDictEqual(
response.data["settings"],
ui_settings.settings,
settings["settings"],
)
@@ -1473,7 +1482,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase):
super().setUp()
user = User.objects.create_superuser(username="temp_admin")
self.client.force_login(user=user)
self.client.force_authenticate(user=user)
patcher = mock.patch("documents.bulk_edit.async_task")
self.async_task = patcher.start()
@@ -1786,6 +1795,34 @@ class TestBulkEdit(DirectoriesMixin, APITestCase):
self.assertEqual(kwargs["add_tags"], [self.t1.id])
self.assertEqual(kwargs["remove_tags"], [self.t2.id])
@mock.patch("documents.serialisers.bulk_edit.modify_tags")
def test_api_modify_tags_not_provided(self, m):
"""
GIVEN:
- API data to modify tags is missing modify_tags field
WHEN:
- API to edit tags is called
THEN:
- API returns HTTP 400
- modify_tags is not called
"""
m.return_value = "OK"
response = self.client.post(
"/api/documents/bulk_edit/",
json.dumps(
{
"documents": [self.doc1.id, self.doc3.id],
"method": "modify_tags",
"parameters": {
"add_tags": [self.t1.id],
},
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 400)
m.assert_not_called()
@mock.patch("documents.serialisers.bulk_edit.delete")
def test_api_delete(self, m):
m.return_value = "OK"
@@ -1802,6 +1839,118 @@ class TestBulkEdit(DirectoriesMixin, APITestCase):
self.assertEqual(args[0], [self.doc1.id])
self.assertEqual(len(kwargs), 0)
@mock.patch("documents.serialisers.bulk_edit.set_storage_path")
def test_api_set_storage_path(self, m):
"""
GIVEN:
- API data to set the storage path of a document
WHEN:
- API is called
THEN:
- set_storage_path is called with correct document IDs and storage_path ID
"""
m.return_value = "OK"
response = self.client.post(
"/api/documents/bulk_edit/",
json.dumps(
{
"documents": [self.doc1.id],
"method": "set_storage_path",
"parameters": {"storage_path": self.sp1.id},
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 200)
m.assert_called_once()
args, kwargs = m.call_args
self.assertListEqual(args[0], [self.doc1.id])
self.assertEqual(kwargs["storage_path"], self.sp1.id)
@mock.patch("documents.serialisers.bulk_edit.set_storage_path")
def test_api_unset_storage_path(self, m):
"""
GIVEN:
- API data to clear/unset the storage path of a document
WHEN:
- API is called
THEN:
- set_storage_path is called with correct document IDs and None storage_path
"""
m.return_value = "OK"
response = self.client.post(
"/api/documents/bulk_edit/",
json.dumps(
{
"documents": [self.doc1.id],
"method": "set_storage_path",
"parameters": {"storage_path": None},
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 200)
m.assert_called_once()
args, kwargs = m.call_args
self.assertListEqual(args[0], [self.doc1.id])
self.assertEqual(kwargs["storage_path"], None)
def test_api_invalid_storage_path(self):
"""
GIVEN:
- API data to set the storage path of a document
- Given storage_path ID isn't valid
WHEN:
- API is called
THEN:
- set_storage_path is called with correct document IDs and storage_path ID
"""
response = self.client.post(
"/api/documents/bulk_edit/",
json.dumps(
{
"documents": [self.doc1.id],
"method": "set_storage_path",
"parameters": {"storage_path": self.sp1.id + 10},
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 400)
self.async_task.assert_not_called()
def test_api_set_storage_path_not_provided(self):
"""
GIVEN:
- API data to set the storage path of a document
- API data is missing storage path ID
WHEN:
- API is called
THEN:
- set_storage_path is called with correct document IDs and storage_path ID
"""
response = self.client.post(
"/api/documents/bulk_edit/",
json.dumps(
{
"documents": [self.doc1.id],
"method": "set_storage_path",
"parameters": {},
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 400)
self.async_task.assert_not_called()
def test_api_invalid_doc(self):
self.assertEqual(Document.objects.count(), 5)
response = self.client.post(
@@ -2049,7 +2198,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase):
super().setUp()
user = User.objects.create_superuser(username="temp_admin")
self.client.force_login(user=user)
self.client.force_authenticate(user=user)
self.doc1 = Document.objects.create(title="unrelated", checksum="A")
self.doc2 = Document.objects.create(
@@ -2203,7 +2352,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase):
)
class TestApiAuth(APITestCase):
class TestApiAuth(DirectoriesMixin, APITestCase):
def test_auth_required(self):
d = Document.objects.create(title="Test")
@@ -2250,13 +2399,13 @@ class TestApiAuth(APITestCase):
def test_api_version_with_auth(self):
user = User.objects.create_superuser(username="test")
self.client.force_login(user)
self.client.force_authenticate(user)
response = self.client.get("/api/")
self.assertIn("X-Api-Version", response)
self.assertIn("X-Version", response)
class TestRemoteVersion(APITestCase):
class TestApiRemoteVersion(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/remote_version/"
def setUp(self):
@@ -2421,3 +2570,133 @@ class TestRemoteVersion(APITestCase):
"feature_is_set": True,
},
)
class TestApiStoragePaths(DirectoriesMixin, APITestCase):
ENDPOINT = "/api/storage_paths/"
def setUp(self) -> None:
super().setUp()
user = User.objects.create(username="temp_admin")
self.client.force_authenticate(user=user)
self.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}")
def test_api_get_storage_path(self):
"""
GIVEN:
- API request to get all storage paths
WHEN:
- API is called
THEN:
- Existing storage paths are returned
"""
response = self.client.get(self.ENDPOINT, format="json")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["count"], 1)
resp_storage_path = response.data["results"][0]
self.assertEqual(resp_storage_path["id"], self.sp1.id)
self.assertEqual(resp_storage_path["path"], self.sp1.path)
def test_api_create_storage_path(self):
"""
GIVEN:
- API request to create a storage paths
WHEN:
- API is called
THEN:
- Correct HTTP response
- New storage path is created
"""
response = self.client.post(
self.ENDPOINT,
json.dumps(
{
"name": "A storage path",
"path": "Somewhere/{asn}",
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 201)
self.assertEqual(StoragePath.objects.count(), 2)
def test_api_create_invalid_storage_path(self):
"""
GIVEN:
- API request to create a storage paths
- Storage path format is incorrect
WHEN:
- API is called
THEN:
- Correct HTTP 400 response
- No storage path is created
"""
response = self.client.post(
self.ENDPOINT,
json.dumps(
{
"name": "Another storage path",
"path": "Somewhere/{correspdent}",
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, 400)
self.assertEqual(StoragePath.objects.count(), 1)
class TestTasks(APITestCase):
ENDPOINT = "/api/tasks/"
ENDPOINT_ACKOWLEDGE = "/api/acknowledge_tasks/"
def setUp(self):
super().setUp()
self.user = User.objects.create_superuser(username="temp_admin")
self.client.force_authenticate(user=self.user)
def test_get_tasks(self):
task_id1 = str(uuid.uuid4())
PaperlessTask.objects.create(task_id=task_id1)
Task.objects.create(
id=task_id1,
started=timezone.now() - datetime.timedelta(seconds=30),
stopped=timezone.now(),
func="documents.tasks.consume_file",
)
task_id2 = str(uuid.uuid4())
PaperlessTask.objects.create(task_id=task_id2)
response = self.client.get(self.ENDPOINT)
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 2)
returned_task1 = response.data[1]
returned_task2 = response.data[0]
self.assertEqual(returned_task1["task_id"], task_id1)
self.assertEqual(returned_task1["status"], "complete")
self.assertIsNotNone(returned_task1["attempted_task"])
self.assertEqual(returned_task2["task_id"], task_id2)
self.assertEqual(returned_task2["status"], "queued")
self.assertIsNone(returned_task2["attempted_task"])
def test_acknowledge_tasks(self):
task_id = str(uuid.uuid4())
task = PaperlessTask.objects.create(task_id=task_id)
response = self.client.get(self.ENDPOINT)
self.assertEqual(len(response.data), 1)
response = self.client.post(
self.ENDPOINT_ACKOWLEDGE,
{"tasks": [task.id]},
)
self.assertEqual(response.status_code, 200)
response = self.client.get(self.ENDPOINT)
self.assertEqual(len(response.data), 0)

View File

@@ -0,0 +1,456 @@
import os
import shutil
import tempfile
from unittest import mock
from django.conf import settings
from django.test import override_settings
from django.test import TestCase
from documents import barcodes
from documents import tasks
from documents.tests.utils import DirectoriesMixin
from PIL import Image
class TestBarcode(DirectoriesMixin, TestCase):
def test_barcode_reader(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pbm",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader_distorsion(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-distorsion.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader_distorsion2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-distorsion2.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader_unreadable(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-unreadable.png",
)
img = Image.open(test_file)
self.assertEqual(barcodes.barcode_reader(img), [])
def test_barcode_reader_qr(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"qr-code-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader_128(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(barcodes.barcode_reader(img), [separator_barcode])
def test_barcode_reader_no_barcode(self):
test_file = os.path.join(os.path.dirname(__file__), "samples", "simple.png")
img = Image.open(test_file)
self.assertEqual(barcodes.barcode_reader(img), [])
def test_barcode_reader_custom_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.png",
)
img = Image.open(test_file)
self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"])
def test_barcode_reader_custom_qr_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-qr-custom.png",
)
img = Image.open(test_file)
self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"])
def test_barcode_reader_custom_128_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.png",
)
img = Image.open(test_file)
self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"])
def test_get_mime_type(self):
tiff_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.tiff",
)
pdf_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.pdf",
)
png_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.png",
)
tiff_file_no_extension = os.path.join(settings.SCRATCH_DIR, "testfile1")
pdf_file_no_extension = os.path.join(settings.SCRATCH_DIR, "testfile2")
shutil.copy(tiff_file, tiff_file_no_extension)
shutil.copy(pdf_file, pdf_file_no_extension)
self.assertEqual(barcodes.get_file_mime_type(tiff_file), "image/tiff")
self.assertEqual(barcodes.get_file_mime_type(pdf_file), "application/pdf")
self.assertEqual(
barcodes.get_file_mime_type(tiff_file_no_extension),
"image/tiff",
)
self.assertEqual(
barcodes.get_file_mime_type(pdf_file_no_extension),
"application/pdf",
)
self.assertEqual(barcodes.get_file_mime_type(png_file), "image/png")
def test_convert_from_tiff_to_pdf(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.tiff")
shutil.copy(test_file, dst)
target_file = barcodes.convert_from_tiff_to_pdf(dst)
file_extension = os.path.splitext(os.path.basename(target_file))[1]
self.assertTrue(os.path.isfile(target_file))
self.assertEqual(file_extension, ".pdf")
def test_convert_error_from_pdf_to_pdf(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.pdf",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.pdf")
shutil.copy(test_file, dst)
self.assertIsNone(barcodes.convert_from_tiff_to_pdf(dst))
def test_scan_file_for_separating_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
def test_scan_file_for_separating_barcodes2(self):
test_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf")
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [])
def test_scan_file_for_separating_barcodes3(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [1])
def test_scan_file_for_separating_barcodes4(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"several-patcht-codes.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [2, 5])
def test_scan_file_for_separating_barcodes_upsidedown(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle_reverse.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [1])
def test_scan_file_for_separating_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-qr.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-qr-custom.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_128_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
def test_scan_file_for_separating_wrong_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.pdf",
)
pages = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [])
def test_separate_pages(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
pages = barcodes.separate_pages(test_file, [1])
self.assertEqual(len(pages), 2)
def test_separate_pages_no_list(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
with self.assertLogs("paperless.barcodes", level="WARNING") as cm:
pages = barcodes.separate_pages(test_file, [])
self.assertEqual(pages, [])
self.assertEqual(
cm.output,
[
f"WARNING:paperless.barcodes:No pages to split on!",
],
)
def test_save_to_dir(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
barcodes.save_to_dir(test_file, target_dir=tempdir)
target_file = os.path.join(tempdir, "patch-code-t.pdf")
self.assertTrue(os.path.isfile(target_file))
def test_save_to_dir2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
nonexistingdir = "/nowhere"
if os.path.isdir(nonexistingdir):
self.fail("non-existing dir exists")
else:
with self.assertLogs("paperless.barcodes", level="WARNING") as cm:
barcodes.save_to_dir(test_file, target_dir=nonexistingdir)
self.assertEqual(
cm.output,
[
f"WARNING:paperless.barcodes:{str(test_file)} or {str(nonexistingdir)} don't exist.",
],
)
def test_save_to_dir3(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
barcodes.save_to_dir(test_file, newname="newname.pdf", target_dir=tempdir)
target_file = os.path.join(tempdir, "newname.pdf")
self.assertTrue(os.path.isfile(target_file))
def test_barcode_splitter(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
separators = barcodes.scan_file_for_separating_barcodes(test_file)
self.assertTrue(separators)
document_list = barcodes.separate_pages(test_file, separators)
self.assertTrue(document_list)
for document in document_list:
barcodes.save_to_dir(document, target_dir=tempdir)
target_file1 = os.path.join(tempdir, "patch-code-t-middle_document_0.pdf")
target_file2 = os.path.join(tempdir, "patch-code-t-middle_document_1.pdf")
self.assertTrue(os.path.isfile(target_file1))
self.assertTrue(os.path.isfile(target_file2))
@override_settings(CONSUMER_ENABLE_BARCODES=True)
def test_consume_barcode_file(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.pdf")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
def test_consume_barcode_tiff_file(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.tiff")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
@mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consume_barcode_unsupported_jpg_file(self, m):
"""
This test assumes barcode and TIFF support are enabled and
the user uploads an unsupported image file (e.g. jpg)
The function shouldn't try to scan for separating barcodes
and continue archiving the file as is.
"""
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.jpg",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.jpg")
shutil.copy(test_file, dst)
with self.assertLogs("paperless.tasks", level="WARNING") as cm:
self.assertIn("Success", tasks.consume_file(dst))
self.assertListEqual(
cm.output,
[
"WARNING:paperless.tasks:Unsupported file format for barcode reader: image/jpeg",
],
)
m.assert_called_once()
args, kwargs = m.call_args
self.assertIsNone(kwargs["override_filename"])
self.assertIsNone(kwargs["override_title"])
self.assertIsNone(kwargs["override_correspondent_id"])
self.assertIsNone(kwargs["override_document_type_id"])
self.assertIsNone(kwargs["override_tag_ids"])
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
def test_consume_barcode_supported_no_extension_file(self):
"""
This test assumes barcode and TIFF support are enabled and
the user uploads a supported image file, but without extension
"""
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")

View File

@@ -1,23 +1,64 @@
import textwrap
import unittest
from unittest import mock
from django.core.checks import Error
from django.test import override_settings
from django.test import TestCase
from documents.checks import changed_password_check
from documents.checks import parser_check
from documents.models import Document
from ..checks import changed_password_check
from ..checks import parser_check
from ..models import Document
from ..signals import document_consumer_declaration
from .factories import DocumentFactory
class ChecksTestCase(TestCase):
class TestDocumentChecks(TestCase):
def test_changed_password_check_empty_db(self):
self.assertEqual(changed_password_check(None), [])
self.assertListEqual(changed_password_check(None), [])
def test_changed_password_check_no_encryption(self):
DocumentFactory.create(storage_type=Document.STORAGE_TYPE_UNENCRYPTED)
self.assertEqual(changed_password_check(None), [])
self.assertListEqual(changed_password_check(None), [])
def test_encrypted_missing_passphrase(self):
DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
msgs = changed_password_check(None)
self.assertEqual(len(msgs), 1)
msg_text = msgs[0].msg
self.assertEqual(
msg_text,
"The database contains encrypted documents but no password is set.",
)
@override_settings(
PASSPHRASE="test",
)
@mock.patch("paperless.db.GnuPG.decrypted")
@mock.patch("documents.models.Document.source_file")
def test_encrypted_decrypt_fails(self, mock_decrypted, mock_source_file):
mock_decrypted.return_value = None
mock_source_file.return_value = b""
DocumentFactory.create(storage_type=Document.STORAGE_TYPE_GPG)
msgs = changed_password_check(None)
self.assertEqual(len(msgs), 1)
msg_text = msgs[0].msg
self.assertEqual(
msg_text,
textwrap.dedent(
"""
The current password doesn't match the password of the
existing documents.
If you intend to change your password, you must first export
all of the old documents, start fresh with the new password
and then re-import them."
""",
),
)
def test_parser_check(self):

View File

@@ -3,10 +3,12 @@ import tempfile
from pathlib import Path
from unittest import mock
import documents
import pytest
from django.conf import settings
from django.test import override_settings
from django.test import TestCase
from documents.classifier import ClassifierModelCorruptError
from documents.classifier import DocumentClassifier
from documents.classifier import IncompatibleClassifierVersionError
from documents.classifier import load_classifier
@@ -204,13 +206,57 @@ class TestClassifier(DirectoriesMixin, TestCase):
MODEL_FILE=os.path.join(os.path.dirname(__file__), "data", "model.pickle"),
)
def test_load_and_classify(self):
# Generate test data, train and save to the model file
# This ensures the model file sklearn version matches
# and eliminates a warning
self.generate_test_data()
self.classifier.train()
self.classifier.save()
new_classifier = DocumentClassifier()
new_classifier.load()
self.assertCountEqual(new_classifier.predict_tags(self.doc2.content), [45, 12])
@override_settings(
MODEL_FILE=os.path.join(os.path.dirname(__file__), "data", "model.pickle"),
)
@mock.patch("documents.classifier.pickle.load")
def test_load_corrupt_file(self, patched_pickle_load):
"""
GIVEN:
- Corrupted classifier pickle file
WHEN:
- An attempt is made to load the classifier
THEN:
- The ClassifierModelCorruptError is raised
"""
# First load is the schema version
patched_pickle_load.side_effect = [DocumentClassifier.FORMAT_VERSION, OSError()]
with self.assertRaises(ClassifierModelCorruptError):
self.classifier.load()
@override_settings(
MODEL_FILE=os.path.join(
os.path.dirname(__file__),
"data",
"v1.0.2.model.pickle",
),
)
def test_load_new_scikit_learn_version(self):
"""
GIVEN:
- classifier pickle file created with a different scikit-learn version
WHEN:
- An attempt is made to load the classifier
THEN:
- The classifier reports the warning was captured and processed
"""
with self.assertRaises(IncompatibleClassifierVersionError):
self.classifier.load()
def test_one_correspondent_predict(self):
c1 = Correspondent.objects.create(
name="c1",

View File

@@ -180,10 +180,10 @@ class DummyParser(DocumentParser):
def __init__(self, logging_group, scratch_dir, archive_path):
super().__init__(logging_group, None)
_, self.fake_thumb = tempfile.mkstemp(suffix=".png", dir=scratch_dir)
_, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir)
self.archive_path = archive_path
def get_optimised_thumbnail(self, document_path, mime_type, file_name=None):
def get_thumbnail(self, document_path, mime_type, file_name=None):
return self.fake_thumb
def parse(self, document_path, mime_type, file_name=None):
@@ -194,12 +194,12 @@ class CopyParser(DocumentParser):
def get_thumbnail(self, document_path, mime_type, file_name=None):
return self.fake_thumb
def get_optimised_thumbnail(self, document_path, mime_type, file_name=None):
def get_thumbnail(self, document_path, mime_type, file_name=None):
return self.fake_thumb
def __init__(self, logging_group, progress_callback=None):
super().__init__(logging_group, progress_callback)
_, self.fake_thumb = tempfile.mkstemp(suffix=".png", dir=self.tempdir)
_, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=self.tempdir)
def parse(self, document_path, mime_type, file_name=None):
self.text = "The text"
@@ -214,9 +214,9 @@ class FaultyParser(DocumentParser):
def __init__(self, logging_group, scratch_dir):
super().__init__(logging_group)
_, self.fake_thumb = tempfile.mkstemp(suffix=".png", dir=scratch_dir)
_, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir)
def get_optimised_thumbnail(self, document_path, mime_type, file_name=None):
def get_thumbnail(self, document_path, mime_type, file_name=None):
return self.fake_thumb
def parse(self, document_path, mime_type, file_name=None):
@@ -230,6 +230,8 @@ def fake_magic_from_file(file, mime=False):
return "application/pdf"
elif os.path.splitext(file)[1] == ".png":
return "image/png"
elif os.path.splitext(file)[1] == ".webp":
return "image/webp"
else:
return "unknown"
else:

View File

@@ -150,9 +150,9 @@ class TestDecryptDocuments(TestCase):
"samples",
"documents",
"thumbnails",
f"0000004.png.gpg",
f"0000004.webp.gpg",
),
os.path.join(thumb_dir, f"{doc.id:07}.png.gpg"),
os.path.join(thumb_dir, f"{doc.id:07}.webp.gpg"),
)
call_command("decrypt_documents")
@@ -163,7 +163,7 @@ class TestDecryptDocuments(TestCase):
self.assertEqual(doc.filename, "0000004.pdf")
self.assertTrue(os.path.isfile(os.path.join(originals_dir, "0000004.pdf")))
self.assertTrue(os.path.isfile(doc.source_path))
self.assertTrue(os.path.isfile(os.path.join(thumb_dir, f"{doc.id:07}.png")))
self.assertTrue(os.path.isfile(os.path.join(thumb_dir, f"{doc.id:07}.webp")))
self.assertTrue(os.path.isfile(doc.thumbnail_path))
with doc.source_file as f:
@@ -238,5 +238,5 @@ class TestSanityChecker(DirectoriesMixin, TestCase):
with self.assertLogs() as capture:
call_command("document_sanity_checker")
self.assertEqual(len(capture.output), 1)
self.assertIn("Checksum mismatch of document", capture.output[0])
self.assertEqual(len(capture.output), 2)
self.assertIn("Checksum mismatch. Stored: abc, actual:", capture.output[1])

View File

@@ -190,7 +190,7 @@ class TestExportImport(DirectoriesMixin, TestCase):
self.assertEqual(Document.objects.get(id=self.d4.id).title, "wow_dec")
messages = check_sanity()
# everything is alright after the test
self.assertEqual(len(messages), 0, str([str(m) for m in messages]))
self.assertEqual(len(messages), 0)
def test_exporter_with_filename_format(self):
shutil.rmtree(os.path.join(self.dirs.media_dir, "documents"))

View File

@@ -0,0 +1,231 @@
import shutil
import tempfile
from pathlib import Path
from typing import Callable
from typing import Iterable
from typing import Union
from unittest import mock
from django.test import override_settings
from documents.tests.test_migration_archive_files import thumbnail_path
from documents.tests.utils import TestMigrations
@mock.patch(
"documents.migrations.1021_webp_thumbnail_conversion.multiprocessing.pool.Pool.map",
)
@mock.patch("documents.migrations.1021_webp_thumbnail_conversion.run_convert")
class TestMigrateWebPThumbnails(TestMigrations):
migrate_from = "1020_merge_20220518_1839"
migrate_to = "1021_webp_thumbnail_conversion"
auto_migrate = False
def pretend_convert_output(self, *args, **kwargs):
"""
Pretends to do the conversion, by copying the input file
to the output file
"""
shutil.copy2(
Path(kwargs["input_file"].rstrip("[0]")),
Path(kwargs["output_file"]),
)
def pretend_map(self, func: Callable, iterable: Iterable):
"""
Pretends to be the map of a multiprocessing.Pool, but secretly does
everything in series
"""
for item in iterable:
func(item)
def create_dummy_thumbnails(
self,
thumb_dir: Path,
ext: str,
count: int,
start_count: int = 0,
):
"""
Helper to create a certain count of files of given extension in a given directory
"""
for idx in range(count):
(Path(thumb_dir) / Path(f"{start_count + idx:07}.{ext}")).touch()
# Triple check expected files exist
self.assert_file_count_by_extension(ext, thumb_dir, count)
def create_webp_thumbnail_files(
self,
thumb_dir: Path,
count: int,
start_count: int = 0,
):
"""
Creates a dummy WebP thumbnail file in the given directory, based on
the database Document
"""
self.create_dummy_thumbnails(thumb_dir, "webp", count, start_count)
def create_png_thumbnail_file(
self,
thumb_dir: Path,
count: int,
start_count: int = 0,
):
"""
Creates a dummy PNG thumbnail file in the given directory, based on
the database Document
"""
self.create_dummy_thumbnails(thumb_dir, "png", count, start_count)
def assert_file_count_by_extension(
self,
ext: str,
dir: Union[str, Path],
expected_count: int,
):
"""
Helper to assert a certain count of given extension files in given directory
"""
if not isinstance(dir, Path):
dir = Path(dir)
matching_files = list(dir.glob(f"*.{ext}"))
self.assertEqual(len(matching_files), expected_count)
def assert_png_file_count(self, dir: Path, expected_count: int):
"""
Helper to assert a certain count of PNG extension files in given directory
"""
self.assert_file_count_by_extension("png", dir, expected_count)
def assert_webp_file_count(self, dir: Path, expected_count: int):
"""
Helper to assert a certain count of WebP extension files in given directory
"""
self.assert_file_count_by_extension("webp", dir, expected_count)
def setUp(self):
self.thumbnail_dir = Path(tempfile.mkdtemp()).resolve()
return super().setUp()
def tearDown(self) -> None:
shutil.rmtree(self.thumbnail_dir)
return super().tearDown()
def test_do_nothing_if_converted(
self,
run_convert_mock: mock.MagicMock,
map_mock: mock.MagicMock,
):
"""
GIVEN:
- Document exists with default WebP thumbnail path
WHEN:
- Thumbnail conversion is attempted
THEN:
- Nothing is converted
"""
map_mock.side_effect = self.pretend_map
with override_settings(
THUMBNAIL_DIR=self.thumbnail_dir,
):
self.create_webp_thumbnail_files(self.thumbnail_dir, 3)
self.performMigration()
run_convert_mock.assert_not_called()
self.assert_webp_file_count(self.thumbnail_dir, 3)
def test_convert_single_thumbnail(
self,
run_convert_mock: mock.MagicMock,
map_mock: mock.MagicMock,
):
"""
GIVEN:
- Document exists with PNG thumbnail
WHEN:
- Thumbnail conversion is attempted
THEN:
- Single thumbnail is converted
"""
map_mock.side_effect = self.pretend_map
run_convert_mock.side_effect = self.pretend_convert_output
with override_settings(
THUMBNAIL_DIR=self.thumbnail_dir,
):
self.create_png_thumbnail_file(self.thumbnail_dir, 3)
self.performMigration()
run_convert_mock.assert_called()
self.assertEqual(run_convert_mock.call_count, 3)
self.assert_webp_file_count(self.thumbnail_dir, 3)
def test_convert_errors_out(
self,
run_convert_mock: mock.MagicMock,
map_mock: mock.MagicMock,
):
"""
GIVEN:
- Document exists with PNG thumbnail
WHEN:
- Thumbnail conversion is attempted, but raises an exception
THEN:
- Single thumbnail is converted
"""
map_mock.side_effect = self.pretend_map
run_convert_mock.side_effect = OSError
with override_settings(
THUMBNAIL_DIR=self.thumbnail_dir,
):
self.create_png_thumbnail_file(self.thumbnail_dir, 3)
self.performMigration()
run_convert_mock.assert_called()
self.assertEqual(run_convert_mock.call_count, 3)
self.assert_png_file_count(self.thumbnail_dir, 3)
def test_convert_mixed(
self,
run_convert_mock: mock.MagicMock,
map_mock: mock.MagicMock,
):
"""
GIVEN:
- Document exists with PNG thumbnail
WHEN:
- Thumbnail conversion is attempted, but raises an exception
THEN:
- Single thumbnail is converted
"""
map_mock.side_effect = self.pretend_map
run_convert_mock.side_effect = self.pretend_convert_output
with override_settings(
THUMBNAIL_DIR=self.thumbnail_dir,
):
self.create_png_thumbnail_file(self.thumbnail_dir, 3)
self.create_webp_thumbnail_files(self.thumbnail_dir, 2, start_count=3)
self.performMigration()
run_convert_mock.assert_called()
self.assertEqual(run_convert_mock.call_count, 3)
self.assert_png_file_count(self.thumbnail_dir, 0)
self.assert_webp_file_count(self.thumbnail_dir, 5)

View File

@@ -87,31 +87,6 @@ def fake_get_thumbnail(self, path, mimetype, file_name):
return os.path.join(os.path.dirname(__file__), "examples", "no-text.png")
class TestBaseParser(TestCase):
def setUp(self) -> None:
self.scratch = tempfile.mkdtemp()
override_settings(SCRATCH_DIR=self.scratch).enable()
def tearDown(self) -> None:
shutil.rmtree(self.scratch)
@mock.patch("documents.parsers.DocumentParser.get_thumbnail", fake_get_thumbnail)
@override_settings(OPTIMIZE_THUMBNAILS=True)
def test_get_optimised_thumbnail(self):
parser = DocumentParser(None)
parser.get_optimised_thumbnail("any", "not important", "document.pdf")
@mock.patch("documents.parsers.DocumentParser.get_thumbnail", fake_get_thumbnail)
@override_settings(OPTIMIZE_THUMBNAILS=False)
def test_get_optimised_thumb_disabled(self):
parser = DocumentParser(None)
path = parser.get_optimised_thumbnail("any", "not important", "document.pdf")
self.assertEqual(path, fake_get_thumbnail(None, None, None, None))
class TestParserAvailability(TestCase):
def test_file_extensions(self):

View File

@@ -8,62 +8,9 @@ from django.conf import settings
from django.test import TestCase
from documents.models import Document
from documents.sanity_checker import check_sanity
from documents.sanity_checker import SanityCheckMessages
from documents.tests.utils import DirectoriesMixin
class TestSanityCheckMessages(TestCase):
def test_no_messages(self):
messages = SanityCheckMessages()
self.assertEqual(len(messages), 0)
self.assertFalse(messages.has_error())
self.assertFalse(messages.has_warning())
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(len(capture.output), 1)
self.assertEqual(capture.records[0].levelno, logging.INFO)
self.assertEqual(
capture.records[0].message,
"Sanity checker detected no issues.",
)
def test_info(self):
messages = SanityCheckMessages()
messages.info("Something might be wrong")
self.assertEqual(len(messages), 1)
self.assertFalse(messages.has_error())
self.assertFalse(messages.has_warning())
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(len(capture.output), 1)
self.assertEqual(capture.records[0].levelno, logging.INFO)
self.assertEqual(capture.records[0].message, "Something might be wrong")
def test_warning(self):
messages = SanityCheckMessages()
messages.warning("Something is wrong")
self.assertEqual(len(messages), 1)
self.assertFalse(messages.has_error())
self.assertTrue(messages.has_warning())
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(len(capture.output), 1)
self.assertEqual(capture.records[0].levelno, logging.WARNING)
self.assertEqual(capture.records[0].message, "Something is wrong")
def test_error(self):
messages = SanityCheckMessages()
messages.error("Something is seriously wrong")
self.assertEqual(len(messages), 1)
self.assertTrue(messages.has_error())
self.assertFalse(messages.has_warning())
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(len(capture.output), 1)
self.assertEqual(capture.records[0].levelno, logging.ERROR)
self.assertEqual(capture.records[0].message, "Something is seriously wrong")
class TestSanityCheck(DirectoriesMixin, TestCase):
def make_test_data(self):
@@ -95,9 +42,9 @@ class TestSanityCheck(DirectoriesMixin, TestCase):
"samples",
"documents",
"thumbnails",
"0000001.png",
"0000001.webp",
),
os.path.join(self.dirs.thumbnail_dir, "0000001.png"),
os.path.join(self.dirs.thumbnail_dir, "0000001.webp"),
)
return Document.objects.create(
@@ -111,10 +58,30 @@ class TestSanityCheck(DirectoriesMixin, TestCase):
archive_filename="0000001.pdf",
)
def assertSanityError(self, messageRegex):
def assertSanityError(self, doc: Document, messageRegex):
messages = check_sanity()
self.assertTrue(messages.has_error())
self.assertRegex(messages[0]["message"], messageRegex)
self.assertTrue(messages.has_error)
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(
capture.records[0].message,
f"Detected following issue(s) with document #{doc.pk}, titled {doc.title}",
)
self.assertRegex(capture.records[1].message, messageRegex)
def test_no_issues(self):
self.make_test_data()
messages = check_sanity()
self.assertFalse(messages.has_error)
self.assertFalse(messages.has_warning)
with self.assertLogs() as capture:
messages.log_messages()
self.assertEqual(len(capture.output), 1)
self.assertEqual(capture.records[0].levelno, logging.INFO)
self.assertEqual(
capture.records[0].message,
"Sanity checker detected no issues.",
)
def test_no_docs(self):
self.assertEqual(len(check_sanity()), 0)
@@ -126,75 +93,82 @@ class TestSanityCheck(DirectoriesMixin, TestCase):
def test_no_thumbnail(self):
doc = self.make_test_data()
os.remove(doc.thumbnail_path)
self.assertSanityError("Thumbnail of document .* does not exist")
self.assertSanityError(doc, "Thumbnail of document does not exist")
def test_thumbnail_no_access(self):
doc = self.make_test_data()
os.chmod(doc.thumbnail_path, 0o000)
self.assertSanityError("Cannot read thumbnail file of document")
self.assertSanityError(doc, "Cannot read thumbnail file of document")
os.chmod(doc.thumbnail_path, 0o777)
def test_no_original(self):
doc = self.make_test_data()
os.remove(doc.source_path)
self.assertSanityError("Original of document .* does not exist.")
self.assertSanityError(doc, "Original of document does not exist.")
def test_original_no_access(self):
doc = self.make_test_data()
os.chmod(doc.source_path, 0o000)
self.assertSanityError("Cannot read original file of document")
self.assertSanityError(doc, "Cannot read original file of document")
os.chmod(doc.source_path, 0o777)
def test_original_checksum_mismatch(self):
doc = self.make_test_data()
doc.checksum = "WOW"
doc.save()
self.assertSanityError("Checksum mismatch of document")
self.assertSanityError(doc, "Checksum mismatch. Stored: WOW, actual: ")
def test_no_archive(self):
doc = self.make_test_data()
os.remove(doc.archive_path)
self.assertSanityError("Archived version of document .* does not exist.")
self.assertSanityError(doc, "Archived version of document does not exist.")
def test_archive_no_access(self):
doc = self.make_test_data()
os.chmod(doc.archive_path, 0o000)
self.assertSanityError("Cannot read archive file of document")
self.assertSanityError(doc, "Cannot read archive file of document")
os.chmod(doc.archive_path, 0o777)
def test_archive_checksum_mismatch(self):
doc = self.make_test_data()
doc.archive_checksum = "WOW"
doc.save()
self.assertSanityError("Checksum mismatch of archived document")
self.assertSanityError(doc, "Checksum mismatch of archived document")
def test_empty_content(self):
doc = self.make_test_data()
doc.content = ""
doc.save()
messages = check_sanity()
self.assertFalse(messages.has_error())
self.assertFalse(messages.has_warning())
self.assertFalse(messages.has_error)
self.assertFalse(messages.has_warning)
self.assertEqual(len(messages), 1)
self.assertRegex(messages[0]["message"], "Document .* has no content.")
self.assertRegex(
messages[doc.pk][0]["message"],
"Document contains no OCR data",
)
def test_orphaned_file(self):
doc = self.make_test_data()
Path(self.dirs.originals_dir, "orphaned").touch()
messages = check_sanity()
self.assertFalse(messages.has_error())
self.assertTrue(messages.has_warning())
self.assertEqual(len(messages), 1)
self.assertRegex(messages[0]["message"], "Orphaned file in media dir")
self.assertTrue(messages.has_warning)
self.assertRegex(
messages._messages[None][0]["message"],
"Orphaned file in media dir",
)
def test_archive_filename_no_checksum(self):
doc = self.make_test_data()
doc.archive_checksum = None
doc.save()
self.assertSanityError("has an archive file, but its checksum is missing.")
self.assertSanityError(doc, "has an archive file, but its checksum is missing.")
def test_archive_checksum_no_filename(self):
doc = self.make_test_data()
doc.archive_filename = None
doc.save()
self.assertSanityError("has an archive file checksum, but no archive filename.")
self.assertSanityError(
doc,
"has an archive file checksum, but no archive filename.",
)

View File

@@ -1,10 +1,7 @@
import os
import shutil
import tempfile
from unittest import mock
from django.conf import settings
from django.test import override_settings
from django.test import TestCase
from django.utils import timezone
from documents import tasks
@@ -15,10 +12,9 @@ from documents.models import Tag
from documents.sanity_checker import SanityCheckFailedException
from documents.sanity_checker import SanityCheckMessages
from documents.tests.utils import DirectoriesMixin
from PIL import Image
class TestTasks(DirectoriesMixin, TestCase):
class TestIndexReindex(DirectoriesMixin, TestCase):
def test_index_reindex(self):
Document.objects.create(
title="test",
@@ -43,6 +39,8 @@ class TestTasks(DirectoriesMixin, TestCase):
tasks.index_optimize()
class TestClassifier(DirectoriesMixin, TestCase):
@mock.patch("documents.tasks.load_classifier")
def test_train_classifier_no_auto_matching(self, load_classifier):
tasks.train_classifier()
@@ -93,442 +91,8 @@ class TestTasks(DirectoriesMixin, TestCase):
mtime3 = os.stat(settings.MODEL_FILE).st_mtime
self.assertNotEqual(mtime2, mtime3)
def test_barcode_reader(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pbm",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader_distorsion(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-distorsion.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader_distorsion2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-distorsion2.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader_unreadable(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-PATCHT-unreadable.png",
)
img = Image.open(test_file)
self.assertEqual(tasks.barcode_reader(img), [])
def test_barcode_reader_qr(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"qr-code-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader_128(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-PATCHT.png",
)
img = Image.open(test_file)
separator_barcode = str(settings.CONSUMER_BARCODE_STRING)
self.assertEqual(tasks.barcode_reader(img), [separator_barcode])
def test_barcode_reader_no_barcode(self):
test_file = os.path.join(os.path.dirname(__file__), "samples", "simple.png")
img = Image.open(test_file)
self.assertEqual(tasks.barcode_reader(img), [])
def test_barcode_reader_custom_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.png",
)
img = Image.open(test_file)
self.assertEqual(tasks.barcode_reader(img), ["CUSTOM BARCODE"])
def test_barcode_reader_custom_qr_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-qr-custom.png",
)
img = Image.open(test_file)
self.assertEqual(tasks.barcode_reader(img), ["CUSTOM BARCODE"])
def test_barcode_reader_custom_128_separator(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.png",
)
img = Image.open(test_file)
self.assertEqual(tasks.barcode_reader(img), ["CUSTOM BARCODE"])
def test_get_mime_type(self):
tiff_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.tiff",
)
pdf_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.pdf",
)
png_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.png",
)
tiff_file_no_extension = os.path.join(settings.SCRATCH_DIR, "testfile1")
pdf_file_no_extension = os.path.join(settings.SCRATCH_DIR, "testfile2")
shutil.copy(tiff_file, tiff_file_no_extension)
shutil.copy(pdf_file, pdf_file_no_extension)
self.assertEqual(tasks.get_file_type(tiff_file), "image/tiff")
self.assertEqual(tasks.get_file_type(pdf_file), "application/pdf")
self.assertEqual(tasks.get_file_type(tiff_file_no_extension), "image/tiff")
self.assertEqual(tasks.get_file_type(pdf_file_no_extension), "application/pdf")
self.assertEqual(tasks.get_file_type(png_file), "image/png")
def test_convert_from_tiff_to_pdf(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.tiff")
shutil.copy(test_file, dst)
target_file = tasks.convert_from_tiff_to_pdf(dst)
file_extension = os.path.splitext(os.path.basename(target_file))[1]
self.assertTrue(os.path.isfile(target_file))
self.assertEqual(file_extension, ".pdf")
def test_convert_error_from_pdf_to_pdf(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.pdf",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.pdf")
shutil.copy(test_file, dst)
self.assertIsNone(tasks.convert_from_tiff_to_pdf(dst))
def test_scan_file_for_separating_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
def test_scan_file_for_separating_barcodes2(self):
test_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf")
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [])
def test_scan_file_for_separating_barcodes3(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [1])
def test_scan_file_for_separating_barcodes4(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"several-patcht-codes.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [2, 5])
def test_scan_file_for_separating_barcodes_upsidedown(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle_reverse.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [1])
def test_scan_file_for_separating_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-qr.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-qr-custom.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
@override_settings(CONSUMER_BARCODE_STRING="CUSTOM BARCODE")
def test_scan_file_for_separating_custom_128_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-128-custom.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [0])
def test_scan_file_for_separating_wrong_qr_barcodes(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"barcode-39-custom.pdf",
)
pages = tasks.scan_file_for_separating_barcodes(test_file)
self.assertEqual(pages, [])
def test_separate_pages(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
pages = tasks.separate_pages(test_file, [1])
self.assertEqual(len(pages), 2)
def test_separate_pages_no_list(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
with self.assertLogs("paperless.tasks", level="WARNING") as cm:
pages = tasks.separate_pages(test_file, [])
self.assertEqual(pages, [])
self.assertEqual(
cm.output,
[
f"WARNING:paperless.tasks:No pages to split on!",
],
)
def test_save_to_dir(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
tasks.save_to_dir(test_file, target_dir=tempdir)
target_file = os.path.join(tempdir, "patch-code-t.pdf")
self.assertTrue(os.path.isfile(target_file))
def test_save_to_dir2(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
nonexistingdir = "/nowhere"
if os.path.isdir(nonexistingdir):
self.fail("non-existing dir exists")
else:
with self.assertLogs("paperless.tasks", level="WARNING") as cm:
tasks.save_to_dir(test_file, target_dir=nonexistingdir)
self.assertEqual(
cm.output,
[
f"WARNING:paperless.tasks:{str(test_file)} or {str(nonexistingdir)} don't exist.",
],
)
def test_save_to_dir3(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
tasks.save_to_dir(test_file, newname="newname.pdf", target_dir=tempdir)
target_file = os.path.join(tempdir, "newname.pdf")
self.assertTrue(os.path.isfile(target_file))
def test_barcode_splitter(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
tempdir = tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)
separators = tasks.scan_file_for_separating_barcodes(test_file)
self.assertTrue(separators)
document_list = tasks.separate_pages(test_file, separators)
self.assertTrue(document_list)
for document in document_list:
tasks.save_to_dir(document, target_dir=tempdir)
target_file1 = os.path.join(tempdir, "patch-code-t-middle_document_0.pdf")
target_file2 = os.path.join(tempdir, "patch-code-t-middle_document_1.pdf")
self.assertTrue(os.path.isfile(target_file1))
self.assertTrue(os.path.isfile(target_file2))
@override_settings(CONSUMER_ENABLE_BARCODES=True)
def test_consume_barcode_file(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.pdf",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.pdf")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
def test_consume_barcode_tiff_file(self):
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.tiff")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
@mock.patch("documents.consumer.Consumer.try_consume_file")
def test_consume_barcode_unsupported_jpg_file(self, m):
"""
This test assumes barcode and TIFF support are enabled and
the user uploads an unsupported image file (e.g. jpg)
The function shouldn't try to scan for separating barcodes
and continue archiving the file as is.
"""
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"simple.jpg",
)
dst = os.path.join(settings.SCRATCH_DIR, "simple.jpg")
shutil.copy(test_file, dst)
with self.assertLogs("paperless.tasks", level="WARNING") as cm:
self.assertIn("Success", tasks.consume_file(dst))
self.assertEqual(
cm.output,
[
"WARNING:paperless.tasks:Unsupported file format for barcode reader: image/jpeg",
],
)
m.assert_called_once()
args, kwargs = m.call_args
self.assertIsNone(kwargs["override_filename"])
self.assertIsNone(kwargs["override_title"])
self.assertIsNone(kwargs["override_correspondent_id"])
self.assertIsNone(kwargs["override_document_type_id"])
self.assertIsNone(kwargs["override_tag_ids"])
@override_settings(
CONSUMER_ENABLE_BARCODES=True,
CONSUMER_BARCODE_TIFF_SUPPORT=True,
)
def test_consume_barcode_supported_no_extension_file(self):
"""
This test assumes barcode and TIFF support are enabled and
the user uploads a supported image file, but without extension
"""
test_file = os.path.join(
os.path.dirname(__file__),
"samples",
"barcodes",
"patch-code-t-middle.tiff",
)
dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle")
shutil.copy(test_file, dst)
self.assertEqual(tasks.consume_file(dst), "File successfully split")
class TestSanityCheck(DirectoriesMixin, TestCase):
@mock.patch("documents.tasks.sanity_checker.check_sanity")
def test_sanity_check_success(self, m):
m.return_value = SanityCheckMessages()
@@ -538,7 +102,7 @@ class TestTasks(DirectoriesMixin, TestCase):
@mock.patch("documents.tasks.sanity_checker.check_sanity")
def test_sanity_check_error(self, m):
messages = SanityCheckMessages()
messages.error("Some error")
messages.error(None, "Some error")
m.return_value = messages
self.assertRaises(SanityCheckFailedException, tasks.sanity_check)
m.assert_called_once()
@@ -546,7 +110,7 @@ class TestTasks(DirectoriesMixin, TestCase):
@mock.patch("documents.tasks.sanity_checker.check_sanity")
def test_sanity_check_warning(self, m):
messages = SanityCheckMessages()
messages.warning("Some warning")
messages.warning(None, "Some warning")
m.return_value = messages
self.assertEqual(
tasks.sanity_check(),
@@ -557,7 +121,7 @@ class TestTasks(DirectoriesMixin, TestCase):
@mock.patch("documents.tasks.sanity_checker.check_sanity")
def test_sanity_check_info(self, m):
messages = SanityCheckMessages()
messages.info("Some info")
messages.info(None, "Some info")
m.return_value = messages
self.assertEqual(
tasks.sanity_check(),
@@ -565,6 +129,8 @@ class TestTasks(DirectoriesMixin, TestCase):
)
m.assert_called_once()
class TestBulkUpdate(DirectoriesMixin, TestCase):
def test_bulk_update_documents(self):
doc1 = Document.objects.create(
title="test",

View File

@@ -1,9 +1,28 @@
import shutil
import tempfile
from django.conf import settings
from django.contrib.auth.models import User
from django.test import override_settings
from django.test import TestCase
class TestViews(TestCase):
@classmethod
def setUpClass(cls):
# Provide a dummy static dir to silence whitenoise warnings
cls.static_dir = tempfile.mkdtemp()
cls.override = override_settings(
STATIC_ROOT=cls.static_dir,
)
cls.override.enable()
@classmethod
def tearDownClass(cls):
shutil.rmtree(cls.static_dir, ignore_errors=True)
cls.override.disable()
def setUp(self) -> None:
self.user = User.objects.create_user("testuser")

View File

@@ -19,6 +19,7 @@ def setup_directories():
dirs.scratch_dir = tempfile.mkdtemp()
dirs.media_dir = tempfile.mkdtemp()
dirs.consumption_dir = tempfile.mkdtemp()
dirs.static_dir = tempfile.mkdtemp()
dirs.index_dir = os.path.join(dirs.data_dir, "index")
dirs.originals_dir = os.path.join(dirs.media_dir, "documents", "originals")
dirs.thumbnail_dir = os.path.join(dirs.media_dir, "documents", "thumbnails")
@@ -42,6 +43,7 @@ def setup_directories():
CONSUMPTION_DIR=dirs.consumption_dir,
LOGGING_DIR=dirs.logging_dir,
INDEX_DIR=dirs.index_dir,
STATIC_ROOT=dirs.static_dir,
MODEL_FILE=os.path.join(dirs.data_dir, "classification_model.pickle"),
MEDIA_LOCK=os.path.join(dirs.media_dir, "media.lock"),
)
@@ -55,6 +57,7 @@ def remove_dirs(dirs):
shutil.rmtree(dirs.data_dir, ignore_errors=True)
shutil.rmtree(dirs.scratch_dir, ignore_errors=True)
shutil.rmtree(dirs.consumption_dir, ignore_errors=True)
shutil.rmtree(dirs.static_dir, ignore_errors=True)
dirs.settings_override.disable()

View File

@@ -46,6 +46,7 @@ from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.viewsets import GenericViewSet
from rest_framework.viewsets import ModelViewSet
from rest_framework.viewsets import ReadOnlyModelViewSet
from rest_framework.viewsets import ViewSet
from .bulk_download import ArchiveOnlyStrategy
@@ -64,10 +65,12 @@ from .matching import match_tags
from .models import Correspondent
from .models import Document
from .models import DocumentType
from .models import PaperlessTask
from .models import SavedView
from .models import StoragePath
from .models import Tag
from .parsers import get_parser_class_for_mime_type
from .serialisers import AcknowledgeTasksViewSerializer
from .serialisers import BulkDownloadSerializer
from .serialisers import BulkEditSerializer
from .serialisers import CorrespondentSerializer
@@ -79,6 +82,7 @@ from .serialisers import SavedViewSerializer
from .serialisers import StoragePathSerializer
from .serialisers import TagSerializer
from .serialisers import TagSerializerVersion1
from .serialisers import TasksViewSerializer
from .serialisers import UiSettingsViewSerializer
logger = logging.getLogger("paperless.api")
@@ -362,7 +366,8 @@ class DocumentViewSet(
handle = doc.thumbnail_file
# TODO: Send ETag information and use that to send new thumbnails
# if available
return HttpResponse(handle, content_type="image/png")
return HttpResponse(handle, content_type="image/webp")
except (FileNotFoundError, Document.DoesNotExist):
raise Http404()
@@ -745,7 +750,7 @@ class RemoteVersionView(GenericAPIView):
class StoragePathViewSet(ModelViewSet):
model = DocumentType
model = StoragePath
queryset = StoragePath.objects.annotate(document_count=Count("documents")).order_by(
Lower("name"),
@@ -795,3 +800,37 @@ class UiSettingsView(GenericAPIView):
"success": True,
},
)
class TasksViewSet(ReadOnlyModelViewSet):
permission_classes = (IsAuthenticated,)
serializer_class = TasksViewSerializer
queryset = (
PaperlessTask.objects.filter(
acknowledged=False,
)
.order_by("created")
.reverse()
)
class AcknowledgeTasksView(GenericAPIView):
permission_classes = (IsAuthenticated,)
serializer_class = AcknowledgeTasksViewSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
tasks = serializer.validated_data.get("tasks")
try:
result = PaperlessTask.objects.filter(id__in=tasks).update(
acknowledged=True,
)
return Response({"result": result})
except Exception:
return HttpResponseBadRequest()

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-02 22:29\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Arabic, Saudi Arabia\n"
"Language: ar_SA\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr ""
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr ""
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr ""
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr ""
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr ""
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr ""
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr ""
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr ""
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr ""
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr ""
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr ""
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr ""
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr ""
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr ""
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr ""
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr ""
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr ""
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr ""
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr ""
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr ""
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr ""
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr ""
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr ""
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr ""
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr ""
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr ""
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr ""
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr ""
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr ""
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr ""
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr ""
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr ""
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr ""
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr ""
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr ""
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr ""
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr ""
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr ""
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr ""
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr ""
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr ""
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr ""
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr ""
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr ""
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr ""
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr ""
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr ""
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr ""
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr ""
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr ""
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr ""
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr ""
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr ""
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr ""
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr ""
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr ""
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr ""
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr ""
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr ""
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr ""
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr ""
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr ""
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr ""
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr ""
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr ""
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr ""
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr ""
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr ""
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr ""
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr ""
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr ""
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr ""
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr ""
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr ""
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr ""
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr ""
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr ""
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr ""
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr ""
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr ""
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr ""
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr ""
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr ""
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr ""
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +444,91 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "الإسبانية"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "البولندية"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "البرتغالية"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr ""
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "الروسية"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "السويدية"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr ""
@@ -516,199 +564,203 @@ msgstr ""
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 ""
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr ""
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr ""
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr ""
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr ""
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr ""
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr ""
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr ""
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr ""
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr ""
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr ""
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr ""
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr ""
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr ""
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr ""
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr ""
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr ""
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr ""
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-31 10:58\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Belarusian\n"
"Language: be_BY\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Дакументы"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Любое слова"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Усе словы"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Дакладнае супадзенне"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Рэгулярны выраз"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Невыразнае слова"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Аўтаматычна"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "назва"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "супадзенне"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "алгарытм супастаўлення"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "без уліку рэгістра"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "карэспандэнт"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "карэспандэнты"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "колер"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "гэта ўваходны тэг"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Пазначыць гэты тэг як тэг папкі \"Уваходныя\": Усе нядаўна спажытыя дакументы будуць пазначаны тэгамі \"Уваходныя\"."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "тэг"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "тэгі"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "тып дакумента"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "тыпы дакументаў"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Незашыфраваны"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Зашыфравана з дапамогай GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "назва"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "змест"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Неапрацаваныя тэкставыя даныя дакумента. Гэта поле ў асноўным выкарыстоўваецца для пошуку."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "тып MIME"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "кантрольная сума"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Кантрольная сума зыходнага дакумента."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "кантрольная сума архіва"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Кантрольная сума архіўнага дакумента."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "створаны"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "мадыфікаваны"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "тып захоўвання"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "дададзена"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "імя файла"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Цяперашняе імя файла ў сховішчы"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "імя файла архіва"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Цяперашняе імя файла архіва ў сховішчы"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "парадкавы нумар архіва"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Пазіцыя гэтага дакумента ў вашым фізічным архіве дакументаў."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "дакумент"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "дакументы"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "адладка"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "інфармацыя"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "папярэджанне"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "памылка"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "крытычны"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "група"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "паведамленне"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "узровень"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "лог"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "логі"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "захаваны выгляд"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "захаваныя выгляды"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "карыстальнік"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "паказаць на панэлі"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "паказаць у бакавой панэлі"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "поле сартавання"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "сартаваць у адваротным парадку"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "назва змяшчае"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "змест змяшчае"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "карэспандэнт"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "тып дакумента"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "ва ўваходных"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "мае тэг"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "мае любы тэг"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "створана перад"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "створана пасля"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "год стварэння"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "месяц стварэння"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "дзень стварэння"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "даданы перад"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "даданы пасля"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "зменены перад"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "зменены пасля"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "не мае тэга"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "не мае ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "назва або змест смяшчае"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "поўнатэкставы запыт"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "больш падобнага"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "мае тэгі ў"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "тып правіла"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "значэнне"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "правіла фільтрацыі"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "правілы фільтрацыі"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Няправільны рэгулярны выраз: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Няправільны колер."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Тып файла %(type)s не падтрымліваецца"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx загружаецца..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Выкананы выхад з Paperless-ngx"
@@ -416,71 +444,91 @@ msgstr "Пароль"
msgid "Sign in"
msgstr "Увайсці"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Англійская (ЗША)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Чэшская"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Дацкая"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Нямецкая"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Англійская (Вялікабрытанія)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Іспанская"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Французская"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Італьянская"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Люксембургская"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Нідэрландская"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Польская"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Партугальская (Бразілія)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Партугальская"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Румынская"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Руская"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Шведская"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Адміністраванне Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Метаданыя"
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 "Аўтаматычна прызначаць метададзеныя дакументам, атрыманым з гэтага правіла. Калі вы не прызначаеце тут тэгі, тыпы ці карэспандэнты, Paperless-ngx усё роўна будуць апрацоўваць усе адпаведныя правілы, якія вы вызначылі."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless-ngx пошта"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "паштовы акаўнт"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "паштовыя акаўнты"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Без шыфравання"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Выкарыстоўваць SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Выкарыстоўваць STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Сервер IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Порт IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Звычайна гэта 143 для незашыфраваных і STARTTLS злучэнняў і 993 для злучэнняў SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Бяспека IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "імя карыстальніка"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "пароль"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "кадзіроўка"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Кадзіроўка для сувязі з паштовым серверам, напрыклад «UTF-8» або «US-ASCII»."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "правіла пошты"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "правілы пошты"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Апрацоўваць толькі ўкладанні."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Апрацоўваць усе файлы, уключаючы 'убудаваныя' укладанні."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Пазначыць як прачытанае, не апрацоўваць прачытаныя лісты"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Пазначыць пошту, не апрацоўваць пазначаныя лісты"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Перамясціць у паказаную папку"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Выдаліць"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Перамясціць у паказаную папку"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Пазначыць як прачытанае, не апрацоўваць прачытаныя лісты"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Пазначыць пошту, не апрацоўваць пазначаныя лісты"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Тэма ў якасці загалоўка"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Выкарыстоўваць імя ўкладзенага файла як загаловак"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Не прызначаць карэспандэнта"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Выкарыстоўваць email адрас"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Выкарыстоўваць імя (або адрас электроннай пошты, калі недаступна)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Выкарыстоўваць карэспандэнта, абранага ніжэй"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "парадак"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "ўліковы запіс"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "каталог"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Падкаталогі павінны быць падзелены кропкамі."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "фільтр па адпраўніку"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "фільтр па тэме"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "фільтр па тэксце паведамлення"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "фільтр па імені ўкладання"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Апрацоўваць толькі дакументы, якія цалкам супадаюць з імем файла (калі яно пазначана). Маскі, напрыклад *.pdf ці *рахунак*, дазволеныя. Без уліку рэгістра."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "максімальны ўзрост"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Указваецца ў днях."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "тып укладання"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Убудаваныя ўкладанні ўключаюць убудаваныя выявы, таму лепш камбінаваць гэты варыянт з фільтрам імёнаў файла."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "дзеянне"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "параметр дзеяння"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Дадатковы параметр для дзеяння, абранага вышэй, гэта значыць, мэтавая папка дзеяння перамяшчэння ў папку. Падпапкі павінны быць падзеленыя кропкамі."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "прызначыць загаловак з"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "прызначыць гэты тэг"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "прызначыць гэты тып дакумента"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "прызначыць карэспандэнта з"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "прызначыць гэтага карэспандэнта"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-02 22:29\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenty"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Jakékoliv slovo"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Všechna slova"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Přesná shoda"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regulární výraz"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Fuzzy slovo"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatický"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "název"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "shoda"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritmus pro shodu"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "je ignorováno"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "korespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "korespondenti"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "barva"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "tag přichozí"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Označí tento tag jako tag pro příchozí: Všechny nově zkonzumované dokumenty budou označeny tagem pro přichozí"
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr ""
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "tagy"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "typ dokumentu"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "typy dokumentu"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Nešifrované"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Šifrované pomocí GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titulek"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "obsah"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Nezpracovaná, pouze textová data dokumentu. Toto pole je používáno především pro vyhledávání."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime typ"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "kontrolní součet"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrolní součet původního dokumentu"
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "kontrolní součet archivu"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrolní součet archivovaného dokumentu."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "vytvořeno"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "upraveno"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "typ úložiště"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "přidáno"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "název souboru"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Aktuální název souboru v úložišti"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "Název archivovaného souboru"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Aktuální název souboru archivu v úložišti"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "sériové číslo archivu"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Pozice dokumentu ve vašem archivu fyzických dokumentů"
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumenty"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr ""
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informace"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "varování"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "chyba"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritická"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "skupina"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "zpráva"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "úroveň"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "záznam"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "záznamy"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "uložený pohled"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "uložené pohledy"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "uživatel"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "zobrazit v dashboardu"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "zobrazit v postranním menu"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "pole na řazení"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "třídit opačně"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "titulek obsahuje"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "obsah obsahuje"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN je"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "korespondent je"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "typ dokumentu je"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "je v příchozích"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "má tag"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "má jakýkoliv tag"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "vytvořeno před"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "vytvořeno po"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "rok vytvoření je"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "měsíc vytvoření je"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "den vytvoření je"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "přidáno před"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "přidáno po"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "upraveno před"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "upraveno po"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "nemá tag"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "Nemá ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "Titulek nebo obsah obsahuje"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "Fulltextový dotaz"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "Podobné"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr ""
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "typ pravidla"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "hodnota"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filtrovací pravidlo"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filtrovací pravidla"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Neplatný regulární výraz: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Neplatná barva."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Typ souboru %(type)s není podporován"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +444,91 @@ msgstr "Heslo"
msgid "Sign in"
msgstr "Přihlásit se"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Angličtina (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Němčina"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Angličtina (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Španělština"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francouzština"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italština"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Holandština"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polština"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugalština (Brazílie)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugalština"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumunština"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ruština"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Švédština"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr ""
@@ -516,199 +564,203 @@ msgstr ""
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 "Automaticky přiřadit metadata dokumentům zkonzumovaných z tohoto pravidla. Pokud zde nepřiřadíte tagy, typy nebo korespondenty, paperless stále zpracuje všechna shodující-se pravidla které jste definovali."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless pošta"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "emailový účet"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "emailové účty"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Žádné šifrování"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Používat SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Používat STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr ""
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr ""
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Toto je většinou 143 pro nešifrovaná připojení/připojení používající STARTTLS a 993 pro SSL připojení."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP bezpečnost"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "uživatelské jméno"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "heslo"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Znaková sada"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Znaková sada používaná při komunikaci s poštovním serverem, jako je 'UTF-8' nebo 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "mailové pravidlo"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "mailová pravidla"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Zpracovávat jen přílohy"
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Zpracovat všechny soubory, včetně vložených příloh"
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Označit jako přečtené, nezpracovávat přečtené emaily"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Označit email, nezpracovávat označené emaily"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Přesunout do specifikované složky"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Odstranit"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Přesunout do specifikované složky"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Označit jako přečtené, nezpracovávat přečtené emaily"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Označit email, nezpracovávat označené emaily"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Použít předmět jako titulek"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Použít název souboru u přílohy jako titulek"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Nepřiřazovat korespondenta"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Použít emailovou adresu"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Použít jméno (nebo emailovou adresu pokud jméno není dostupné)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Použít korespondenta vybraného níže"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "pořadí"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "účet"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "složka"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Podsložky musí být odděleny tečkou."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrovat z"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "název filtru"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "tělo filtru"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "název souboru u přílohy filtru"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Konzumovat jen dokumenty které přesně odpovídají tomuto názvu souboru pokud specifikováno. Zástupné znaky jako *.pdf nebo *invoice* jsou povoleny. Nezáleží na velikosti písmen."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "maximální stáří"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Specifikováno ve dnech."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "typ přílohy"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Vložené přílohy zahrnují vložené obrázky, takže je nejlepší tuto možnost kombinovat s filtrem na název souboru"
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "akce"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parametr akce"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Další parametr pro výše vybranou akci, například cílová složka akce přesunutí do složky. Podsložky musí být odděleny tečkou."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "nastavit titulek z"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "přiřadit tento tag"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "přiřadit tento typ dokumentu"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "přiřadit korespondenta z"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "přiřadit tohoto korespondenta"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-03 16:53\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenter"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Ethvert ord"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Alle ord"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Præcis match"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regulær udtryk"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Tilnærmet ord"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatisk"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "navn"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "match"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "matching algoritme"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "er usensitiv"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "korrespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "korrespondenter"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "farve"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "er indbakkeetiket"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markerer denne etiket som en indbakkeetiket: Alle ny-bearbejdede dokumenter vil blive mærket med indbakkeetiketter."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etiket"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiketter"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "dokumenttype"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "dokumenttyper"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Ukrypteret"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Krypteret med GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titel"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "indhold"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Dokumentets rå tekstdata. Dette felt bruges primært til søgning."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "MIME-type"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "kontrolsum"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrolsummen af det oprindelige dokument."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arkiv kontrolsum"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrolsummen af det arkiverede dokument."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "oprettet"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "ændret"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "lagringstype"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "tilføjet"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "filnavn"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nuværende filnavn lagret"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "arkiv filnavn"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nuværende arkivfilnavn lagret"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "arkiv serienummer"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Placeringen af dette dokument i dit fysiske dokumentarkiv."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumenter"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "fejlfinding"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "information"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "advarsel"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "fejl"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritisk"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "gruppe"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "besked"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "niveau"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "log"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "logninger"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "gemt visning"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "gemte visninger"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "bruger"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "vis på betjeningspanel"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "vis i sidepanelet"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "sortér felt"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "sortér omvendt"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "titel indeholder"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "indhold indeholder"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN er"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "korrespondent er"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "dokumenttype er"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "er i indbakke"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "har etiket"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "har en etiket"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "oprettet før"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "oprettet efter"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "oprettet år er"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "oprettet måned er"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "oprettet dag er"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "tilføjet før"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "tilføjet efter"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "ændret før"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "ændret efter"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "har ikke nogen etiket"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "har ikke ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "titel eller indhold indeholder"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "fuldtekst forespørgsel"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "mere som dette"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "har etiketter i"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "regeltype"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "værdi"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filtreringsregel"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filtreringsregler"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ugyldigt regulært udtryk: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Ugyldig farve."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Filtype %(type)s understøttes ikke"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx indlæses..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx logget ud"
@@ -416,71 +444,91 @@ msgstr "Adgangskode"
msgid "Sign in"
msgstr "Log ind"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engelsk (USA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tjekkisk"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Dansk"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Tysk"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engelsk (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spansk"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Fransk"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiensk"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburgsk"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Hollandsk"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polsk"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugisisk (Brasilien)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugisisk"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Romansk"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russisk"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Svensk"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx administration"
@@ -516,199 +564,203 @@ msgstr "Metadata"
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 "Tildel automatisk metadata til dokumenter, der bearbejdes fra denne regel. Hvis du ikke tildeler etiketter, typer eller korrespondenter her, vil paperless stadig behandle alle matchende regler, som du har defineret."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless email"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "email-konto"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "email-konti"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Ingen kryptering"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Benyt SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Benyt STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP port"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Dette er normalt 143 for ukrypterede og STARTTLS-forbindelser, og 993 for SSL-forbindelser."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP sikkerhed"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "brugernavn"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "adgangskode"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "tegnsæt"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Tegnsættet der skal bruges, når du kommunikerer med e- mail- serveren, såsom 'UTF- 8' eller 'US- ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "email regel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "email regler"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Behandl kun vedhæftede filer."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Behandl alle filer, også indlejrede vedhæftede filer."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Markér som læst, behandl ikke læste emails"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Flag emailen, undlad at behandle flagede emails"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Flyt til den angivne mappe"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Slet"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Flyt til den angivne mappe"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Markér som læst, behandl ikke læste emails"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Flag emailen, undlad at behandle flagede emails"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Brug emnet som titel"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Benyt vedhæftningsfilnavn som titel"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Tildel ikke en korrespondent"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Brug emailadresse"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Benyt navn (eller emailadresse hvis den ikke er tilgængelig)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Benyt korrespondent valgt nedenfor"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "rækkefølge"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "konto"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "mappe"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Undermapper skal adskilles med prikker."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrér fra"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrér emne"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrér krop"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrér for vedhæftningens filnavn"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Bearbejd kun dokumenter, der helt matcher dette filnavn, hvis angivet. Wildcards såsom *.pdf eller *faktura * er tilladt."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "maksimal alder"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Specificeret i dage."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "vedhæftningstype"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Indlejrede vedhæftede filer er også indlejrede billeder, så det er bedst at kombinere denne indstilling med et filnavn."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "handling"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parameter for handling"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Yderligere parameter for handlingen der er valgt ovenfor, dvs. destinationsmappen for \"flyt til mappe\"-handlingen. Undermapper skal adskilles af prikker."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "tildel titel fra"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "tildel denne etiket"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "tildel denne dokumenttype"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "tildel korrespondent fra"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "tildel denne korrespondent"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-11 13:56\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumente"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Irgendein Wort"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Alle Wörter"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Exakte Übereinstimmung"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regulärer Ausdruck"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Ungenaues Wort"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatisch"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "Name"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "Zuweisungsmuster"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "Zuweisungsalgorithmus"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "Groß-/Kleinschreibung irrelevant"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "Korrespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "Korrespondenten"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "Farbe"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "Posteingangs-Tag"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markiert das Tag als Posteingangs-Tag. Neue Dokumente werden immer mit diesem Tag versehen."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "Tag"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "Tags"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "Dokumenttyp"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "Dokumenttypen"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "Pfad"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "Speicherpfad"
#: documents/models.py:97
msgid "storage paths"
msgstr "Speicherpfade"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Nicht verschlüsselt"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Durch GNU Privacy Guard verschlüsselt"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "Titel"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "Inhalt"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Der Inhalt des Dokuments in Textform. Dieses Feld wird primär für die Suche verwendet."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "MIME-Typ"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "Prüfsumme"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Die Prüfsumme des originalen Dokuments."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "Archiv-Prüfsumme"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Die Prüfsumme des archivierten Dokuments."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "Erstellt"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "Geändert"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "Speichertyp"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "Hinzugefügt"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "Dateiname"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Aktueller Dateiname im Datenspeicher"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "Archiv-Dateiname"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Aktueller Dateiname im Archiv"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "Archiv-Seriennummer"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Die Position dieses Dokuments in Ihrem physischen Dokumentenarchiv."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "Dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "Dokumente"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "Debug"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "Information"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "Warnung"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "Fehler"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "Kritisch"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "Gruppe"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "Nachricht"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "Level"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "Protokoll"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "Protokoll"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "Gespeicherte Ansicht"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "Gespeicherte Ansichten"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "Benutzer"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "Auf Startseite zeigen"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "In Seitenleiste zeigen"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "Sortierfeld"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "Umgekehrte Sortierung"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "Titel enthält"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "Inhalt enthält"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN ist"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "Korrespondent ist"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "Dokumenttyp ist"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "Ist im Posteingang"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "Hat Tag"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "Hat irgendein Tag"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "Ausgestellt vor"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "Ausgestellt nach"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "Ausgestellt im Jahr"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "Ausgestellt im Monat"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "Ausgestellt am Tag"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "Hinzugefügt vor"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "Hinzugefügt nach"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "Geändert vor"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "Geändert nach"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "Hat nicht folgendes Tag"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "Dokument hat keine ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "Titel oder Inhalt enthält"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "Volltextsuche"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "Ähnliche Dokumente"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "hat Tags in"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "Regeltyp"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "Wert"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "Filterregel"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "Filterregeln"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ungültiger regulärer Ausdruck: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Ungültige Farbe."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Dateityp %(type)s nicht unterstützt"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Ungültige Variable entdeckt."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx wird geladen..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Du bist noch hier?! Hmm, da muss wohl etwas schief gelaufen sein."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Hier ist ein Link zur Dokumentation."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx abgemeldet"
@@ -416,71 +444,91 @@ msgstr "Kennwort"
msgid "Sign in"
msgstr "Anmelden"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Englisch (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Belarussisch"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tschechisch"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Dänisch"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Englisch (UK)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spanisch"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Französisch"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italienisch"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburgisch"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Niederländisch"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polnisch"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugiesisch (Brasilien)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugiesisch"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumänisch"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Slowenisch"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbisch"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Schwedisch"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Türkisch"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Vereinfachtes Chinesisch"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx Administration"
@@ -516,199 +564,203 @@ msgstr "Metadaten"
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 "Folgende Metadaten werden Dokumenten dieser Regel automatisch zugewiesen. Wenn Sie hier nichts auswählen wird Paperless weiterhin alle Zuweisungsalgorithmen ausführen und Metadaten auf Basis des Dokumentinhalts zuweisen."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless E-Mail"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "E-Mail-Konto"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "E-Mail-Konten"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Keine Verschlüsselung"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "SSL benutzen"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "STARTTLS benutzen"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP-Server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP-Port"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Dies ist in der Regel 143 für unverschlüsselte und STARTTLS-Verbindungen und 993 für SSL-Verbindungen."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP-Sicherheit"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "Benutzername"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "Kennwort"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Zeichensatz"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Der Zeichensatz, der bei der Kommunikation mit dem Mailserver verwendet werden soll, wie z.B. 'UTF-8' oder 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "E-Mail-Regel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "E-Mail-Regeln"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Nur Anhänge verarbeiten."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Alle Dateien verarbeiten, auch 'inline'-Anhänge."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Als gelesen markieren, gelesene E-Mails nicht verarbeiten"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichtig markieren, markierte E-Mails nicht verarbeiten"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "In angegebenen Ordner verschieben"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Löschen"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "In angegebenen Ordner verschieben"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Als gelesen markieren, gelesene E-Mails nicht verarbeiten"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichtig markieren, markierte E-Mails nicht verarbeiten"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Betreff als Titel verwenden"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Dateiname des Anhangs als Titel verwenden"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Keinen Korrespondenten zuweisen"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "E-Mail-Adresse benutzen"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Absendername benutzen (oder E-Mail-Adressen, wenn nicht verfügbar)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Nachfolgend ausgewählten Korrespondent verwenden"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "Reihenfolge"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "Konto"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "Ordner"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Unterordner müssen durch Punkte getrennt werden."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Unterordner müssen durch ein Trennzeichen getrennt sein. Oft ist dies ein Punkt (\".\") oder ein Schrägstrich (\"/\"); dies variiert bei unterschiedlichen Mail-Servern."
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "Absender filtern"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "Betreff filtern"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "Nachrichteninhalt filtern"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "Anhang-Dateiname filtern"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Wenn angegeben werden nur Dateien verarbeitet, die diesem Dateinamen exakt entsprechen. Platzhalter wie *.pdf oder *rechnung* sind erlaubt. Groß- und Kleinschreibung ist irrelevant."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "Maximales Alter"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Angegeben in Tagen."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "Dateianhangstyp"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "'Inline'-Anhänge schließen eingebettete Bilder mit ein, daher sollte diese Einstellung mit einem Dateinamenfilter kombiniert werden."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "Aktion"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "Parameter für Aktion"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Zusätzlicher Parameter für die oben ausgewählte Aktion, zum Beispiel der Zielordner für die Aktion \"In angegebenen Ordner verschieben\". Unterordner müssen durch Punkte getrennt werden."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "Titel zuweisen von"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "Dieses Tag zuweisen"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "Diesen Dokumenttyp zuweisen"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "Korrespondent zuweisen von"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "Diesen Korrespondent zuweisen"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-02 22:29\n"
"POT-Creation-Date: 2022-05-19 15:24-0700\n"
"PO-Revision-Date: 2022-05-19 22:26\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -17,369 +17,393 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Έγγραφα"
#: documents/models.py:32
#: documents/models.py:27
msgid "Any word"
msgstr "Οποιαδήποτε λέξη"
#: documents/models.py:33
#: documents/models.py:28
msgid "All words"
msgstr "Όλες οι λέξεις"
#: documents/models.py:34
#: documents/models.py:29
msgid "Exact match"
msgstr "Ακριβής ταύτιση"
#: documents/models.py:35
#: documents/models.py:30
msgid "Regular expression"
msgstr ""
#: documents/models.py:36
#: documents/models.py:31
msgid "Fuzzy word"
msgstr ""
#: documents/models.py:37
#: documents/models.py:32
msgid "Automatic"
msgstr "Αυτόματο"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:35 documents/models.py:343 paperless_mail/models.py:16
#: paperless_mail/models.py:79
msgid "name"
msgstr "όνομα"
#: documents/models.py:42
#: documents/models.py:37
msgid "match"
msgstr "αντιστοίχιση"
#: documents/models.py:45
#: documents/models.py:40
msgid "matching algorithm"
msgstr "αλγόριθμος αντιστοίχισης"
#: documents/models.py:48
#: documents/models.py:45
msgid "is insensitive"
msgstr "χωρίς διάκριση πεζών - κεφαλαίων"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:58 documents/models.py:113
msgid "correspondent"
msgstr "ανταποκριτής"
#: documents/models.py:62
#: documents/models.py:59
msgid "correspondents"
msgstr ""
#: documents/models.py:67
#: documents/models.py:64
msgid "color"
msgstr ""
#: documents/models.py:70
#: documents/models.py:67
msgid "is inbox tag"
msgstr ""
#: documents/models.py:73
#: documents/models.py:70
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr ""
#: documents/models.py:79
#: documents/models.py:76
msgid "tag"
msgstr ""
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:77 documents/models.py:151
msgid "tags"
msgstr ""
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:82 documents/models.py:133
msgid "document type"
msgstr ""
#: documents/models.py:86
#: documents/models.py:83
msgid "document types"
msgstr ""
#: documents/models.py:94
msgid "Unencrypted"
#: documents/models.py:88
msgid "path"
msgstr ""
#: documents/models.py:94 documents/models.py:122
msgid "storage path"
msgstr ""
#: documents/models.py:95
msgid "storage paths"
msgstr ""
#: documents/models.py:103
msgid "Unencrypted"
msgstr ""
#: documents/models.py:104
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
#: documents/models.py:107
#: documents/models.py:125
msgid "title"
msgstr ""
#: documents/models.py:119
#: documents/models.py:137
msgid "content"
msgstr ""
#: documents/models.py:122
#: documents/models.py:140
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr ""
#: documents/models.py:127
#: documents/models.py:145
msgid "mime type"
msgstr ""
#: documents/models.py:134
#: documents/models.py:155
msgid "checksum"
msgstr ""
#: documents/models.py:138
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr ""
#: documents/models.py:142
#: documents/models.py:163
msgid "archive checksum"
msgstr ""
#: documents/models.py:147
#: documents/models.py:168
msgid "The checksum of the archived document."
msgstr ""
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:171 documents/models.py:324
msgid "created"
msgstr ""
#: documents/models.py:153
#: documents/models.py:174
msgid "modified"
msgstr ""
#: documents/models.py:157
#: documents/models.py:181
msgid "storage type"
msgstr ""
#: documents/models.py:165
#: documents/models.py:189
msgid "added"
msgstr ""
#: documents/models.py:169
#: documents/models.py:196
msgid "filename"
msgstr ""
#: documents/models.py:175
#: documents/models.py:202
msgid "Current filename in storage"
msgstr ""
#: documents/models.py:179
#: documents/models.py:206
msgid "archive filename"
msgstr ""
#: documents/models.py:185
#: documents/models.py:212
msgid "Current archive filename in storage"
msgstr ""
#: documents/models.py:189
#: documents/models.py:216
msgid "archive serial number"
msgstr ""
#: documents/models.py:195
#: documents/models.py:222
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:201
#: documents/models.py:228
msgid "document"
msgstr ""
#: documents/models.py:202
#: documents/models.py:229
msgid "documents"
msgstr ""
#: documents/models.py:280
#: documents/models.py:307
msgid "debug"
msgstr ""
#: documents/models.py:281
#: documents/models.py:308
msgid "information"
msgstr ""
#: documents/models.py:282
#: documents/models.py:309
msgid "warning"
msgstr ""
#: documents/models.py:283
#: documents/models.py:310
msgid "error"
msgstr ""
#: documents/models.py:284
#: documents/models.py:311
msgid "critical"
msgstr ""
#: documents/models.py:287
#: documents/models.py:314
msgid "group"
msgstr ""
#: documents/models.py:289
#: documents/models.py:316
msgid "message"
msgstr ""
#: documents/models.py:292
#: documents/models.py:319
msgid "level"
msgstr ""
#: documents/models.py:299
#: documents/models.py:328
msgid "log"
msgstr ""
#: documents/models.py:300
#: documents/models.py:329
msgid "logs"
msgstr ""
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:339 documents/models.py:392
msgid "saved view"
msgstr ""
#: documents/models.py:311
#: documents/models.py:340
msgid "saved views"
msgstr ""
#: documents/models.py:313
#: documents/models.py:342
msgid "user"
msgstr ""
#: documents/models.py:317
#: documents/models.py:346
msgid "show on dashboard"
msgstr ""
#: documents/models.py:320
#: documents/models.py:349
msgid "show in sidebar"
msgstr ""
#: documents/models.py:324
#: documents/models.py:353
msgid "sort field"
msgstr ""
#: documents/models.py:326
#: documents/models.py:358
msgid "sort reverse"
msgstr ""
#: documents/models.py:331
#: documents/models.py:363
msgid "title contains"
msgstr ""
#: documents/models.py:332
#: documents/models.py:364
msgid "content contains"
msgstr ""
#: documents/models.py:333
#: documents/models.py:365
msgid "ASN is"
msgstr ""
#: documents/models.py:334
#: documents/models.py:366
msgid "correspondent is"
msgstr ""
#: documents/models.py:335
#: documents/models.py:367
msgid "document type is"
msgstr ""
#: documents/models.py:336
#: documents/models.py:368
msgid "is in inbox"
msgstr ""
#: documents/models.py:337
#: documents/models.py:369
msgid "has tag"
msgstr ""
#: documents/models.py:338
#: documents/models.py:370
msgid "has any tag"
msgstr ""
#: documents/models.py:339
#: documents/models.py:371
msgid "created before"
msgstr ""
#: documents/models.py:340
#: documents/models.py:372
msgid "created after"
msgstr ""
#: documents/models.py:341
#: documents/models.py:373
msgid "created year is"
msgstr ""
#: documents/models.py:342
#: documents/models.py:374
msgid "created month is"
msgstr ""
#: documents/models.py:343
#: documents/models.py:375
msgid "created day is"
msgstr ""
#: documents/models.py:344
#: documents/models.py:376
msgid "added before"
msgstr ""
#: documents/models.py:345
#: documents/models.py:377
msgid "added after"
msgstr ""
#: documents/models.py:346
#: documents/models.py:378
msgid "modified before"
msgstr ""
#: documents/models.py:347
#: documents/models.py:379
msgid "modified after"
msgstr ""
#: documents/models.py:348
#: documents/models.py:380
msgid "does not have tag"
msgstr ""
#: documents/models.py:349
#: documents/models.py:381
msgid "does not have ASN"
msgstr ""
#: documents/models.py:350
#: documents/models.py:382
msgid "title or content contains"
msgstr ""
#: documents/models.py:351
#: documents/models.py:383
msgid "fulltext query"
msgstr ""
#: documents/models.py:352
#: documents/models.py:384
msgid "more like this"
msgstr ""
#: documents/models.py:353
#: documents/models.py:385
msgid "has tags in"
msgstr ""
#: documents/models.py:363
#: documents/models.py:395
msgid "rule type"
msgstr ""
#: documents/models.py:365
#: documents/models.py:397
msgid "value"
msgstr ""
#: documents/models.py:368
#: documents/models.py:400
msgid "filter rule"
msgstr ""
#: documents/models.py:369
#: documents/models.py:401
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:64
#: documents/serialisers.py:63
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:185
#: documents/serialisers.py:184
msgid "Invalid color."
msgstr ""
#: documents/serialisers.py:459
#: documents/serialisers.py:491
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:22
#: documents/serialisers.py:574
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +440,91 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:338
msgid "English (US)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:339
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:340
msgid "Czech"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:341
msgid "Danish"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:342
msgid "German"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:343
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:344
msgid "Spanish"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:345
msgid "French"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:346
msgid "Italian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:347
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:348
msgid "Dutch"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:349
msgid "Polish"
msgstr ""
#: paperless/settings.py:310
#: paperless/settings.py:350
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:311
#: paperless/settings.py:351
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:312
#: paperless/settings.py:352
msgid "Romanian"
msgstr ""
#: paperless/settings.py:313
#: paperless/settings.py:353
msgid "Russian"
msgstr ""
#: paperless/settings.py:314
#: paperless/settings.py:354
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:355
msgid "Serbian"
msgstr ""
#: paperless/settings.py:356
msgid "Swedish"
msgstr ""
#: paperless/urls.py:139
#: paperless/settings.py:357
msgid "Turkish"
msgstr ""
#: paperless/settings.py:358
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:153
msgid "Paperless-ngx administration"
msgstr ""
@@ -516,199 +560,199 @@ msgstr ""
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 ""
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr ""
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr ""
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr ""
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr ""
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr ""
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr ""
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr ""
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr ""
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr ""
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr ""
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr ""
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr ""
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr ""
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:70
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:92
#: paperless_mail/models.py:71
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:74
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:102
#: paperless_mail/models.py:75
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:76
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:104
#: paperless_mail/models.py:77
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:109
#: paperless_mail/models.py:81
msgid "order"
msgstr ""
#: paperless_mail/models.py:115
#: paperless_mail/models.py:87
msgid "account"
msgstr ""
#: paperless_mail/models.py:119
#: paperless_mail/models.py:91
msgid "folder"
msgstr ""
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
#: paperless_mail/models.py:95
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:101
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:129
#: paperless_mail/models.py:107
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:132
#: paperless_mail/models.py:113
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:136
#: paperless_mail/models.py:120
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:141
#: paperless_mail/models.py:125
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:132
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:134
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:152
#: paperless_mail/models.py:138
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:156
#: paperless_mail/models.py:142
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:162
#: paperless_mail/models.py:148
msgid "action"
msgstr ""
#: paperless_mail/models.py:168
#: paperless_mail/models.py:154
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:159
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:181
#: paperless_mail/models.py:167
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:189
#: paperless_mail/models.py:175
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:197
#: paperless_mail/models.py:183
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:201
#: paperless_mail/models.py:187
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:211
#: paperless_mail/models.py:197
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-05-19 15:24-0700\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-02-17 04:17\n"
"Last-Translator: \n"
"Language-Team: English\n"
@@ -21,378 +21,382 @@ msgstr ""
msgid "Documents"
msgstr ""
#: documents/models.py:27
#: documents/models.py:29
msgid "Any word"
msgstr ""
#: documents/models.py:28
#: documents/models.py:30
msgid "All words"
msgstr ""
#: documents/models.py:29
#: documents/models.py:31
msgid "Exact match"
msgstr ""
#: documents/models.py:30
#: documents/models.py:32
msgid "Regular expression"
msgstr ""
#: documents/models.py:31
#: documents/models.py:33
msgid "Fuzzy word"
msgstr ""
#: documents/models.py:32
#: documents/models.py:34
msgid "Automatic"
msgstr ""
#: documents/models.py:35 documents/models.py:343 paperless_mail/models.py:16
#: paperless_mail/models.py:79
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr ""
#: documents/models.py:37
#: documents/models.py:39
msgid "match"
msgstr ""
#: documents/models.py:40
#: documents/models.py:42
msgid "matching algorithm"
msgstr ""
#: documents/models.py:45
#: documents/models.py:47
msgid "is insensitive"
msgstr ""
#: documents/models.py:58 documents/models.py:113
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr ""
#: documents/models.py:59
#: documents/models.py:61
msgid "correspondents"
msgstr ""
#: documents/models.py:64
#: documents/models.py:66
msgid "color"
msgstr ""
#: documents/models.py:67
#: documents/models.py:69
msgid "is inbox tag"
msgstr ""
#: documents/models.py:70
#: documents/models.py:72
msgid ""
"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
"with inbox tags."
msgstr ""
#: documents/models.py:76
#: documents/models.py:78
msgid "tag"
msgstr ""
#: documents/models.py:77 documents/models.py:151
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr ""
#: documents/models.py:82 documents/models.py:133
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr ""
#: documents/models.py:83
#: documents/models.py:85
msgid "document types"
msgstr ""
#: documents/models.py:88
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:94 documents/models.py:122
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:95
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:103
#: documents/models.py:105
msgid "Unencrypted"
msgstr ""
#: documents/models.py:104
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
#: documents/models.py:125
#: documents/models.py:127
msgid "title"
msgstr ""
#: documents/models.py:137
#: documents/models.py:139
msgid "content"
msgstr ""
#: documents/models.py:140
#: documents/models.py:142
msgid ""
"The raw, text-only data of the document. This field is primarily used for "
"searching."
msgstr ""
#: documents/models.py:145
#: documents/models.py:147
msgid "mime type"
msgstr ""
#: documents/models.py:155
#: documents/models.py:157
msgid "checksum"
msgstr ""
#: documents/models.py:159
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr ""
#: documents/models.py:163
#: documents/models.py:165
msgid "archive checksum"
msgstr ""
#: documents/models.py:168
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr ""
#: documents/models.py:171 documents/models.py:324
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr ""
#: documents/models.py:174
#: documents/models.py:176
msgid "modified"
msgstr ""
#: documents/models.py:181
#: documents/models.py:183
msgid "storage type"
msgstr ""
#: documents/models.py:189
#: documents/models.py:191
msgid "added"
msgstr ""
#: documents/models.py:196
#: documents/models.py:198
msgid "filename"
msgstr ""
#: documents/models.py:202
#: documents/models.py:204
msgid "Current filename in storage"
msgstr ""
#: documents/models.py:206
#: documents/models.py:208
msgid "archive filename"
msgstr ""
#: documents/models.py:212
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr ""
#: documents/models.py:216
#: documents/models.py:218
msgid "archive serial number"
msgstr ""
#: documents/models.py:222
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:228
#: documents/models.py:230
msgid "document"
msgstr ""
#: documents/models.py:229
#: documents/models.py:231
msgid "documents"
msgstr ""
#: documents/models.py:307
#: documents/models.py:318
msgid "debug"
msgstr ""
#: documents/models.py:308
#: documents/models.py:319
msgid "information"
msgstr ""
#: documents/models.py:309
#: documents/models.py:320
msgid "warning"
msgstr ""
#: documents/models.py:310
#: documents/models.py:321
msgid "error"
msgstr ""
#: documents/models.py:311
#: documents/models.py:322
msgid "critical"
msgstr ""
#: documents/models.py:314
#: documents/models.py:325
msgid "group"
msgstr ""
#: documents/models.py:316
#: documents/models.py:327
msgid "message"
msgstr ""
#: documents/models.py:319
#: documents/models.py:330
msgid "level"
msgstr ""
#: documents/models.py:328
#: documents/models.py:339
msgid "log"
msgstr ""
#: documents/models.py:329
#: documents/models.py:340
msgid "logs"
msgstr ""
#: documents/models.py:339 documents/models.py:392
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr ""
#: documents/models.py:340
#: documents/models.py:351
msgid "saved views"
msgstr ""
#: documents/models.py:342
#: documents/models.py:353
msgid "user"
msgstr ""
#: documents/models.py:346
#: documents/models.py:357
msgid "show on dashboard"
msgstr ""
#: documents/models.py:349
#: documents/models.py:360
msgid "show in sidebar"
msgstr ""
#: documents/models.py:353
#: documents/models.py:364
msgid "sort field"
msgstr ""
#: documents/models.py:358
#: documents/models.py:369
msgid "sort reverse"
msgstr ""
#: documents/models.py:363
#: documents/models.py:374
msgid "title contains"
msgstr ""
#: documents/models.py:364
#: documents/models.py:375
msgid "content contains"
msgstr ""
#: documents/models.py:365
#: documents/models.py:376
msgid "ASN is"
msgstr ""
#: documents/models.py:366
#: documents/models.py:377
msgid "correspondent is"
msgstr ""
#: documents/models.py:367
#: documents/models.py:378
msgid "document type is"
msgstr ""
#: documents/models.py:368
#: documents/models.py:379
msgid "is in inbox"
msgstr ""
#: documents/models.py:369
#: documents/models.py:380
msgid "has tag"
msgstr ""
#: documents/models.py:370
#: documents/models.py:381
msgid "has any tag"
msgstr ""
#: documents/models.py:371
#: documents/models.py:382
msgid "created before"
msgstr ""
#: documents/models.py:372
#: documents/models.py:383
msgid "created after"
msgstr ""
#: documents/models.py:373
#: documents/models.py:384
msgid "created year is"
msgstr ""
#: documents/models.py:374
#: documents/models.py:385
msgid "created month is"
msgstr ""
#: documents/models.py:375
#: documents/models.py:386
msgid "created day is"
msgstr ""
#: documents/models.py:376
#: documents/models.py:387
msgid "added before"
msgstr ""
#: documents/models.py:377
#: documents/models.py:388
msgid "added after"
msgstr ""
#: documents/models.py:378
#: documents/models.py:389
msgid "modified before"
msgstr ""
#: documents/models.py:379
#: documents/models.py:390
msgid "modified after"
msgstr ""
#: documents/models.py:380
#: documents/models.py:391
msgid "does not have tag"
msgstr ""
#: documents/models.py:381
#: documents/models.py:392
msgid "does not have ASN"
msgstr ""
#: documents/models.py:382
#: documents/models.py:393
msgid "title or content contains"
msgstr ""
#: documents/models.py:383
#: documents/models.py:394
msgid "fulltext query"
msgstr ""
#: documents/models.py:384
#: documents/models.py:395
msgid "more like this"
msgstr ""
#: documents/models.py:385
#: documents/models.py:396
msgid "has tags in"
msgstr ""
#: documents/models.py:395
#: documents/models.py:406
msgid "rule type"
msgstr ""
#: documents/models.py:397
#: documents/models.py:408
msgid "value"
msgstr ""
#: documents/models.py:400
#: documents/models.py:411
msgid "filter rule"
msgstr ""
#: documents/models.py:401
#: documents/models.py:412
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:63
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:184
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr ""
#: documents/serialisers.py:491
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/serialisers.py:574
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
@@ -444,91 +448,91 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:338
#: paperless/settings.py:339
msgid "English (US)"
msgstr ""
#: paperless/settings.py:339
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:340
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
#: paperless/settings.py:341
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
#: paperless/settings.py:342
#: paperless/settings.py:343
msgid "German"
msgstr ""
#: paperless/settings.py:343
#: paperless/settings.py:344
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:344
#: paperless/settings.py:345
msgid "Spanish"
msgstr ""
#: paperless/settings.py:345
#: paperless/settings.py:346
msgid "French"
msgstr ""
#: paperless/settings.py:346
#: paperless/settings.py:347
msgid "Italian"
msgstr ""
#: paperless/settings.py:347
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:348
#: paperless/settings.py:349
msgid "Dutch"
msgstr ""
#: paperless/settings.py:349
#: paperless/settings.py:350
msgid "Polish"
msgstr ""
#: paperless/settings.py:350
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:351
#: paperless/settings.py:352
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:352
#: paperless/settings.py:353
msgid "Romanian"
msgstr ""
#: paperless/settings.py:353
#: paperless/settings.py:354
msgid "Russian"
msgstr ""
#: paperless/settings.py:354
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:355
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:356
#: paperless/settings.py:357
msgid "Swedish"
msgstr ""
#: paperless/settings.py:357
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:358
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:153
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr ""
@@ -663,118 +667,122 @@ msgstr ""
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:70
msgid "Use subject as title"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:74
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:75
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:76
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:77
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:81
#: paperless_mail/models.py:82
msgid "order"
msgstr ""
#: paperless_mail/models.py:87
#: paperless_mail/models.py:88
msgid "account"
msgstr ""
#: paperless_mail/models.py:91
#: paperless_mail/models.py:92
msgid "folder"
msgstr ""
#: paperless_mail/models.py:95
#: paperless_mail/models.py:96
msgid ""
"Subfolders must be separated by a delimiter, often a dot ('.') or slash "
"('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:102
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:107
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:113
#: paperless_mail/models.py:114
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:120
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:125
#: paperless_mail/models.py:126
msgid ""
"Only consume documents which entirely match this filename if specified. "
"Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:132
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:134
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:138
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:142
#: paperless_mail/models.py:143
msgid ""
"Inline attachments include embedded images, so it's best to combine this "
"option with a filename filter."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:149
msgid "action"
msgstr ""
#: paperless_mail/models.py:154
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:159
#: paperless_mail/models.py:160
msgid ""
"Additional parameter for the action selected above, i.e., the target folder "
"of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:167
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:175
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:183
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:187
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:197
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-26 21:49\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documentos"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Cualquier palabra"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Todas las palabras"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Coincidencia exacta"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Expresión regular"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Palabra borrosa"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automático"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nombre"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "coincidencia"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "Algoritmo de coincidencia"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "es insensible"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "interlocutor"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "interlocutores"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "color"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "es etiqueta de bandeja"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
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:79
#: documents/models.py:78
msgid "tag"
msgstr "etiqueta"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiquetas"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tipo de documento"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipos de documento"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "ruta"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "ruta de almacenamiento"
#: documents/models.py:97
msgid "storage paths"
msgstr "rutas de almacenamiento"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Sin cifrar"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Cifrado con GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "título"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "contenido"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Los datos de texto en bruto del documento. Este campo se utiliza principalmente para las búsquedas."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "tipo MIME"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "Cadena de verificación"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "La cadena de verificación del documento original."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "cadena de comprobación del archivo"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "La cadena de verificación del documento archivado."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "creado"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modificado"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tipo de almacenamiento"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "añadido"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nombre del archivo"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nombre de archivo actual en disco"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nombre de archivo"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nombre de archivo actual en disco"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "número de serie del archivo"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Posición de este documento en tu archivo físico de documentos."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "documento"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documentos"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "depuración"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "información"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "alerta"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "error"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "crítico"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupo"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "mensaje"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nivel"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "log"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "logs"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "vista guardada"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "vistas guardadas"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "usuario"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "mostrar en el panel de control"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "mostrar en barra lateral"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "campo de ordenación"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "ordenar al revés"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "el título contiene"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "el contenido contiene"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN es"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "interlocutor es"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "el tipo de documento es"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "está en la bandeja de entrada"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "tiene la etiqueta"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "tiene cualquier etiqueta"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "creado antes"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "creado después"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "el año de creación es"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "el mes de creación es"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "creado el día"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "agregado antes de"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "agregado después de"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modificado después de"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modificado antes de"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "no tiene la etiqueta"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "no tiene ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "el título o cuerpo contiene"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "consulta de texto completo"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "más contenido similar"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "tiene etiquetas en"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tipo de regla"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valor"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "regla de filtrado"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "reglas de filtrado"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Expresión irregular inválida: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Color inválido."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Tipo de fichero %(type)s no suportado"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Variable inválida."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx está cargando..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "¡¿Todavía estás aquí?! Hmm, algo podría estar mal."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Aquí hay un enlace a la documentación."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx cerró sesión"
@@ -416,71 +444,91 @@ msgstr "Contraseña"
msgid "Sign in"
msgstr "Iniciar sesión"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Inglés (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Bielorruso"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Checo"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danés"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Alemán"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Inglés (Gran Bretaña)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Español"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francés"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburgués"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Alemán"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polaco"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugués (Brasil)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugués"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumano"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ruso"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Esloveno"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbio"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Sueco"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Turco"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Chino simplificado"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administración de Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Metadatos"
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 "Asignar metadatos a documentos consumidos por esta regla automáticamente. Si no asigna etiquetas, tipos o interlocutores aquí, paperless procesará igualmente todas las reglas que haya definido."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Correo Paperless"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "cuenta de correo"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "cuentas de correo"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Sin encriptar"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Usar SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Usar STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Servidor IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Puerto IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Normalmente 143 para conexiones sin encriptar y STARTTLS, y 993 para conexiones SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Seguridad IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "usuario"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "contraseña"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "conjunto de caracteres"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "El conjunto de caracteres a usar al comunicarse con el servidor de correo, como 'UTF-8' o 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "regla de correo"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "reglas de correo"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Solo procesar ficheros adjuntos."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Procesar todos los ficheros, incluyendo ficheros 'incrustados'."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Marcar como leído, no procesar archivos leídos"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar el correo, no procesar correos marcados"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Mover a carpeta específica"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Borrar"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Mover a carpeta específica"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Marcar como leído, no procesar archivos leídos"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar el correo, no procesar correos marcados"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Usar asunto como título"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Usar nombre del fichero adjunto como título"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "No asignar interlocutor"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Usar dirección de correo"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Usar nombre (o dirección de correo sino está disponible)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Usar el interlocutor seleccionado a continuación"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "orden"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "cuenta"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "carpeta"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Las subcarpetas deben estar separadas por puntos."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Las subcarpetas deben estar separadas por un delimitador, normalmente un punto ('.') o barra ('/'), pero depende según el servidor de correo."
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrar desde"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrar asunto"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrar cuerpo"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrar nombre del fichero adjunto"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
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:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "antigüedad máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Especificado en días."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tipo de fichero adjunto"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Adjuntos incrustados incluyen imágenes, por lo que es mejor combina resta opción un filtro de nombre de fichero."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "acción"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parámetro de acción"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parámetro adicional para la acción seleccionada arriba. Ej. la carpeta de destino de la acción \"mover a carpeta\". Las subcarpetas deben estar separadas por puntos."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "asignar título desde"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "asignar esta etiqueta"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "asignar este tipo de documento"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "asignar interlocutor desde"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "asignar este interlocutor"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-31 08:58\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -17,470 +17,518 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumentit"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Mikä tahansa sana"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Kaikki sanat"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Tarkka osuma"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Säännöllinen lauseke (regex)"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Sumea sana"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automaattinen"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nimi"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "osuma"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "tunnistusalgoritmi"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "ei ole herkkä"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "yhteyshenkilö"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "yhteyshenkilöt"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "väri"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "on uusien tunniste"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Merkitsee tämän tunnisteen uusien tunnisteeksi: Kaikille vastasyötetyille tiedostoille annetaan tämä tunniste."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "tunniste"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "tunnisteet"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "asiakirjatyyppi"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "asiakirjatyypit"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "polku"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "tallennustilan polku"
#: documents/models.py:97
msgid "storage paths"
msgstr "tallennustilan polut"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Salaamaton"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "GNU Privacy Guard -salattu"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "otsikko"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "sisältö"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Raaka vain teksti -muotoinen dokumentin sisältö. Kenttää käytetään pääasiassa hakutoiminnossa."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime-tyyppi"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "tarkistussumma"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Alkuperäisen dokumentin tarkistussumma."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arkistotarkastussumma"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Arkistoidun dokumentin tarkistussumma."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "luotu"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "muokattu"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tallennustilan tyyppi"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "lisätty"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "tiedostonimi"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Tiedostonimi tallennustilassa"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "arkistointitiedostonimi"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Tämänhetkinen arkistointitiedostoimi tallennustilassa"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "arkistointisarjanumero"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Dokumentin sijainti fyysisessa dokumenttiarkistossa."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokumentti"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumentit"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "virheenjäljitys"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informaatio"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "varoitus"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "virhe"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kriittinen"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "ryhmä"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "viesti"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "taso"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "loki"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "lokit"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "tallennettu näkymä"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "tallennetut näkymät"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "käyttäjä"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "näytä etusivulla"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "näytä sivupaneelissa"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "lajittelukenttä"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "lajittele käänteisesti"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "otsikko sisältää"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "sisältö sisältää"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN on"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "yhteyshenkilö on"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "dokumenttityyppi on"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "on uusi"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "on tagattu"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "on mikä tahansa tagi"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "luotu ennen"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "luotu jälkeen"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "luotu vuonna"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "luotu kuukautena"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr ""
msgstr "luomispäivä on"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr ""
msgstr "lisätty ennen"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr ""
msgstr "lisätty jälkeen"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr ""
msgstr "muokattu ennen"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr ""
msgstr "muokattu jälkeen"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr ""
msgstr "ei ole tagia"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr ""
msgstr "ei ole ASN-numeroa"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr ""
msgstr "otsikko tai sisältö sisältää"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr ""
msgstr "fulltext-kysely"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr ""
msgstr "enemmän kuten tämä"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr ""
msgstr "sisältää tagit"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr ""
msgstr "sääntötyyppi"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr ""
msgstr "arvo"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr ""
msgstr "suodatussääntö"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "suodatussäännöt"
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:64
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
msgstr "Virheellinen regex-lauseke: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr ""
msgstr "Virheellinen väri."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
msgstr "Tiedostotyyppiä %(type)s ei tueta"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Virheellinen muuttuja havaittu."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
msgstr "Paperless-ngx latautuu..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Vielä täällä?! Hmm, jokin saattaa olla vialla."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Tässä on linkki dokumentteihin."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
msgstr "Paperless-ngx kirjauduttu ulos"
#: documents/templates/registration/logged_out.html:59
msgid "You have been successfully logged out. Bye!"
msgstr ""
msgstr "Uloskirjautuminen onnistui. Heippa!"
#: documents/templates/registration/logged_out.html:60
msgid "Sign in again"
msgstr ""
msgstr "Kirjaudu uudelleen"
#: documents/templates/registration/login.html:15
msgid "Paperless-ngx sign in"
msgstr ""
msgstr "Paperless-ngx kirjaudu sisään"
#: documents/templates/registration/login.html:61
msgid "Please sign in."
msgstr ""
msgstr "Kirjaudu sisään."
#: documents/templates/registration/login.html:64
msgid "Your username and password didn't match. Please try again."
msgstr ""
msgstr "Käyttäjätunnus ja salasana eivät täsmää. Yritä uudelleen."
#: documents/templates/registration/login.html:67
msgid "Username"
msgstr ""
msgstr "Käyttäjänimi"
#: documents/templates/registration/login.html:68
msgid "Password"
msgstr ""
msgstr "Salasana"
#: documents/templates/registration/login.html:73
msgid "Sign in"
msgstr ""
msgstr "Kirjaudu sisään"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr ""
msgstr "Englanti (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "valkovenäjä"
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
msgstr "Tšekki"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
msgstr "Tanska"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr ""
msgstr "Saksa"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr ""
msgstr "Englanti (US)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr ""
msgstr "Espanja"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr ""
msgstr "Ranska"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr ""
msgstr "Italia"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
msgstr "Luxemburg"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr ""
msgstr "Hollanti"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "puola"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "portugali (Brasilia)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "portugali"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "romania"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "venäjä"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Slovenia"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbia"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "ruotsi"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Turkki"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Kiina (yksinkertaistettu)"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx hallintapaneeli"
@@ -506,7 +554,7 @@ msgstr "Toiminnot"
#: paperless_mail/admin.py:67
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 "Sähköpostiin sovellettu toiminto. Tämä toiminto suoritetaan vasta, kun asiakirjat on luettu sähköpostin kautta. Sähköpostit ilman liitteitä pysyvät täysin koskemattomina."
#: paperless_mail/admin.py:75
msgid "Metadata"
@@ -516,199 +564,203 @@ msgstr "Metatiedot"
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 "Määritä tuodun dokumentin metadata tämän säännön perusteella automaattisesti. Jos et aseta tageja, tyyppejä tai omistajia täällä, Paperless prosessoi silti kaikki sopivat määritellyt säännöt."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless-sähköposti"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "sähköpostitili"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "sähköpostitilit"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Ei salausta"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Käytä SSL-salausta"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Käytä STARTTLS-salausta"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP-palvelin"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP-portti"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Tämä on yleensä 142 salaamattomille sekä STARTTLS-yhteyksille, ja 993 SSL-yhteyksille."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP-suojaus"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "käyttäjänimi"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "salasana"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "merkistö"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Merkistö määritellään sähköpostipalvelimen kanssa komminukointia varten. Se voi olla esimerkiksi \"UTF-8\" tai \"US-ASCII\"."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "sähköpostisääntö"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "sähköpostisäännöt"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Prosessoi vain liitteet."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Prosessoi kaikki tiedostot, sisältäen \"inline\"-liitteet."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Merkitse luetuksi, älä prosessoi luettuja sähköposteja"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Merkitse luetuksi, älä prosessoi luettuja sähköposteja"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr ""
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr ""
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr ""
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr ""
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-03 15:34\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documents"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Un des mots"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Tous les mots"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Concordance exacte"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Expression régulière"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Mot approximatif"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatique"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nom"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "rapprochement"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algorithme de rapprochement"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "est insensible à la casse"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "correspondant"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "correspondants"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "couleur"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "est une étiquette de boîte de réception"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Marque cette étiquette comme étiquette de boîte de réception : ces étiquettes sont affectées à tous les documents nouvellement traités."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "étiquette"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "étiquettes"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "type de document"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "types de document"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Non chiffré"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Chiffré avec GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titre"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "contenu"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Les données brutes du document, en format texte uniquement. Ce champ est principalement utilisé pour la recherche."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "type mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "somme de contrôle"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "La somme de contrôle du document original."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "somme de contrôle de l'archive"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "La somme de contrôle du document archivé."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "créé le"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modifié"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "forme d'enregistrement :"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "date d'ajout"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nom du fichier"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nom du fichier courant en base de données"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nom de fichier de l'archive"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nom du fichier d'archive courant en base de données"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "numéro de série de l'archive"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Le classement de ce document dans votre archive de documents physiques."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "document"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documents"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "débogage"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informations"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "avertissement"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "erreur"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "critique"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "groupe"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "message"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "niveau"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "journal"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "journaux"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "vue enregistrée"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "vues enregistrées"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "utilisateur"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "montrer sur le tableau de bord"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "montrer dans la barre latérale"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "champ de tri"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "tri inverse"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "le titre contient"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "le contenu contient"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "le NSA est"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "le correspondant est"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "le type de document est"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "est dans la boîte de réception"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "porte l'étiquette"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "porte l'une des étiquettes"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "créé avant"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "créé après"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "l'année de création est"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "le mois de création est"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "le jour de création est"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "ajouté avant"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "ajouté après"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modifié avant"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modifié après"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "ne porte pas d'étiquette"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "ne porte pas de NSA"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "le titre ou le contenu contient"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "recherche en texte intégral"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "documents relatifs"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "porte une étiquette parmi"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "type de règle"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valeur"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "règle de filtrage"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "règles de filtrage"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Expression régulière incorrecte : %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Couleur incorrecte."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Type de fichier %(type)s non pris en charge"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx est en cours de chargement..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Déconnexion de Paperless-ngx"
@@ -416,71 +444,91 @@ msgstr "Mot de passe"
msgid "Sign in"
msgstr "S'identifier"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Anglais (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tchèque"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danois"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Allemand"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Anglais (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Espagnol"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Français"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italien"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxembourgeois"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Néerlandais"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polonais"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugais (Brésil)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugais"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Roumain"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russe"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Suédois"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administration de Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Métadonnées"
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 "Affecter automatiquement des métadonnées aux documents traités à partir de cette règle. Si vous n'affectez pas d'étiquette, de type ou de correspondant ici, Paperless-ng appliquera toutes les autres règles de rapprochement que vous avez définies."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless-ng pour le courriel"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "compte de messagerie"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "comptes de messagerie"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Pas de chiffrement"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Utiliser SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Utiliser STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Serveur IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Port IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Généralement 143 pour les connexions non chiffrées et STARTTLS, et 993 pour les connexions SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Sécurité IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "nom d'utilisateur"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "mot de passe"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "jeu de caractères"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Le jeu de caractères à utiliser lors de la communication avec le serveur de messagerie, par exemple 'UTF-8' ou 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "règle de courriel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "règles de courriel"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Ne traiter que les pièces jointes."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Traiter tous les fichiers, y compris les pièces jointes \"en ligne\"."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Marquer comme lu, ne pas traiter les courriels lus"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Marquer le courriel, ne pas traiter les courriels marqués"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Déplacer vers le dossier spécifié"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Supprimer"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Déplacer vers le dossier spécifié"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Marquer comme lu, ne pas traiter les courriels lus"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Marquer le courriel, ne pas traiter les courriels marqués"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Utiliser le sujet en tant que titre"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Utiliser le nom de la pièce jointe en tant que titre"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Ne pas affecter de correspondant"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Utiliser l'adresse électronique"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Utiliser le nom (ou l'adresse électronique s'il n'est pas disponible)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Utiliser le correspondant sélectionné ci-dessous"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "ordre"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "compte"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "répertoire"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Les sous-dossiers doivent être séparés par des points."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrer l'expéditeur"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrer le sujet"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrer le corps du message"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrer le nom de fichier de la pièce jointe"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Ne traiter que les documents correspondant intégralement à ce nom de fichier s'il est spécifié. Les jokers tels que *.pdf ou *facture* sont autorisés. La casse n'est pas prise en compte."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "âge maximum"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "En jours."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "type de pièce jointe"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Les pièces jointes en ligne comprennent les images intégrées, il est donc préférable de combiner cette option avec un filtre de nom de fichier."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "action"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "paramètre d'action"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Paramètre supplémentaire pour l'action sélectionnée ci-dessus, par exemple le dossier cible de l'action de déplacement vers un dossier. Les sous-dossiers doivent être séparés par des points."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "affecter le titre depuis"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "affecter cette étiquette"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "affecter ce type de document"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "affecter le correspondant depuis"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "affecter ce correspondant"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,766 @@
msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-09 12:27\n"
"Last-Translator: \n"
"Language-Team: Croatian\n"
"Language: hr_HR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Crowdin-Project: paperless-ngx\n"
"X-Crowdin-Project-ID: 500308\n"
"X-Crowdin-Language: hr\n"
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenti"
#: documents/models.py:29
msgid "Any word"
msgstr "Bilo koja riječ"
#: documents/models.py:30
msgid "All words"
msgstr "Sve riječi"
#: documents/models.py:31
msgid "Exact match"
msgstr "Točno podudaranje"
#: documents/models.py:32
msgid "Regular expression"
msgstr "Uobičajeni izraz"
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Nejasna riječ"
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatski"
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "ime"
#: documents/models.py:39
msgid "match"
msgstr "podudarati"
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritam podudaranja"
#: documents/models.py:47
msgid "is insensitive"
msgstr "ne razlikuje velika i mala slova"
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "dopisnik"
#: documents/models.py:61
msgid "correspondents"
msgstr "dopisnici"
#: documents/models.py:66
msgid "color"
msgstr "boja"
#: documents/models.py:69
msgid "is inbox tag"
msgstr "oznaka ulazne pošte (inbox)"
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Označava ovu oznaku kao oznaku ulazne pošte (inbox): Svi novopotrošeni dokumenti bit će označeni oznakama ulazne pošte (inbox)."
#: documents/models.py:78
msgid "tag"
msgstr "oznaka"
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "oznake"
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "vrsta dokumenta"
#: documents/models.py:85
msgid "document types"
msgstr "vrste dokumenta"
#: documents/models.py:90
msgid "path"
msgstr "putanja"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "putanja pohrane"
#: documents/models.py:97
msgid "storage paths"
msgstr "putanje pohrane"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Nekriptirano"
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Enkriptirano s GNU Privacy Guard"
#: documents/models.py:127
msgid "title"
msgstr "naslov"
#: documents/models.py:139
msgid "content"
msgstr "sadržaj"
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Neobrađeni tekstualni podaci dokumenta. Ovo se polje koristi prvenstveno za pretraživanje."
#: documents/models.py:147
msgid "mime type"
msgstr "vrste mime"
#: documents/models.py:157
msgid "checksum"
msgstr "kontrolni zbroj"
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrolni zbroj originalnog dokumenta."
#: documents/models.py:165
msgid "archive checksum"
msgstr "arhivski kontrolni zbroj"
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrolni zbroj arhiviranog dokumenta."
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "stvoreno"
#: documents/models.py:176
msgid "modified"
msgstr "modificiran"
#: documents/models.py:183
msgid "storage type"
msgstr "vrsta pohrane"
#: documents/models.py:191
msgid "added"
msgstr "dodano"
#: documents/models.py:198
msgid "filename"
msgstr "naziv datoteke"
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Trenutni naziv pohranjene datoteke"
#: documents/models.py:208
msgid "archive filename"
msgstr "naziv arhivirane datoteke"
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Trenutni naziv arhivirane pohranjene datoteke"
#: documents/models.py:218
msgid "archive serial number"
msgstr "arhivirani serijski broj"
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Položaj ovog dokumenta u vašoj fizičkoj arhivi dokumenata."
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:231
msgid "documents"
msgstr "dokumenti"
#: documents/models.py:318
msgid "debug"
msgstr "otklanjanje pogrešaka"
#: documents/models.py:319
msgid "information"
msgstr "informacije"
#: documents/models.py:320
msgid "warning"
msgstr "upozorenje"
#: documents/models.py:321
msgid "error"
msgstr "greška"
#: documents/models.py:322
msgid "critical"
msgstr "kritično"
#: documents/models.py:325
msgid "group"
msgstr "grupa"
#: documents/models.py:327
msgid "message"
msgstr "poruka"
#: documents/models.py:330
msgid "level"
msgstr "razina"
#: documents/models.py:339
msgid "log"
msgstr "zapisnik"
#: documents/models.py:340
msgid "logs"
msgstr "zapisnici"
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "spremljen prikaz"
#: documents/models.py:351
msgid "saved views"
msgstr "spremljeni prikazi"
#: documents/models.py:353
msgid "user"
msgstr "korisnik"
#: documents/models.py:357
msgid "show on dashboard"
msgstr "prikaži na nadzornoj ploči"
#: documents/models.py:360
msgid "show in sidebar"
msgstr "prikaži u bočnoj traci"
#: documents/models.py:364
msgid "sort field"
msgstr "sortiraj polje"
#: documents/models.py:369
msgid "sort reverse"
msgstr "obrnuto sortiranje"
#: documents/models.py:374
msgid "title contains"
msgstr "naslov sadrži"
#: documents/models.py:375
msgid "content contains"
msgstr "sadržaj sadrži"
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN je"
#: documents/models.py:377
msgid "correspondent is"
msgstr "dopisnik je"
#: documents/models.py:378
msgid "document type is"
msgstr "vrsta dokumenta je"
#: documents/models.py:379
msgid "is in inbox"
msgstr "nalazi se u ulaznoj pošti"
#: documents/models.py:380
msgid "has tag"
msgstr "ima oznaku"
#: documents/models.py:381
msgid "has any tag"
msgstr "ima bilo kakvu oznaku"
#: documents/models.py:382
msgid "created before"
msgstr "stvoreni prije"
#: documents/models.py:383
msgid "created after"
msgstr "stvoreno poslije"
#: documents/models.py:384
msgid "created year is"
msgstr "godina stvaranja je"
#: documents/models.py:385
msgid "created month is"
msgstr "mjesec stvaranja je"
#: documents/models.py:386
msgid "created day is"
msgstr "dan stvaranja je"
#: documents/models.py:387
msgid "added before"
msgstr "dodano prije"
#: documents/models.py:388
msgid "added after"
msgstr "dodano poslije"
#: documents/models.py:389
msgid "modified before"
msgstr "modificirano prije"
#: documents/models.py:390
msgid "modified after"
msgstr "modificirano poslije"
#: documents/models.py:391
msgid "does not have tag"
msgstr "ne posjeduje oznaku"
#: documents/models.py:392
msgid "does not have ASN"
msgstr "ne posjeduje ASN"
#: documents/models.py:393
msgid "title or content contains"
msgstr "naziv ili sadržaj sadrži"
#: documents/models.py:394
msgid "fulltext query"
msgstr "upit za cijeli tekst"
#: documents/models.py:395
msgid "more like this"
msgstr "više poput ovog"
#: documents/models.py:396
msgid "has tags in"
msgstr "sadrži oznake"
#: documents/models.py:406
msgid "rule type"
msgstr "vrsta pravila"
#: documents/models.py:408
msgid "value"
msgstr "vrijednost"
#: documents/models.py:411
msgid "filter rule"
msgstr "pravilo filtera"
#: documents/models.py:412
msgid "filter rules"
msgstr "pravila filtera"
#: documents/models.py:521
msgid "started"
msgstr "započeto"
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Nevažeći regularni izraz: %(error)s"
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Nevažeća boja."
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Vrsta datoteke %(type)s nije podržana"
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Otkrivena je nevaljana vrsta datoteke."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx se učitava..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Još uvijek si ovdje?! Hmm, možda nešto nije u redu."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Poveznica na dokumente."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx odjavljen"
#: documents/templates/registration/logged_out.html:59
msgid "You have been successfully logged out. Bye!"
msgstr "Uspješno ste se odjavili!"
#: documents/templates/registration/logged_out.html:60
msgid "Sign in again"
msgstr "Ponovna prijava"
#: documents/templates/registration/login.html:15
msgid "Paperless-ngx sign in"
msgstr "Paperless-ngx prijava"
#: documents/templates/registration/login.html:61
msgid "Please sign in."
msgstr "Molimo prijavite se."
#: documents/templates/registration/login.html:64
msgid "Your username and password didn't match. Please try again."
msgstr "Vaše korisničko ime i lozinka ne odgovaraju. Molimo pokušajte ponovno."
#: documents/templates/registration/login.html:67
msgid "Username"
msgstr "Korisničko ime"
#: documents/templates/registration/login.html:68
msgid "Password"
msgstr "Lozinka"
#: documents/templates/registration/login.html:73
msgid "Sign in"
msgstr "Prijava"
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engleski (US)"
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Bjeloruski"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Češki"
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danski"
#: paperless/settings.py:343
msgid "German"
msgstr "Njemački"
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engleski (GB)"
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Španjolski"
#: paperless/settings.py:346
msgid "French"
msgstr "Francuski"
#: paperless/settings.py:347
msgid "Italian"
msgstr "Talijanski"
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luksemburški"
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Nizozemski"
#: paperless/settings.py:350
msgid "Polish"
msgstr "Poljski"
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugalski (Brazil)"
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugalski"
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumunjski"
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ruski"
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Slovenski"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Srpski"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Švedski"
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Turski"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Pojednostavljeni kineski"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx administracija"
#: paperless_mail/admin.py:29
msgid "Authentication"
msgstr "Autentifikacija"
#: paperless_mail/admin.py:30
msgid "Advanced settings"
msgstr "Napredne postavke"
#: paperless_mail/admin.py:47
msgid "Filter"
msgstr "Filter"
#: paperless_mail/admin.py:50
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless-ngx će obrađivati samo e-poštu koja odgovara SVIM filterima navedenim u nastavku."
#: paperless_mail/admin.py:64
msgid "Actions"
msgstr "Akcije"
#: paperless_mail/admin.py:67
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 "Akcija se odnosi na e-poštu. Ova se radnja izvodi samo ako su dokumenti konzumirani iz e-pošte. E-pošta bez privitaka ostat će u potpunosti netaknuta."
#: paperless_mail/admin.py:75
msgid "Metadata"
msgstr "Metapodaci"
#: paperless_mail/admin.py:78
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 "Automatski dodijelite metapodatke dokumentima koji se koriste iz ovog pravila. Ako ne dodijelite oznaku, vrstu ili dopisnika, Paperless-ngx će i dalje obraditi sva pravila podudaranja koja ste definirali."
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless-ngx e-pošta"
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "korisnički račun e-pošte"
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "korisnički računi e-pošte"
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Nema enkripcije"
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Koristi SSL"
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Koristi STARTTLS"
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP server"
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP port"
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Uobičajno 143 za nekriptirane i STARTTLS veze, a 993 za SSL veze."
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP zaštita"
#: paperless_mail/models.py:36
msgid "username"
msgstr "korisničko ime"
#: paperless_mail/models.py:38
msgid "password"
msgstr "lozinka"
#: paperless_mail/models.py:41
msgid "character set"
msgstr "skup znakova enkodiranja"
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Skup znakova koji se koristi pri komunikaciji s poslužiteljem e-pošte, poput 'UTF-8' ili 'US-ASCII'."
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "pravilo e-pošte"
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "pravila e-pošte"
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Obradi samo privitke."
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Obradite sve datoteke, uključujući \"umetnute\" privitke."
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Obriši"
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Premjestiti u određenu mapu"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Označi kao pročitano. Ne obrađuj pročitanu e-poštu"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Označi poštu zastavicom. Ne obrađuj e-poštu sa zastavicom"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr "Označite poštu specifičnom oznakom. Ne obrađuj e-poštu s specifičnom oznakom"
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Koristi predmet kao naziv"
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Koristi naziv datoteke priloga kao naziv"
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Nemojte dodijeliti dopisnika"
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Koristi adresu e-pošte"
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Koristi ime (ili adresu e-pošte ukoliko ime nije dostupno)"
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Koristi dopisnika odabranog u nastavku"
#: paperless_mail/models.py:82
msgid "order"
msgstr "redoslijed"
#: paperless_mail/models.py:88
msgid "account"
msgstr "korisnički račun"
#: paperless_mail/models.py:92
msgid "folder"
msgstr "mapa"
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Podmape moraju biti odvojene razdjelnikom, često točkom ('.') ili kosom crtom ('/'), no to se razlikuje ovisno o poslužitelju e-pošte."
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtriraj po pošiljatelju"
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtriraj po predmetu"
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtriraj po sadržaju"
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtriraj po nazivu datoteke iz privitka"
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Konzumirajte samo dokumente koji u potpunosti odgovaraju ovom nazivu datoteke ako je navedeno. Dopušteni su zamjenski znakovi kao što su *.pdf ili *faktura*. Neosjetljivo je na mala i mala slova."
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "maksimalna dob"
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Navedeno u danima."
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "vrsta privitka"
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Ugrađeni privici uključuju ugrađene slike, pa je najbolje kombinirati ovu opciju s filtrom naziva datoteke."
#: paperless_mail/models.py:149
msgid "action"
msgstr "akcija"
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parametar akcije"
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Dodatni parametar za gore odabranu akciju, tj. ciljana mapa za premjesti u mapu akciju. Podmape moraju biti odvojene točkama."
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "dodijeliti naslov od"
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "dodijeli oznaku"
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "dodijeliti ovu vrstu dokumenta"
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "dodijeli dopisnika od"
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "dodijelite ovom dopisniku"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-09 09:53\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documenti"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Qualsiasi parola"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Tutte le parole"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Corrispondenza esatta"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Espressione regolare"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Parole fuzzy"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatico"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nome"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "corrispondenza"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritmo di corrispondenza"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "non distingue maiuscole e minuscole"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "corrispondente"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "corrispondenti"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "colore"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "è tag di arrivo"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Contrassegna questo tag come tag in arrivo: tutti i documenti elaborati verranno taggati con questo tag."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "tag"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "tag"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tipo di documento"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipi di documento"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "percorso"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "percorso di archiviazione"
#: documents/models.py:97
msgid "storage paths"
msgstr "percorsi di archiviazione"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Non criptato"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Criptato con GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titolo"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "contenuto"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "I dati grezzi o solo testo del documento. Questo campo è usato principalmente per la ricerca."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "tipo mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "checksum"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Il checksum del documento originale."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "checksum dell'archivio"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Il checksum del documento archiviato."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "creato il"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modificato il"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tipo di storage"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "aggiunto il"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nome del file"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nome del file corrente nello storage"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "Nome file in archivio"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Il nome del file nell'archiviazione"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "numero seriale dell'archivio"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Posizione di questo documento all'interno dell'archivio fisico."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "documento"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documenti"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "debug"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informazione"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "avvertimento"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "errore"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "critico"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "gruppo"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "messaggio"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "livello"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "logs"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "log"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "vista salvata"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "viste salvate"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "utente"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "mostra sul cruscotto"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "mostra nella barra laterale"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "campo di ordinamento"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "ordine invertito"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "il titolo contiene"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "il contenuto contiene"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN è"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "la corrispondenza è"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "il tipo di documento è"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "è in arrivo"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "ha etichetta"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "ha qualsiasi etichetta"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "creato prima del"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "creato dopo il"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "l'anno di creazione è"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "il mese di creazione è"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "il giorno di creazione è"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "aggiunto prima del"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "aggiunto dopo il"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modificato prima del"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modificato dopo"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "non ha tag"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "non ha ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "il titolo o il contenuto contiene"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "query fulltext"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "altro come questo"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "ha tag in"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tipo di regola"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valore"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "regola filtro"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "regole filtro"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Espressione regolare non valida: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Colore non valido."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Il tipo di file %(type)s non è supportato"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Variabile non valida."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx è in caricamento..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Ancora qui?! Mmm, qualcosa potrebbe essere sbagliato."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Ecco qui il link alla documentazione."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Disconnesso da Paperless-ngx"
@@ -416,71 +444,91 @@ msgstr "Password"
msgid "Sign in"
msgstr "Accedi"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Inglese (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Bielorusso"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Ceco"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danese"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Tedesco"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Inglese (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spagnolo"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francese"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Lussemburghese"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Olandese"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polacco"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portoghese (Brasile)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portoghese"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumeno"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Sloveno"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbo"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Svedese"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Turco"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Cinese semplificato"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Amministrazione di Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Metadati"
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 "Assegna automaticamente i metadati ai documenti elaborati da questa regola. Se non assegni qui dei tag, tipi di documenti o corrispondenti, Paperless userà comunque le regole corrispondenti che hai configurato."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Email Paperless"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "account email"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "account email"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Nessuna crittografia"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Usa SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Usa STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Server IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Porta IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Di solito si usa 143 per STARTTLS o nessuna crittografia e 993 per SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Sicurezza IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "nome utente"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "password"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "set di caratteri"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Il set di caratteri da usare quando si comunica con il server di posta, come 'UTF-8' o 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "regola email"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "regole email"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Elabora solo gli allegati."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Elabora tutti i file, inclusi gli allegati nel corpo."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Segna come letto, non elaborare le email lette"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Contrassegna la email, non elaborare le email elaborate."
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Sposta in una cartella"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Elimina"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Sposta in una cartella"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Segna come letto, non elaborare le email lette"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Contrassegna la email, non elaborare le email elaborate."
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Usa oggetto come titolo"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Usa il nome dell'allegato come titolo"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Non assegnare un corrispondente"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Usa indirizzo email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Usa nome (o indirizzo email se non disponibile)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Usa il corrispondente selezionato qui sotto"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "priorità"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "account"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "cartella"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Le sottocartelle devono essere separate da punti."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Le sottocartelle devono essere separate da un delimitatore, solitamente da un punto ('.') o da uno slash ('/'), ma variano a seconda del server di posta."
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtra da"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtra oggetto"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtra corpo"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtra nome allegato"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Elabora i documenti che corrispondono a questo nome. Puoi usare wildcard come *.pdf o *fattura*. Non fa differenza fra maiuscole e minuscole."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "età massima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Definito in giorni."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tipo di allegato"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Gli allegati in linea includono le immagini nel corpo, quindi è meglio combinare questa opzione con il filtro nome."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "azione"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parametro azione"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parametro aggiuntivo per l'azione selezionata, ad esempio la cartella di destinazione per l'azione che sposta una cartella. Le sottocartelle devono essere separate da punti."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "assegna tittolo da"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "assegna questo tag"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "assegna questo tipo di documento"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "assegna corrispondente da"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "assegna questo corrispondente"

View File

@@ -0,0 +1,766 @@
msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: paperless-ngx\n"
"X-Crowdin-Project-ID: 500308\n"
"X-Crowdin-Language: ja\n"
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:9
msgid "Documents"
msgstr ""
#: documents/models.py:29
msgid "Any word"
msgstr ""
#: documents/models.py:30
msgid "All words"
msgstr ""
#: documents/models.py:31
msgid "Exact match"
msgstr ""
#: documents/models.py:32
msgid "Regular expression"
msgstr ""
#: documents/models.py:33
msgid "Fuzzy word"
msgstr ""
#: documents/models.py:34
msgid "Automatic"
msgstr ""
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr ""
#: documents/models.py:39
msgid "match"
msgstr ""
#: documents/models.py:42
msgid "matching algorithm"
msgstr ""
#: documents/models.py:47
msgid "is insensitive"
msgstr ""
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr ""
#: documents/models.py:61
msgid "correspondents"
msgstr ""
#: documents/models.py:66
msgid "color"
msgstr ""
#: documents/models.py:69
msgid "is inbox tag"
msgstr ""
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr ""
#: documents/models.py:78
msgid "tag"
msgstr ""
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr ""
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr ""
#: documents/models.py:85
msgid "document types"
msgstr ""
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr ""
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
#: documents/models.py:127
msgid "title"
msgstr ""
#: documents/models.py:139
msgid "content"
msgstr ""
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr ""
#: documents/models.py:147
msgid "mime type"
msgstr ""
#: documents/models.py:157
msgid "checksum"
msgstr ""
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr ""
#: documents/models.py:165
msgid "archive checksum"
msgstr ""
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr ""
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr ""
#: documents/models.py:176
msgid "modified"
msgstr ""
#: documents/models.py:183
msgid "storage type"
msgstr ""
#: documents/models.py:191
msgid "added"
msgstr ""
#: documents/models.py:198
msgid "filename"
msgstr ""
#: documents/models.py:204
msgid "Current filename in storage"
msgstr ""
#: documents/models.py:208
msgid "archive filename"
msgstr ""
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr ""
#: documents/models.py:218
msgid "archive serial number"
msgstr ""
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:230
msgid "document"
msgstr ""
#: documents/models.py:231
msgid "documents"
msgstr ""
#: documents/models.py:318
msgid "debug"
msgstr ""
#: documents/models.py:319
msgid "information"
msgstr ""
#: documents/models.py:320
msgid "warning"
msgstr ""
#: documents/models.py:321
msgid "error"
msgstr ""
#: documents/models.py:322
msgid "critical"
msgstr ""
#: documents/models.py:325
msgid "group"
msgstr ""
#: documents/models.py:327
msgid "message"
msgstr ""
#: documents/models.py:330
msgid "level"
msgstr ""
#: documents/models.py:339
msgid "log"
msgstr ""
#: documents/models.py:340
msgid "logs"
msgstr ""
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr ""
#: documents/models.py:351
msgid "saved views"
msgstr ""
#: documents/models.py:353
msgid "user"
msgstr ""
#: documents/models.py:357
msgid "show on dashboard"
msgstr ""
#: documents/models.py:360
msgid "show in sidebar"
msgstr ""
#: documents/models.py:364
msgid "sort field"
msgstr ""
#: documents/models.py:369
msgid "sort reverse"
msgstr ""
#: documents/models.py:374
msgid "title contains"
msgstr ""
#: documents/models.py:375
msgid "content contains"
msgstr ""
#: documents/models.py:376
msgid "ASN is"
msgstr ""
#: documents/models.py:377
msgid "correspondent is"
msgstr ""
#: documents/models.py:378
msgid "document type is"
msgstr ""
#: documents/models.py:379
msgid "is in inbox"
msgstr ""
#: documents/models.py:380
msgid "has tag"
msgstr ""
#: documents/models.py:381
msgid "has any tag"
msgstr ""
#: documents/models.py:382
msgid "created before"
msgstr ""
#: documents/models.py:383
msgid "created after"
msgstr ""
#: documents/models.py:384
msgid "created year is"
msgstr ""
#: documents/models.py:385
msgid "created month is"
msgstr ""
#: documents/models.py:386
msgid "created day is"
msgstr ""
#: documents/models.py:387
msgid "added before"
msgstr ""
#: documents/models.py:388
msgid "added after"
msgstr ""
#: documents/models.py:389
msgid "modified before"
msgstr ""
#: documents/models.py:390
msgid "modified after"
msgstr ""
#: documents/models.py:391
msgid "does not have tag"
msgstr ""
#: documents/models.py:392
msgid "does not have ASN"
msgstr ""
#: documents/models.py:393
msgid "title or content contains"
msgstr ""
#: documents/models.py:394
msgid "fulltext query"
msgstr ""
#: documents/models.py:395
msgid "more like this"
msgstr ""
#: documents/models.py:396
msgid "has tags in"
msgstr ""
#: documents/models.py:406
msgid "rule type"
msgstr ""
#: documents/models.py:408
msgid "value"
msgstr ""
#: documents/models.py:411
msgid "filter rule"
msgstr ""
#: documents/models.py:412
msgid "filter rules"
msgstr ""
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr ""
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
#: documents/templates/registration/logged_out.html:59
msgid "You have been successfully logged out. Bye!"
msgstr ""
#: documents/templates/registration/logged_out.html:60
msgid "Sign in again"
msgstr ""
#: documents/templates/registration/login.html:15
msgid "Paperless-ngx sign in"
msgstr ""
#: documents/templates/registration/login.html:61
msgid "Please sign in."
msgstr ""
#: documents/templates/registration/login.html:64
msgid "Your username and password didn't match. Please try again."
msgstr ""
#: documents/templates/registration/login.html:67
msgid "Username"
msgstr ""
#: documents/templates/registration/login.html:68
msgid "Password"
msgstr ""
#: documents/templates/registration/login.html:73
msgid "Sign in"
msgstr ""
#: paperless/settings.py:339
msgid "English (US)"
msgstr ""
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
#: paperless/settings.py:343
msgid "German"
msgstr ""
#: paperless/settings.py:344
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:345
msgid "Spanish"
msgstr ""
#: paperless/settings.py:346
msgid "French"
msgstr ""
#: paperless/settings.py:347
msgid "Italian"
msgstr ""
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:349
msgid "Dutch"
msgstr ""
#: paperless/settings.py:350
msgid "Polish"
msgstr ""
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:352
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:353
msgid "Romanian"
msgstr ""
#: paperless/settings.py:354
msgid "Russian"
msgstr ""
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr ""
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr ""
#: paperless_mail/admin.py:29
msgid "Authentication"
msgstr ""
#: paperless_mail/admin.py:30
msgid "Advanced settings"
msgstr ""
#: paperless_mail/admin.py:47
msgid "Filter"
msgstr ""
#: paperless_mail/admin.py:50
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr ""
#: paperless_mail/admin.py:64
msgid "Actions"
msgstr ""
#: paperless_mail/admin.py:67
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 ""
#: paperless_mail/admin.py:75
msgid "Metadata"
msgstr ""
#: paperless_mail/admin.py:78
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 ""
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr ""
#: paperless_mail/models.py:8
msgid "mail account"
msgstr ""
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr ""
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr ""
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr ""
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr ""
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr ""
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr ""
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr ""
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr ""
#: paperless_mail/models.py:36
msgid "username"
msgstr ""
#: paperless_mail/models.py:38
msgid "password"
msgstr ""
#: paperless_mail/models.py:41
msgid "character set"
msgstr ""
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:64
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:82
msgid "order"
msgstr ""
#: paperless_mail/models.py:88
msgid "account"
msgstr ""
#: paperless_mail/models.py:92
msgid "folder"
msgstr ""
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:102
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:114
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:149
msgid "action"
msgstr ""
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-18 12:18\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Luxembourgish\n"
"Language: lb_LU\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenter"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Iergendee Wuert"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "All d'Wierder"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Exakten Treffer"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regulären Ausdrock"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Ongenaut Wuert"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatesch"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "Numm"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "Zouweisungsmuster"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "Zouweisungsalgorithmus"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "Grouss-/Klengschreiwung ignoréieren"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "Korrespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "Korrespondenten"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "Faarf"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "Postaganks-Etikett"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Dës Etikett als Postaganks-Etikett markéieren: All nei importéiert Dokumenter kréien ëmmer dës Etikett zougewisen."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "Etikett"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "Etiketten"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "Dokumententyp"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "Dokumententypen"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "Pfad"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "Späicherpfad"
#: documents/models.py:97
msgid "storage paths"
msgstr "Späicherpfaden"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Onverschlësselt"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Verschlësselt mat GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "Titel"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "Inhalt"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "De réien Textinhalt vum Dokument. Dëst Feld gëtt primär fir d'Sich benotzt."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "MIME-Typ"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "Préifzomm"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "D'Préifzomm vum Original-Dokument."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "Archiv-Préifzomm"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "D'Préifzomm vum archivéierten Dokument."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "erstallt"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "verännert"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "Späichertyp"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "derbäigesat"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "Fichiersnumm"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Aktuellen Dateinumm am Späicher"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "Archiv-Dateinumm"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Aktuellen Dateinumm am Archiv"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "Archiv-Seriennummer"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "D'Positioun vun dësem Dokument am physeschen Dokumentenarchiv."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "Dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "Dokumenter"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "Fehlersiich"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "Informatioun"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "Warnung"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "Feeler"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritesch"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "Grupp"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "Message"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "Niveau"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "Protokoll"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "Protokoller"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "Gespäichert Usiicht"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "Gespäichert Usiichten"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "Benotzer"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "Op der Startsäit uweisen"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "An der Säiteleescht uweisen"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "Zortéierfeld"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "ëmgedréint zortéieren"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "Titel enthält"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "Inhalt enthält"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN ass"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "Korrespondent ass"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "Dokumententyp ass"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "ass am Postagank"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "huet Etikett"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "huet iergendeng Etikett"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "erstallt virun"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "erstallt no"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "Erstellungsjoer ass"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "Erstellungsmount ass"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "Erstellungsdag ass"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "dobäigesat virun"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "dobäigesat no"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "verännert virun"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "verännert no"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "huet dës Etikett net"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "huet keng ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "Titel oder Inhalt enthalen"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "Volltextsich"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "ähnlech Dokumenter"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "huet Etiketten an"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "Reegeltyp"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "Wäert"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "Filterreegel"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "Filterreegelen"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ongëltege regulären Ausdrock: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Ongëlteg Faarf."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Fichierstyp %(type)s net ënnerstëtzt"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Ongëlteg Zeechen detektéiert."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx gëtt gelueden..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Nach ëmmer hei?! Eventuell ass eppes schif gelaf."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Hei ass e Link op d'Dokumentatioun."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx ofgemellt"
@@ -416,71 +444,91 @@ msgstr "Passwuert"
msgid "Sign in"
msgstr "Umellen"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Englesch (USA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Belarusesch"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tschechesch"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Dänesch"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Däitsch"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Englesch (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spuenesch"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Franséisch"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italienesch"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Lëtzebuergesch"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Hollännesch"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polnesch"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugisesch (Brasilien)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugisesch"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumänesch"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russesch"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Slowenesch"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbesch"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Schwedesch"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Tierkesch"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Chinesesch (Vereinfacht)"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx-Administratioun"
@@ -516,199 +564,203 @@ msgstr "Metadaten"
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 "Den Dokumenter, déi iwwer dës Reegel veraarbecht ginn, automatesch Metadaten zouweisen. Wann hei keng Etiketten, Typen oder Korrespondenten zougewise ginn, veraarbecht Paperless-ng trotzdeem all zoutreffend Reegelen déi definéiert sinn."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless E-Mail"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "Mailkont"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "Mailkonten"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Keng Verschlësselung"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "SSL benotzen"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "STARTTLS benotzen"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP-Server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP-Port"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Dëst ass normalerweis 143 fir onverschësselt oder STARTTLS-Connectiounen an 993 fir SSL-Connectiounen."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP-Sécherheet"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "Benotzernumm"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "Passwuert"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Zeechesaz"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Den Zeechesaz dee benotzt gëtt wa mam Mailserver kommunizéiert gëtt, wéi beispillsweis 'UTF-8' oder 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "E-Mail-Reegel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "E-Mail-Reegelen"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Just Unhäng veraarbechten."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "All d'Fichiere veraarbechten, inklusiv \"inline\"-Unhäng."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Als gelies markéieren, gelies Mailen net traitéieren"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichteg markéieren, markéiert E-Mailen net veraarbechten"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "An e virdefinéierten Dossier réckelen"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Läschen"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "An e virdefinéierten Dossier réckelen"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Als gelies markéieren, gelies Mailen net traitéieren"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichteg markéieren, markéiert E-Mailen net veraarbechten"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Sujet als TItel notzen"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Numm vum Dateiunhank als Titel benotzen"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Kee Korrespondent zouweisen"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "E-Mail-Adress benotzen"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Numm benotzen (oder E-Mail-Adress falls den Numm net disponibel ass)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Korrespondent benotzen deen hei drënner ausgewielt ass"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "Reiefolleg"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "Kont"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "Dossier"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Ënnerdossiere mussen duerch Punkte getrennt ginn."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Ënnerdossiere musse mat engem Zeeche getrennt si wéi beispillsweis engem Punkt ('.') oder engem Slash ('/'), mee dat hänkt vum Mailserver of."
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "Ofsenderfilter"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "Sujets-Filter"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "Contenu-Filter"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "Filter fir den Numm vum Unhank"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Just Dokumenter traitéieren, déi exakt dësen Dateinumm hunn (falls definéiert). Platzhalter wéi *.pdf oder *invoice* sinn erlaabt. D'Grouss-/Klengschreiwung gëtt ignoréiert."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "Maximalen Alter"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "An Deeg."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "Fichierstyp vum Unhank"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "\"Inline\"-Unhänk schléissen och agebonne Biller mat an, dofir sollt dës Astellung mat engem Filter fir den Numm vum Unhank kombinéiert ginn."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "Aktioun"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "Parameter fir Aktioun"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Zousätzleche Parameter fir d'Aktioun déi hei driwwer ausgewielt ass, zum Beispill den Numm vum Zildossier fir d'Aktioun \"An e virdefinéierten Dossier réckelen\". Ënnerdossiere musse mat Punkte getrennt ginn."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "Titel zouweisen aus"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "dës Etikett zouweisen"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "Dësen Dokumententyp zouweisen"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "Korrespondent zouweisen aus"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "Dëse Korrespondent zouweisen"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-14 13:34\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documenten"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Elk woord"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Alle woorden"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Exacte overeenkomst"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Reguliere expressie"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Gelijkaardig woord"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatisch"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "naam"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "Overeenkomst"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "Algoritme voor het bepalen van de overeenkomst"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "is niet hoofdlettergevoelig"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "correspondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "correspondenten"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "Kleur"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "is \"Postvak in\"-label"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markeert dit label als een \"Postvak in\"-label: alle nieuw verwerkte documenten krijgen de \"Postvak in\"-labels."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "label"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "labels"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "documenttype"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "documenttypen"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Niet versleuteld"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Versleuteld met GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titel"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "inhoud"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "De onbewerkte gegevens van het document. Dit veld wordt voornamelijk gebruikt om te zoeken."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mimetype"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "checksum"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "De checksum van het oorspronkelijke document."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "archief checksum"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "De checksum van het gearchiveerde document."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "aangemaakt"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "gewijzigd"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "type opslag"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "toegevoegd"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "bestandsnaam"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Huidige bestandsnaam in opslag"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "Bestandsnaam in archief"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Huidige bestandsnaam in archief"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "serienummer in archief"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "De positie van dit document in je fysieke documentenarchief."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "document"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documenten"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "debug"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informatie"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "waarschuwing"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "fout"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritisch"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "groep"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "bericht"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "niveau"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "bericht"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "berichten"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "opgeslagen view"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "opgeslagen views"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "gebruiker"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "weergeven op dashboard"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "weergeven in zijbalk"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "sorteerveld"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "omgekeerd sorteren"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "titel bevat"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "inhoud bevat"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN is"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "correspondent is"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "documenttype is"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "zit in \"Postvak in\""
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "heeft label"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "heeft één van de labels"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "aangemaakt voor"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "aangemaakt na"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "aangemaakt jaar is"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "aangemaakte maand is"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "aangemaakte dag is"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "toegevoegd voor"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "toegevoegd na"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "gewijzigd voor"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "gewijzigd na"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "heeft geen label"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "heeft geen ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "titel of inhoud bevat"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "inhoud doorzoeken"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "meer zoals dit"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "heeft tags in"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "type regel"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "waarde"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filterregel"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filterregels"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ongeldige reguliere expressie: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Ongeldig kleur."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Bestandstype %(type)s niet ondersteund"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx is aan het laden..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx afgemeld"
@@ -416,71 +444,91 @@ msgstr "Wachtwoord"
msgid "Sign in"
msgstr "Aanmelden"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engels (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tsjechisch"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Deens"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Duits"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engels (Brits)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spaans"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Frans"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiaans"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburgs"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Nederlands"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Pools"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugees (Brazilië)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugees"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Roemeens"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Zweeds"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx administratie"
@@ -516,199 +564,203 @@ msgstr "Metadata"
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 "Automatisch metadata toewijzen aan documenten vanuit deze regel. Indien je geen labels, documenttypes of correspondenten toewijst, zal Paperless nog steeds alle regels verwerken die je hebt gedefinieerd."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless email"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "email account"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "email accounts"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Geen versleuteling"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Gebruik SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Gebruik STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP-server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP-poort"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Dit is gewoonlijk 143 voor onversleutelde of STARTTLS verbindingen, en 993 voor SSL verbindingen."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP-beveiliging"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "gebruikersnaam"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "wachtwoord"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Tekenset"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Tekenset die gebruikt moet worden bij communicatie met de mailserver, zoals 'UTF-8' of 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "email-regel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "email-regels"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Alleen bijlagen verwerken"
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Verwerk alle bestanden, inclusief 'inline' bijlagen."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Markeer als gelezen, verwerk geen gelezen mails"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Markeer de mail, verwerk geen mails met markering"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Verplaats naar gegeven map"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Verwijder"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Verplaats naar gegeven map"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Markeer als gelezen, verwerk geen gelezen mails"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Markeer de mail, verwerk geen mails met markering"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Gebruik onderwerp als titel"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Gebruik naam van bijlage als titel"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Wijs geen correspondent toe"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Gebruik het email-adres"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Gebruik de naam, en anders het email-adres"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Gebruik de hieronder aangeduide correspondent"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "volgorde"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "account"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "map"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Submappen moeten gescheiden worden door punten."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filter afzender"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filter onderwerp"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filter inhoud"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "Filter bestandsnaam van bijlage"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Alleen documenten verwerken die volledig overeenkomen, indien aangegeven. Je kunt jokertekens gebruiken, zoals *.pdf of *factuur*. Dit is niet hoofdlettergevoelig."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "Maximale leeftijd"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Aangegeven in dagen"
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "Type bijlage"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "\"Inline\" bijlagen bevatten vaak ook afbeeldingen. In dit geval valt het aan te raden om ook een filter voor de bestandsnaam op te geven."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "actie"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "actie parameters"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Extra parameter voor de hierboven geselecteerde actie, bijvoorbeeld: de doelmap voor de \"verplaats naar map\"-actie. Submappen moeten gescheiden worden door punten."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "wijs titel toe van"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "wijs dit etiket toe"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "wijs dit documenttype toe"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "wijs correspondent toe van"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "wijs deze correspondent toe"

File diff suppressed because it is too large Load Diff

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-05-13 03:55\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenty"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Dowolne słowo"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Wszystkie słowa"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Dokładne dopasowanie"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Wyrażenie regularne"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Dopasowanie rozmyte"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatyczny"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nazwa"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "dopasowanie"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algorytm dopasowania"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "bez rozróżniania wielkości znaków"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "korespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "korespondenci"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "kolor"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "jest tagiem skrzynki odbiorczej"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Zaznacza ten tag jako tag skrzynki odbiorczej: Wszystkie nowo przetworzone dokumenty będą oznaczone tagami skrzynki odbiorczej."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "znacznik"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "tagi"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "typ dokumentu"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "typy dokumentów"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "ścieżka"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "ścieżka przechowywania"
#: documents/models.py:97
msgid "storage paths"
msgstr "ścieżki składowania"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Niezaszyfrowane"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Zaszyfrowane przy użyciu GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "tytuł"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "zawartość"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Surowe, tekstowe dane dokumentu. To pole jest używane głównie do wyszukiwania."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime type"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "suma kontrolna"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Suma kontrolna oryginalnego dokumentu."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "suma kontrolna archiwum"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Suma kontrolna zarchiwizowanego dokumentu."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "utworzono"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "zmodyfikowano"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "typ przechowywania"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "dodano"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nazwa pliku"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Aktualna nazwa pliku w pamięci"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nazwa pliku archiwum"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Aktualna nazwa pliku archiwum w pamięci"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "numer seryjny archiwum"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Pozycja tego dokumentu w archiwum dokumentów fizycznych."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumenty"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "debugowanie"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informacja"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "ostrzeżenie"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "błąd"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "krytyczne"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupa"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "wiadomość"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "poziom"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "log"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "logi"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "zapisany widok"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "zapisane widoki"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "użytkownik"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "pokaż na stronie głównej"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "pokaż na pasku bocznym"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "pole sortowania"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "sortuj malejąco"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "tytuł zawiera"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "zawartość zawiera"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "numer archiwum jest"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "korespondentem jest"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "typ dokumentu jest"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "jest w skrzynce odbiorczej"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "ma tag"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "ma dowolny tag"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "utworzony przed"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "utworzony po"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "rok utworzenia to"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "miesiąc utworzenia to"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "dzień utworzenia to"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "dodany przed"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "dodany po"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "zmodyfikowany przed"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "zmodyfikowany po"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "nie ma tagu"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "nie ma numeru archiwum"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "tytuł lub zawartość zawiera"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "zapytanie pełnotekstowe"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "podobne dokumenty"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "ma znaczniki w"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "typ reguły"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "wartość"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "reguła filtrowania"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "reguły filtrowania"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Nieprawidłowe wyrażenie regularne: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Nieprawidłowy kolor."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Typ pliku %(type)s nie jest obsługiwany"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "Wykryto nieprawidłową zmienną."
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Wczytywanie Paperless-ngx..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "Nadal tutaj?! Hmm, coś może być nie tak."
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "Oto link do dokumentacji."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Wylogowano z Paperless-ngx"
@@ -416,71 +444,91 @@ msgstr "Hasło"
msgid "Sign in"
msgstr "Zaloguj się"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Angielski (USA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "Białoruski"
#: paperless/settings.py:341
msgid "Czech"
msgstr "Czeski"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Duński"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Niemiecki"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Angielski (Wielka Brytania)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Hiszpański"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francuski"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Włoski"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luksemburski"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Holenderski"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polski"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugalski (Brazylia)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugalski"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumuński"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Rosyjski"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "Słoweński"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "Serbski"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Szwedzki"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "Turecki"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "Chiński uproszczony"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administracja Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Metadane"
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 "Przypisz metadane do dokumentów zużywanych z tej reguły automatycznie. Jeśli nie przypisujesz tutaj tagów, typów lub korespondentów, Paperless będzie nadal przetwarzał wszystkie zdefiniowane przez Ciebie reguły."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Poczta Paperless"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "konto pocztowe"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "konta pocztowe"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Brak szyfrowania"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Użyj SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Użyj STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Serwer IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Port IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Zwykle jest to 143 dla połączeń niezaszyfrowanych i STARTTLS oraz 993 dla połączeń SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Zabezpieczenia IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "nazwa użytkownika"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "hasło"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Kodowanie"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Zestaw znaków używany podczas komunikowania się z serwerem poczty, np. \"UTF-8\" lub \"US-ASCII\"."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "reguła wiadomości"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "reguły wiadomości"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Przetwarzaj tylko załączniki."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Przetwarzaj wszystkie pliki, łącznie z załącznikami „inline”."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Oznacz jako przeczytane, nie przetwarzaj przeczytanych wiadomości"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Oznacz wiadomość, nie przetwarzaj oznaczonych wiadomości"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Przenieś do określonego folderu"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Usuń"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Przenieś do określonego folderu"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Oznacz jako przeczytane, nie przetwarzaj przeczytanych wiadomości"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Oznacz wiadomość, nie przetwarzaj oznaczonych wiadomości"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Użyj tematu jako tytułu"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Użyj nazwy pliku załącznika jako tytułu"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Nie przypisuj korespondenta"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Użyj adresu e-mail"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Użyj nazwy nadawcy (lub adresu e-mail, jeśli jest niedostępna)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Użyj korespondenta wybranego poniżej"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "kolejność"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "konto"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "katalog"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Podfoldery muszą być oddzielone kropkami."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "Podfoldery muszą być oddzielone ogranicznikiem, często kropką ('.') lub cięciem ('/'), ale różni się w zależności od serwera pocztowego."
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtruj po nadawcy"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtruj po temacie"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtruj po treści"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtruj po nazwie pliku załącznika"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Przetwarzaj tylko dokumenty, które całkowicie pasują do tej nazwy pliku, jeśli jest podana. Wzorce dopasowania jak *.pdf lub *faktura* są dozwolone. Wielkość liter nie jest rozróżniana."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "nie starsze niż"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "dni."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "typ załącznika"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Załączniki typu \"inline\" zawierają osadzone obrazy, więc najlepiej połączyć tę opcję z filtrem nazwy pliku."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "akcja"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parametr akcji"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Dodatkowy parametr dla akcji wybranej powyżej, tj. docelowy folder akcji \"Przenieś do określonego folderu\". Podfoldery muszą być oddzielone kropkami."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "przypisz tytuł"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "przypisz ten tag"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "przypisz ten typ dokumentu"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "przypisz korespondenta z"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "przypisz tego korespondenta"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-19 11:27\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documentos"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Qualquer palavra"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Todas as palavras"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Detecção exata"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Expressão regular"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Palavra difusa (fuzzy)"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automático"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nome"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "detecção"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritmo de detecção"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "diferencia maiúsculas de minúsculas"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "correspondente"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "correspondentes"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "cor"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "é etiqueta caixa de entrada"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Marca essa etiqueta como caixa de entrada: Todos os novos documentos consumidos terão as etiquetas de caixa de entrada."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etiqueta"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiquetas"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tipo de documento"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipos de documento"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Não encriptado"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Encriptado com GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "título"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "conteúdo"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "O conteúdo de texto bruto do documento. Esse campo é usado principalmente para busca."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "tipo mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "some de verificação"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "A soma de verificação original do documento."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "Soma de verificação de arquivamento."
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "A soma de verificação do documento arquivado."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "criado"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modificado"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tipo de armazenamento"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "adicionado"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nome do arquivo"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nome do arquivo atual armazenado"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nome do arquivo para arquivamento"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nome do arquivo para arquivamento armazenado"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "número de sério de arquivamento"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "A posição deste documento no seu arquivamento físico."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "documento"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documentos"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "debug"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informação"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "aviso"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "erro"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "crítico"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupo"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "mensagem"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nível"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "log"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "logs"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "visualização"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "visualizações"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "usuário"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "exibir no painel de controle"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "exibir no painel lateral"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "ordenar campo"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "odernar reverso"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "título contém"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "conteúdo contém"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "NSA é"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "correspondente é"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "tipo de documento é"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "é caixa de entrada"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "contém etiqueta"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "contém qualquer etiqueta"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "criado antes de"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "criado depois de"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "ano de criação é"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "mês de criação é"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "dia de criação é"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "adicionado antes de"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "adicionado depois de"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modificado antes de"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modificado depois de"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "não tem etiqueta"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "não tem NSA"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "título ou conteúdo contém"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "pesquisa de texto completo"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "mais como este"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "contém etiqueta em"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tipo de regra"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valor"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "regra de filtragem"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "regras de filtragem"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Expressão regular inválida: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Cor inválida."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Tipo de arquivo %(type)s não suportado"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx está carregando..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx saiu"
@@ -416,71 +444,91 @@ msgstr "Senha"
msgid "Sign in"
msgstr "Entrar"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Tcheco"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Dinamarquês"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Alemão"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Inglês (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Espanhol"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francês"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburguês"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Holandês"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polonês"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Português"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Romeno"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Sueco"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administração do Paperless-ngx"
@@ -516,200 +564,204 @@ msgstr "Metadados"
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 "Atribua metadados aos documentos consumidos por esta regra automaticamente. Se você não atribuir etiquetas, tipos ou correspondentes aqui, paperless ainda sim processará todas as regras de detecção que você definiu."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr ""
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "conta de e-mail"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "contas de e-mail"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Sem encriptação"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Usar SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Usar STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Servidor IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Porta IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "É geralmente 143 para não encriptado e conexões STARTTLS, e 993 para conexões SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "segurança IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "usuário"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "senha"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Conjunto de caracteres"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "O conjunto de caracteres usado ao se comunicar com o servidor de email, como 'UTF-8' ou 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "regra de e-mail"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "regras de e-mail"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Processar somente anexos."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Processar todos os arquivos, incluindo anexos 'inline'."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar e-mails lidos"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Sinalizar o e-mail, não processar e-mails sinalizados"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Mover para pasta especificada"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Excluir"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Mover para pasta especificada"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar e-mails lidos"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Sinalizar o e-mail, não processar e-mails sinalizados"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Usar assunto como título"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Usar nome do arquivo anexo como título"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Não atribuir um correspondente"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Usar endereço de e-mail"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Usar nome (ou endereço de e-mail se não disponível)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Usar correspondente selecionado abaixo"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "ordem"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "conta"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "pasta"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Subpastas devem ser separadas por pontos."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrar de"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrar assunto"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrar corpo"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrar nome do arquivo anexo"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consumir somente documentos que correspondem a este nome de arquivo se especificado.\n"
"Curingas como *.pdf ou *invoice* são permitidos. Sem diferenciação de maiúsculas e minúsculas."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "idade máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Especificada em dias."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tipo de anexo"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Anexos inline incluem imagens inseridas, por isso é melhor combinar essa opção com um filtro de nome de arquivo."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "ação"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parâmetro da ação"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parâmetro adicional para a ação selecionada acima, por exemplo: a pasta de destino da ação de mover pasta. Subpastas devem ser separadas por pontos."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "atribuir título de"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "atribuir esta etiqueta"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "atribuir este tipo de documento"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "atribuir correspondente de"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "atribuir este correspondente"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-11 10:59\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documentos"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Qualquer palavra"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Todas as palavras"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Detecção exata"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Expressão regular"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Palavra difusa (fuzzy)"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automático"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nome"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "correspondência"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritmo correspondente"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "é insensível"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "correspondente"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "correspondentes"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "cor"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "é etiqueta de novo"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Marca esta etiqueta como uma etiqueta de entrada. Todos os documentos recentemente consumidos serão etiquetados com a etiqueta de entrada."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etiqueta"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiquetas"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tipo de documento"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipos de documento"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Não encriptado"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Encriptado com GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "título"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "conteúdo"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Os dados de texto, em cru, do documento. Este campo é utilizado principalmente para pesquisar."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "tipo mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "soma de verificação"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "A soma de verificação do documento original."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arquivar soma de verificação"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "A soma de verificação do documento arquivado."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "criado"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modificado"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tipo de armazenamento"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "adicionado"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nome de ficheiro"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nome do arquivo atual no armazenamento"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nome do ficheiro de arquivo"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nome do arquivo atual em no armazenamento"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "numero de série de arquivo"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "A posição do documento no seu arquivo físico de documentos."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "documento"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documentos"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "depurar"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informação"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "aviso"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "erro"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "crítico"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupo"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "mensagem"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nível"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "registo"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "registos"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "vista guardada"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "vistas guardadas"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "utilizador"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "exibir no painel de controlo"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "mostrar na navegação lateral"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "ordenar campo"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "ordenar inversamente"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "o título contém"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "o conteúdo contém"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "O NSA é"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "o correspondente é"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "o tipo de documento é"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "está na entrada"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "tem etiqueta"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "tem qualquer etiqueta"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "criado antes"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "criado depois"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "ano criada é"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "mês criado é"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "dia criado é"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "adicionada antes"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "adicionado depois de"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modificado antes de"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modificado depois de"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "não tem etiqueta"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "não possui um NSA"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "título ou conteúdo contém"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "consulta de texto completo"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "mais como este"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "tem etiquetas em"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tipo de regra"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valor"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "regra de filtragem"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "regras de filtragem"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Expressão regular inválida: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Cor invalida."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Tipo de arquivo %(type)s não suportado"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "O Paperless-ngx está a carregar..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx com sessão terminada"
@@ -416,71 +444,91 @@ msgstr "Palavra-passe"
msgid "Sign in"
msgstr "Iniciar sessão"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Checo"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Dinamarquês"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Inglês (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Espanhol"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Français"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburguês"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Nederlandse"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polaco"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Português"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Romeno"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Sueco"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administração do Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Metadados"
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 "Atribuir meta-dados aos documentos consumidos automaticamente através desta regra. Se você não atribuir etiquetas, tipos ou correspondentes aqui, o paperless ainda assim processará todas as regras correspondentes que tenha definido."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Correio Paperless"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "conta de email"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "contas de email"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Sem encriptação"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Utilizar SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Utilizar STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Servidor IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Porto IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Por norma é o 143 sem encriptação e conexões STARTTLS, e o 993 para conexões com SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Segurança IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "nome de utilizador"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "palavra-passe"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "conjunto de caracteres"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "O conjunto de caracteres a utilizar ao comunicar com um servidor de email, tal como 'UTF-8' ou 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "regra de correio"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "regras de correio"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Processar anexos apenas."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Processar todos os ficheiros, incluindo ficheiros 'embutidos (inline)'."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar emails lidos"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar o email, não processar emails marcados"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Mover para uma diretoria específica"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Excluir"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Mover para uma diretoria específica"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar emails lidos"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar o email, não processar emails marcados"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Utilizar o assunto como título"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Utilizar o nome do anexo como título"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Não atribuir um correspondente"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Utilizar o endereço de email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Utilizar nome (ou endereço de email se não disponível)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Utilizar o correspondente selecionado abaixo"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "ordem"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "conta"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "directoria"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Sub-pastas devem ser separadas por pontos."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrar de"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrar assunto"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrar corpo"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrar nome do arquivo anexo"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consumir apenas documentos que correspondam inteiramente ao nome de arquivo se especificado. Genéricos como *.pdf ou *fatura* são permitidos. Não é sensível a letras maiúsculas/minúsculas."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "idade máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Especificado em dias."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tipo de anexo"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Anexos embutidos incluem imagens incorporadas, por isso é melhor combinar esta opção com um filtro de nome do arquivo."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "ação"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parâmetro de ação"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parâmetros adicionais para a ação selecionada acima, isto é, a pasta alvo da ação mover para pasta. Sub-pastas devem ser separadas por pontos."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "atribuir titulo de"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "atribuir esta etiqueta"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "atribuir este tipo de documento"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "atribuir correspondente de"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "atribuir este correspondente"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-14 13:34\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Documente"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Orice cuvânt"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Toate cuvintele"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Potrivire exactă"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Expresie regulată"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Mod neatent"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automat"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "nume"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "potrivire"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritm de potrivire"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "nu ține cont de majuscule"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "corespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "corespondenți"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "culoare"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "este etichetă inbox"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Marchează aceasta eticheta ca etichetă inbox: Toate documentele nou consumate primesc aceasta eticheta."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etichetă"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etichete"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tip de document"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipuri de document"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Necriptat"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Criptat cu GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titlu"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "conținut"
#: documents/models.py:122
#: documents/models.py:142
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 căutare."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "tip MIME"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "sumă de control"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Suma de control a documentului original."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "suma de control a arhivei"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Suma de control a documentului arhivat."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "creat"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "modificat"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tip de stocare"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "adăugat"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "nume fișier"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Numele curent al fișierului stocat"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "nume fișier arhiva"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Numele curent al arhivei stocate"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "număr serial in arhiva"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Poziția acestui document in arhiva fizica."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "document"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "documente"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "depanare"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informații"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "avertizare"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "eroare"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "critic"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grup"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "mesaj"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nivel"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "jurnal"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "jurnale"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "vizualizare"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "vizualizări"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "utilizator"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "afișează pe tabloul de bord"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "afișează in bara laterala"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "sortează camp"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "sortează invers"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "titlul conține"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "conținutul conține"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "Avizul prealabil de expediție este"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "corespondentul este"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "tipul documentului este"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "este în inbox"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "are eticheta"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "are orice eticheta"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "creat înainte de"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "creat după"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "anul creării este"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "luna creării este"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "ziua creării este"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "adăugat înainte de"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "adăugat după"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "modificat înainte de"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "modificat după"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "nu are etichetă"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "nu are aviz prealabil de expediție"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "titlul sau conținutul conține"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "query fulltext"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "mai multe ca aceasta"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "are etichete în"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tip de regula"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "valoare"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "regulă de filtrare"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "reguli de filtrare"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Expresie regulată invalida: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Culoare invalidă."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Tip de fișier %(type)s nesuportat"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx se încarcă..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx s-a deconectat"
@@ -416,71 +444,91 @@ msgstr "Parolă"
msgid "Sign in"
msgstr "Conectare"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engleză (Americană)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Cehă"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Daneză"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Germană"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engleză (Britanică)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spaniolă"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Franceză"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italiană"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luxemburgheză"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Olandeză"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Poloneză"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugheză (Brazilia)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugheză"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Română"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Rusă"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Suedeză"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Administrare Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Metadate"
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 î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
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Email Paperless"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "cont de email"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "conturi de email"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Fără criptare"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Folosește SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Folosește STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "server IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "port IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "De obicei este 143 pentru conexiuni necriptate și STARTTLS, sau 993 pentru conexiuni SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "securitate IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "nume"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "parolă"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Set de caractere"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Setul de caractere folosit la comunicarea cu serverul de e-mail, cum ar fi \"UTF-8\" sau \"US-ASCII\"."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "regulă email"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "reguli email"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Procesează doar atașamentele."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Procesează toate fișierele, inclusiv atașamentele „inline”."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Marchează ca citit, nu procesa email-uri citite"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Marchează, nu procesa email-uri marcate"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Mută în directorul specificat"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Șterge"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Mută în directorul specificat"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Marchează ca citit, nu procesa email-uri citite"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Marchează, nu procesa email-uri marcate"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Utilizează subiectul ca titlu"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Utilizează numele fișierului atașat ca titlu"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Nu atribui un corespondent"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Folosește adresa de email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Folosește numele (dacă nu exista, folosește adresa de email)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Folosește corespondentul selectat mai jos"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "ordonează"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "cont"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "director"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Subdosarele trebuie separate prin puncte."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrează de la"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrează subiect"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrează corpul email-ului"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrează numele fișierului atașat"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
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:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "vârsta maximă"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Specificată in zile."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tip atașament"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
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:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "acţiune"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parametru acțiune"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parametru adițional pentru acțiunea definită mai sus (ex. directorul în care să se realizeze o mutare). Subdosarele trebuie separate prin puncte."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "atribuie titlu din"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "atribuie această etichetă"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "atribuie acest tip"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "atribuie corespondent din"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "atribuie acest corespondent"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-30 11:46\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Документы"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Любые слова"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Все слова"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Точное соответствие"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Регулярное выражение"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "\"Нечёткий\" режим"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Автоматически"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "имя"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "соответствие"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "алгоритм сопоставления"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "без учёта регистра"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "корреспондент"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "корреспонденты"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "цвет"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "это входящий тег"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Отметить этот тег как «Входящий»: все вновь добавленные документы будут помечены тегами «Входящие»."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "тег"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "теги"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "тип документа"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "типы документов"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "не зашифровано"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Зашифровано с помощью GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "заголовок"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "содержимое"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Это поле используется в основном для поиска."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "тип Mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "контрольная сумма"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Контрольная сумма оригинального документа."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "контрольная сумма архива"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Контрольная сумма архивного документа."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "создано"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "изменено"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "тип хранилища"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "добавлено"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "имя файла"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Текущее имя файла в хранилище"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "имя файла архива"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Текущее имя файла архива в хранилище"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "архивный номер (АН)"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Позиция этого документа в вашем физическом архиве документов."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "документ"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "документы"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "отладка"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "информация"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "предупреждение"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "ошибка"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "критическая"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "группа"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "сообщение"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "уровень"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "журнал"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "логи"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "сохранённое представление"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "сохраненные представления"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "пользователь"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "показать на панели"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "показать в боковой панели"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "Поле сортировки"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "обратная сортировка"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "заголовок содержит"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "содержимое содержит"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "АН"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "корреспондент"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "тип документа"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "во входящих"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "есть тег"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "есть любой тег"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "создан до"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "создан после"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "год создания"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "месяц создания"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "день создания"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "добавлен до"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "добавлен после"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "изменен до"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "изменен после"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "не имеет тега"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "не имеет архивного номера"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "Название или содержимое включает"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "полнотекстовый запрос"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "больше похожих"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "имеет теги в"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "Тип правила"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "значение"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "Правило фильтрации"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "правила фильтрации"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "неверное регулярное выражение: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Неверный цвет."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Тип файла %(type)s не поддерживается"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx загружается..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Выполнен выход из Paperless-ngx"
@@ -416,71 +444,91 @@ msgstr "Пароль"
msgid "Sign in"
msgstr "Вход"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Английский (США)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Чешский"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Датский"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Немецкий"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Английский (Великобритании)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Испанский"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Французский"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Итальянский"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Люксембургский"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Датский"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Польский"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Португальский (Бразилия)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Португальский"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Румынский"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Русский"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Шведский"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Администрирование Paperless-ngx"
@@ -516,199 +564,203 @@ msgstr "Метаданные"
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 "Автоматически назначать метаданные документам, полученным из этого правила. Если вы не назначаете здесь теги, типы или корреспонденты, paperless все равно будут обрабатывать все соответствующие правила, которые вы определили."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Безбумажная почта"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "почтовый ящик"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "Почтовые ящики"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Без шифрования"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Использовать SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Использовать STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "Сервер IMAP"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "Порт IMAP"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Обычно это 143 для нешифрованных и STARTTLS соединений и 993 для SSL-соединений."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Безопасность IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "Имя пользователя"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "пароль"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Кодировка"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Кодировка, используемая при общении с почтовым сервером, например 'UTF-8' или 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "правило почты"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "правила почты"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Обрабатывать только вложения."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Обрабатывать все файлы, включая 'встроенные' вложения."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Пометить как прочитанное, не обрабатывать прочитанные письма"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Пометить почту, не обрабатывать помеченные письма"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Переместить в указанную папку"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Удалить"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Переместить в указанную папку"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Пометить как прочитанное, не обрабатывать прочитанные письма"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Пометить почту, не обрабатывать помеченные письма"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Тема в качестве заголовка"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Использовать имя вложенного файла как заголовок"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Не назначать корреспондента"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Использовать email адрес"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Использовать имя (или адрес электронной почты, если недоступно)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Использовать корреспондента, выбранного ниже"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "порядок"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "Учётная запись"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "каталог"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Подпапки должны быть разделены точками."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "фильтр по отправителю"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "фильтр по теме"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "фильтр по тексту сообщения"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "фильтр по имени вложения"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Обрабатывать только документы, которые полностью совпадают с именем файла (если оно указано). Маски, например *.pdf или *счет*, разрешены. Без учёта регистра."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "Максимальный возраст"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Указывается в днях."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "Тип вложения"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Вложенные вложения включая встраиваемые изображения. Лучше совместить эту опцию с фильтром по имени вложения."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "действие"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "параметр действия"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Дополнительный параметр для указанного выше действия, то есть целевая папка операции перемещения в папку. Вложенные папки должны быть разделены точками."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "назначить заголовок из"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "назначить этот тег"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "назначить этот тип документа"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "назначить корреспондента из"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "назначить этого корреспондента"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-12 18:21\n"
"POT-Creation-Date: 2022-05-19 15:24-0700\n"
"PO-Revision-Date: 2022-05-19 22:26\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Language: sk_SK\n"
@@ -17,369 +17,393 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenty"
#: documents/models.py:32
#: documents/models.py:27
msgid "Any word"
msgstr "Akékoľvek slovo"
#: documents/models.py:33
#: documents/models.py:28
msgid "All words"
msgstr "Všetky slová"
#: documents/models.py:34
#: documents/models.py:29
msgid "Exact match"
msgstr "Presná zhoda"
#: documents/models.py:35
#: documents/models.py:30
msgid "Regular expression"
msgstr "Normálny výraz"
#: documents/models.py:36
#: documents/models.py:31
msgid "Fuzzy word"
msgstr "Nejasné slovo"
#: documents/models.py:37
#: documents/models.py:32
msgid "Automatic"
msgstr "Automatické"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:35 documents/models.py:343 paperless_mail/models.py:16
#: paperless_mail/models.py:79
msgid "name"
msgstr "meno"
#: documents/models.py:42
#: documents/models.py:37
msgid "match"
msgstr "zhoda"
#: documents/models.py:45
#: documents/models.py:40
msgid "matching algorithm"
msgstr "zhodový algoritmus"
#: documents/models.py:48
#: documents/models.py:45
msgid "is insensitive"
msgstr "je necitlivý"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:58 documents/models.py:113
msgid "correspondent"
msgstr "korešpondencia"
#: documents/models.py:62
#: documents/models.py:59
msgid "correspondents"
msgstr "zodpovedá"
#: documents/models.py:67
#: documents/models.py:64
msgid "color"
msgstr "farba"
#: documents/models.py:70
#: documents/models.py:67
msgid "is inbox tag"
msgstr "je štítok pošty"
#: documents/models.py:73
#: documents/models.py:70
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Označí tento štítok ako štítok doručenej pošty: Všetky novo spotrebované dokumenty budú označené štítkami doručenej pošty."
#: documents/models.py:79
#: documents/models.py:76
msgid "tag"
msgstr "štítok"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:77 documents/models.py:151
msgid "tags"
msgstr "štítky"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:82 documents/models.py:133
msgid "document type"
msgstr "typ dokumentu"
#: documents/models.py:86
#: documents/models.py:83
msgid "document types"
msgstr "typy dokumentov"
#: documents/models.py:94
#: documents/models.py:88
msgid "path"
msgstr ""
#: documents/models.py:94 documents/models.py:122
msgid "storage path"
msgstr ""
#: documents/models.py:95
msgid "storage paths"
msgstr ""
#: documents/models.py:103
msgid "Unencrypted"
msgstr "Nešifrované"
#: documents/models.py:95
#: documents/models.py:104
msgid "Encrypted with GNU Privacy Guard"
msgstr "Šifrované pomocou GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:125
msgid "title"
msgstr "názov"
#: documents/models.py:119
#: documents/models.py:137
msgid "content"
msgstr "obsah"
#: documents/models.py:122
#: documents/models.py:140
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Nespracované, iba textové údaje dokumentu. Toto pole sa primárne používa na vyhľadávanie."
#: documents/models.py:127
#: documents/models.py:145
msgid "mime type"
msgstr ""
#: documents/models.py:134
#: documents/models.py:155
msgid "checksum"
msgstr "kontrolný súčet"
#: documents/models.py:138
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr "Kontrolný súčet originálneho dokumentu."
#: documents/models.py:142
#: documents/models.py:163
msgid "archive checksum"
msgstr "archivovať kontrolný súčet"
#: documents/models.py:147
#: documents/models.py:168
msgid "The checksum of the archived document."
msgstr "Kontrolný súčet archivovaného dokumentu."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:171 documents/models.py:324
msgid "created"
msgstr "vytovrené"
#: documents/models.py:153
#: documents/models.py:174
msgid "modified"
msgstr "upravené"
#: documents/models.py:157
#: documents/models.py:181
msgid "storage type"
msgstr "typ úložiska"
#: documents/models.py:165
#: documents/models.py:189
msgid "added"
msgstr "pridané"
#: documents/models.py:169
#: documents/models.py:196
msgid "filename"
msgstr "názov súboru"
#: documents/models.py:175
#: documents/models.py:202
msgid "Current filename in storage"
msgstr "Aktuálny názov dokumentu v úložisku"
#: documents/models.py:179
#: documents/models.py:206
msgid "archive filename"
msgstr "archovovať názov súboru"
#: documents/models.py:185
#: documents/models.py:212
msgid "Current archive filename in storage"
msgstr "Aktuálny archovivaný názov dokumentu v úložisku"
#: documents/models.py:189
#: documents/models.py:216
msgid "archive serial number"
msgstr "archivovať sériové číslo"
#: documents/models.py:195
#: documents/models.py:222
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:201
#: documents/models.py:228
msgid "document"
msgstr ""
#: documents/models.py:202
#: documents/models.py:229
msgid "documents"
msgstr ""
#: documents/models.py:280
#: documents/models.py:307
msgid "debug"
msgstr ""
#: documents/models.py:281
#: documents/models.py:308
msgid "information"
msgstr ""
#: documents/models.py:282
#: documents/models.py:309
msgid "warning"
msgstr ""
#: documents/models.py:283
#: documents/models.py:310
msgid "error"
msgstr ""
#: documents/models.py:284
#: documents/models.py:311
msgid "critical"
msgstr ""
#: documents/models.py:287
#: documents/models.py:314
msgid "group"
msgstr ""
#: documents/models.py:289
#: documents/models.py:316
msgid "message"
msgstr ""
#: documents/models.py:292
#: documents/models.py:319
msgid "level"
msgstr ""
#: documents/models.py:299
#: documents/models.py:328
msgid "log"
msgstr ""
#: documents/models.py:300
#: documents/models.py:329
msgid "logs"
msgstr ""
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:339 documents/models.py:392
msgid "saved view"
msgstr ""
#: documents/models.py:311
#: documents/models.py:340
msgid "saved views"
msgstr ""
#: documents/models.py:313
#: documents/models.py:342
msgid "user"
msgstr ""
#: documents/models.py:317
#: documents/models.py:346
msgid "show on dashboard"
msgstr ""
#: documents/models.py:320
#: documents/models.py:349
msgid "show in sidebar"
msgstr ""
#: documents/models.py:324
#: documents/models.py:353
msgid "sort field"
msgstr ""
#: documents/models.py:326
#: documents/models.py:358
msgid "sort reverse"
msgstr ""
#: documents/models.py:331
#: documents/models.py:363
msgid "title contains"
msgstr ""
#: documents/models.py:332
#: documents/models.py:364
msgid "content contains"
msgstr ""
#: documents/models.py:333
#: documents/models.py:365
msgid "ASN is"
msgstr ""
#: documents/models.py:334
#: documents/models.py:366
msgid "correspondent is"
msgstr ""
#: documents/models.py:335
#: documents/models.py:367
msgid "document type is"
msgstr ""
#: documents/models.py:336
#: documents/models.py:368
msgid "is in inbox"
msgstr ""
#: documents/models.py:337
#: documents/models.py:369
msgid "has tag"
msgstr ""
#: documents/models.py:338
#: documents/models.py:370
msgid "has any tag"
msgstr ""
#: documents/models.py:339
#: documents/models.py:371
msgid "created before"
msgstr ""
#: documents/models.py:340
#: documents/models.py:372
msgid "created after"
msgstr ""
#: documents/models.py:341
#: documents/models.py:373
msgid "created year is"
msgstr ""
#: documents/models.py:342
#: documents/models.py:374
msgid "created month is"
msgstr ""
#: documents/models.py:343
#: documents/models.py:375
msgid "created day is"
msgstr ""
#: documents/models.py:344
#: documents/models.py:376
msgid "added before"
msgstr ""
#: documents/models.py:345
#: documents/models.py:377
msgid "added after"
msgstr ""
#: documents/models.py:346
#: documents/models.py:378
msgid "modified before"
msgstr ""
#: documents/models.py:347
#: documents/models.py:379
msgid "modified after"
msgstr ""
#: documents/models.py:348
#: documents/models.py:380
msgid "does not have tag"
msgstr ""
#: documents/models.py:349
#: documents/models.py:381
msgid "does not have ASN"
msgstr ""
#: documents/models.py:350
#: documents/models.py:382
msgid "title or content contains"
msgstr ""
#: documents/models.py:351
#: documents/models.py:383
msgid "fulltext query"
msgstr ""
#: documents/models.py:352
#: documents/models.py:384
msgid "more like this"
msgstr ""
#: documents/models.py:353
#: documents/models.py:385
msgid "has tags in"
msgstr ""
#: documents/models.py:363
#: documents/models.py:395
msgid "rule type"
msgstr ""
#: documents/models.py:365
#: documents/models.py:397
msgid "value"
msgstr ""
#: documents/models.py:368
#: documents/models.py:400
msgid "filter rule"
msgstr ""
#: documents/models.py:369
#: documents/models.py:401
msgid "filter rules"
msgstr ""
#: documents/serialisers.py:64
#: documents/serialisers.py:63
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:185
#: documents/serialisers.py:184
msgid "Invalid color."
msgstr ""
#: documents/serialisers.py:459
#: documents/serialisers.py:491
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:22
#: documents/serialisers.py:574
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +440,91 @@ msgstr ""
msgid "Sign in"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:338
msgid "English (US)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:339
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:340
msgid "Czech"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:341
msgid "Danish"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:342
msgid "German"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:343
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:344
msgid "Spanish"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:345
msgid "French"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:346
msgid "Italian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:347
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:348
msgid "Dutch"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:349
msgid "Polish"
msgstr ""
#: paperless/settings.py:310
#: paperless/settings.py:350
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:311
#: paperless/settings.py:351
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:312
#: paperless/settings.py:352
msgid "Romanian"
msgstr ""
#: paperless/settings.py:313
#: paperless/settings.py:353
msgid "Russian"
msgstr ""
#: paperless/settings.py:314
#: paperless/settings.py:354
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:355
msgid "Serbian"
msgstr ""
#: paperless/settings.py:356
msgid "Swedish"
msgstr ""
#: paperless/urls.py:139
#: paperless/settings.py:357
msgid "Turkish"
msgstr ""
#: paperless/settings.py:358
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:153
msgid "Paperless-ngx administration"
msgstr ""
@@ -516,199 +560,199 @@ msgstr ""
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 ""
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr ""
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr ""
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr ""
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr ""
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr ""
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr ""
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr ""
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr ""
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr ""
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr ""
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr ""
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr ""
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr ""
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:70
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:92
#: paperless_mail/models.py:71
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:74
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:102
#: paperless_mail/models.py:75
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:76
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:104
#: paperless_mail/models.py:77
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:109
#: paperless_mail/models.py:81
msgid "order"
msgstr ""
#: paperless_mail/models.py:115
#: paperless_mail/models.py:87
msgid "account"
msgstr ""
#: paperless_mail/models.py:119
#: paperless_mail/models.py:91
msgid "folder"
msgstr ""
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
#: paperless_mail/models.py:95
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:101
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:129
#: paperless_mail/models.py:107
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:132
#: paperless_mail/models.py:113
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:136
#: paperless_mail/models.py:120
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:141
#: paperless_mail/models.py:125
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:132
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:134
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:152
#: paperless_mail/models.py:138
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:156
#: paperless_mail/models.py:142
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:162
#: paperless_mail/models.py:148
msgid "action"
msgstr ""
#: paperless_mail/models.py:168
#: paperless_mail/models.py:154
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:159
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:181
#: paperless_mail/models.py:167
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:189
#: paperless_mail/models.py:175
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:197
#: paperless_mail/models.py:183
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:201
#: paperless_mail/models.py:187
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:211
#: paperless_mail/models.py:197
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-14 16:48\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenti"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Katerakoli beseda"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Vse besede"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Točno ujemanje"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regularni izraz"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Fuzzy beseda"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Samodejno"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "ime"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "ujemanje"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritem ujemanja"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "brez razlikovanje velikosti črk"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "dopisnik"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "dopisniki"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "barva"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "je vhodna oznaka"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Označi to oznako kot vhodno oznako: vsi na novo obdelani dokumenti bodo označeni z vhodno oznako."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "oznaka"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "oznake"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "vrsta dokumenta"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "vrste dokumentov"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Nešifrirano"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Šifrirano z GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "naslov"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "vsebina"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Neobdelani besedilni podatki dokumenta. To polje se uporablja predvsem za iskanje."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "vrsta mime"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "kontrolna vsota"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrolna vsota izvirnega dokumenta."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arhivska kontrolna vsota"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrolna vsota arhiviranega dokumenta."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "ustvarjeno"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "spremenjeno"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "vrsta shrambe"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "dodano"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "ime datoteke"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Trenutno ime dokumenta v shrambi"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "ime arhivske datoteke"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Trenutno ime arhivske datoteke v shrambi"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "arhivska serijska številka"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Položaj tega dokumenta v vašem fizičnem arhivu dokumentov."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumenti"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "razhroščevanje"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informacija"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "opozorilo"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "napaka"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritično"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "skupina"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "sporočilo"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nivo"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "dnevnik"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "dnevniki"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "shranjeni pogled"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "shranjeni pogledi"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "uporabnik"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "prikaži na pregledni plošči"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "prikaži v stranski vrstici"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "polje za razvrščanje"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "razvrsti obratno"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "naslov vsebuje"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "vsebina vsebuje"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN je"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "dopisnik je"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "vrsta dokumenta je"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "je v prejetem"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "ima oznako"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "ima katero koli oznako"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "ustvarjeno pred"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "ustvarjeno po"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "leto nastanka"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "mesec nastanka"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "dan nastanka"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "dodano pred"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "dodano po"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "spremenjeno pred"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "spremenjeno po"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "nima oznake"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "nima ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "naslov ali vsebina vsebujeta"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "polnobesedilna poizvedba"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "več takih"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "ima oznake"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "vrsta pravila"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "vrednost"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filtriraj pravilo"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filtriraj pravila"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Neveljaven splošen izraz: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Napačna barva."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Vrsta datoteke %(type)s ni podprta"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx se nalaga..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx odjavljen"
@@ -416,71 +444,91 @@ msgstr "Geslo"
msgid "Sign in"
msgstr "Prijava"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Angleščina (ZDA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Češčina"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danščina"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Nemščina"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Angleščina (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Španščina"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francoščina"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italijanščina"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luksemburški"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Nizozemščina"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Poljščina"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugalščina (Brazilija)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugalščina"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Romunščina"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ruščina"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Švedščina"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx administracija"
@@ -516,199 +564,203 @@ msgstr "Metapodatki"
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 "Samodejno dodelite metapodatke dokumentom, uporabljenim s tem pravilom. Če tukaj ne dodelite oznak, vrst ali korespondentov, bo paperless še vedno obdelal vsa ujemanja, ki ste jih definirali."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless pošta"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "poštni račun"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "poštni računi"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Brez šifriranja"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Uporaba SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Uporabi STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP strežnik"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP vrata"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "To je običajno 143 za nešifrirane in STARTTLS povezave ter 993 za povezave SSL."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "Varnost IMAP"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "uporabniško ime"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "geslo"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "nabor znakov"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Nabor znakov za uporabo pri komunikaciji s poštnim strežnikom, na primer 'UTF-8' ali 'US-ASCII'."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "poštno pravilo"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "poštna pravila"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Obdelujte samo priloge."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Obdelajte vse datoteke, vključno z \"vgrajenimi\" prilogami."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Označi kot prebrano, ne obdelujte prebrane pošte"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Označite pošto z zastavico, ne obdelujte označene pošte"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Premakni v določeno mapo"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Izbriši"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Premakni v določeno mapo"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Označi kot prebrano, ne obdelujte prebrane pošte"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Označite pošto z zastavico, ne obdelujte označene pošte"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Uporabite zadevo kot naslov"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Uporabite ime datoteke priloge kot naslov"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Ne dodelite dopisnika"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Uporabite poštni naslov"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Uporabi ime (ali e-poštni naslov, če ime ni na voljo)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Uporabite dopisnika, izbranega spodaj"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "vrstni red"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "račun"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "mapa"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Pod mape morajo biti ločene s pikami."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtriraj prejeto"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtriraj zadevo"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtriraj vsebino"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtriraj ime datoteke priloge"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Uporabljajte samo dokumente, ki se v celoti ujemajo s tem imenom datoteke, če je navedeno. Dovoljeni so nadomestni znaki, kot sta *.pdf ali *račun*. Neobčutljiva na velike in male črke."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "najvišja starost"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Določeno v dnevih."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "vrsta priponke"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Vgrajene priloge vključujejo vdelane slike, zato je najbolje, da to možnost združite s filtrom imen datoteke."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "dejanja"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "parameter delovanja"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Dodatni parameter za zgoraj izbrano dejanje, to je ciljna mapa dejanja premika v mapo. Podmape morajo biti ločene s pikami."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "dodeli naslov iz"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "dodeli to oznako"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "dodeli to vrsto dokumenta"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "dodeli dopisnika iz"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "dodeli tega dopisnika"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-05-13 03:55\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokumenta"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Bilo koja reč"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Sve reči"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Tačno podudaranje"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Regularni izraz"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Fuzzy reč"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatski"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "naziv"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "poklapanje"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "algoritam podudaranja"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr ""
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "dopisnik"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "dopisnici"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "boja"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "je oznaka prijemnog sandučeta"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr ""
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "oznaka"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "oznake"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "tip dokumenta"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "tipovi dokumenta"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr ""
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr ""
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "naslov"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "sadržaj"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr ""
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime tip"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "kontrolna suma"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrolna suma originalnog dokumenta."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arhivni checksum"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrolna suma arhivnog dokumenta."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "kreirano"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "izmenjeno"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "tip skladišta"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "dodato"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "naziv fajla"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr ""
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "naziv fajla arhive"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr ""
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "arhivski serijski broj"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr ""
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokumenta"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "okloni greške"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "informacija"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "upozorenje"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "grеška"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritično"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupa"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "poruka"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nivo"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "log"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "logovi"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "sačuvani prikaz"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "sačuvani prikazi"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "korisnik"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "prikaži na kontrolnoj tabli"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "prikaži u bočnoj traci"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "polje za sortiranje"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr ""
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "naslov sadrži"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "sadržaj sadrži"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN je"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "dopisnik je"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "tip dokumenta je"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "je u prijemnog sandučetu"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "ima oznaku"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "ima bilo koju oznaku"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "kreiran pre"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "kreiran posle"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "godina kreiranja je"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "mesec kreiranja je"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "dan kreiranja je"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "dodat pre"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "dodat posle"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "izmenjen pre"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "izmenjen posle"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "nema oznaku"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "nema ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "naslov i sadržaj sadrži"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr ""
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "više ovakvih"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "ima oznake u"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "tip pravila"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "vrednost"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filter pravilo"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filter pravila"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr ""
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Nevažeća boja."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx se učitava..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +444,91 @@ msgstr "Lozinka"
msgid "Sign in"
msgstr "Prijavite se"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engleski (US)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Češki"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danski"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Nemački"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engleski (UK)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Španski"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Francuski"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italijanski"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Luksemburški"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Holandski"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Poljski"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugalski (Brazil)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugalski"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumunski"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ruski"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Švedski"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx administracija"
@@ -516,199 +564,203 @@ msgstr "Metapodaci"
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 ""
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless mejl"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "mejl nalog"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "mejl nalozi"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr ""
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Koristi SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Koristi STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP port"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr ""
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP bezbednost"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "korisničko ime"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "lozinka"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "karakter set"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Obriši"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Ne dodeljuj dopisnika"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Koristi mejl adresu"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Koristi naziv (ili mejl adresu ako nije dostupno)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Koristi dopisnika ispod"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "raspored"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "nalog"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "folder"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Podfolderi moraju biti odvojeni tačkama."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filter od"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filter naslov"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filter telo poruke"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filter naziv fajla priloga"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "tip priloga"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "radnja"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "dodeli naziv iz"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "dodeli ovu oznaku"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "dodeli ovaj tip dokumenta"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "dodeli dopisnika iz"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "dodeli ovog dopisnika"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-02 22:29\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Dokument"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Valfritt ord"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Alla ord"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Exakt matchning"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Reguljära uttryck"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Ungefärligt ord"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Automatisk"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "namn"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "träff"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "matchande algoritm"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "är ej skiftlägeskänsligt"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "korrespondent"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "korrespondenter"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "färg"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "är inkorgsetikett"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markerar denna etikett som en inkorgsetikett: Alla nyligen konsumerade dokument kommer att märkas med inkorgsetiketter."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etikett"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiketter"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "dokumenttyp"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "dokumenttyper"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Okrypterad"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "Krypterad med GNU Privacy Guard"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "titel"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "innehåll"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Dokumentets obearbetade textdata. Detta fält används främst för sökning."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "MIME-typ"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "kontrollsumma"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Kontrollsumman för originaldokumentet."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arkivera kontrollsumma"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Kontrollsumman för det arkiverade dokumentet."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "skapad"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "ändrad"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "lagringstyp"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "tillagd"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "filnamn"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Nuvarande filnamn i lagringsutrymmet"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "arkivfilnamn"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Nuvarande arkivfilnamn i lagringsutrymmet"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "serienummer (arkivering)"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Placeringen av detta dokument i ditt fysiska dokumentarkiv."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "dokument"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "dokument"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "felsök"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr ""
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "varning"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "fel"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritisk"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grupp"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "meddelande"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "nivå"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "logg"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "loggar"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "sparad vy"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "sparade vyer"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "användare"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "visa på kontrollpanelen"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "visa i sidofältet"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "sortera fält"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "sortera omvänt"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "titel innehåller"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "innehåll innehåller"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN är"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "korrespondent är"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "dokumenttyp är"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "är i inkorgen"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "har etikett"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "har någon etikett"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "skapad före"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "skapad efter"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "skapat år är"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "skapad månad är"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "skapad dag är"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "tillagd före"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "tillagd efter"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "ändrad före"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "ändrad efter"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "har inte etikett"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "har inte ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "titel eller innehåll innehåller"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "fulltextfråga"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "mer som detta"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr ""
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "regeltyp"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "värde"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filtrera regel"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filtrera regler"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ogiltigt reguljärt uttryck: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Ogiltig färg."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Filtypen %(type)s stöds inte"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr ""
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr ""
@@ -416,71 +444,91 @@ msgstr "Lösenord"
msgid "Sign in"
msgstr "Logga in"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "Engelska (USA)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Tyska"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "Engelska (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "Spanska"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Franska"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "Italienska"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Holländska"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polska"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portugisiska (Brasilien)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portugisiska"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Rumänska"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Ryska"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "Svenska"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr ""
@@ -516,199 +564,203 @@ msgstr ""
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 "Tilldela metadata till dokument som konsumeras från denna regel automatiskt. Om du inte tilldelar etiketter, typer eller korrespondenter här kommer paperless fortfarande att behandla alla matchande regler som du har definierat."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless e-post"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "e-postkonto"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "e-postkonton"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Ingen kryptering"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "Använd SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "Använd STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP-server"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP-port"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Detta är vanligtvis 143 för okrypterade och STARTTLS-anslutningar, och 993 för SSL-anslutningar."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP-säkerhet"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "användarnamn"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "lösenord"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "Teckenuppsättning"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Teckenuppsättningen som är tänkt att användas vid kommunikation med mailservern, exempelvis UTF-8 eller US-ASCII."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "e-postregel"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "e-postregler"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Behandla endast bilagor."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Behandla alla filer, inklusive infogade bilagor."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Markera som läst, bearbeta inte lästa meddelanden"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "Flagga meddelandet, bearbeta inte flaggade meddelanden"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Flytta till angiven mapp"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Radera"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Flytta till angiven mapp"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Markera som läst, bearbeta inte lästa meddelanden"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "Flagga meddelandet, bearbeta inte flaggade meddelanden"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Använd ämne som titel"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Använd bilagans filnamn som titel"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Tilldela inte en korrespondent"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "Använd e-postadress"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "Använd namn (eller e-postadress om inte tillgängligt)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Använd korrespondent som valts nedan"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "ordning"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "konto"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "mapp"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Undermappar måste vara separerade med punkter."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "filtrera från"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "filtrera ämne"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "filtrera kropp"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "filtrera filnamn för bilaga"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Konsumera endast dokument som matchar exakt detta filnamn, om det är angivet. Jokertecken som *.pdf eller *faktura* är tillåtna. Ej skiftlägeskänsligt."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "högsta ålder"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Anges i dagar."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "typ av bilaga"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Infogade bilagor inkluderar inbäddade bilder, så det är bäst att kombinera detta alternativ med ett filnamnsfilter."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "åtgärd"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "åtgärdsparameter"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Ytterligare parametrar för åtgärden som valts ovan, d.v.s. målmappen för åtgärden \"flytta till angiven mapp\". Undermappar måste vara separerade med punkter."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "tilldela titel från"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "tilldela denna etikett"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "tilldela den här dokumenttypen"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "tilldela korrespondent från"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "tilldela denna korrespondent"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-25 00:58\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "Belgeler"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "Herhangi bir kelime"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "Tüm Kelimeler"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "Tam eşleşme"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "Düzenli ifade"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "Fuzzy Kelime"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "Otomatik"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "ad"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "eşleme"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "eşleştirme algoritması"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "duyarsızdır"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "muhabir"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "muhabirler"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "renk"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "gelen kutu etiketidir"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Bu etiketi, gelen kutusu etiketi olarak işaretle: Tüm yeni olarak tüketilen dökümanlar gelen kutusu etiketi ile etiketlendirileceklerdir."
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "etiket"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "etiketler"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "belge türü"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "belge türleri"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr ""
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr ""
#: documents/models.py:97
msgid "storage paths"
msgstr ""
#: documents/models.py:105
msgid "Unencrypted"
msgstr "Şifresiz"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "GNU Gizlilik Koruması ile şifrelendirilmiştir"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "başlık"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "içerik"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Belgenin ham, yalnızca metin verileri. Bu alan öncelikle arama için kullanılır."
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime türü"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "sağlama toplamı"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "Orjinal belgenin sağlama toplamı."
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "arşiv sağlama toplamı"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "Arşivlenen belgenin sağlama toplamı."
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "oluşturuldu"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "değiştirilmiş"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "depolama türü"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "eklendi"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "dosya adı"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "Depolamadaki geçerli dosya adı"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "arşiv dosya adı"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "Depolamadaki geçerli arşiv dosya adı"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "arşiv seri numarası"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "Bu belgenin fiziksel belge arşivinizdeki posizyonu."
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "belge"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "belgeler"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "hata ayıklama"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "bilgi"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "uyarı"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "hata"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "kritik"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "grup"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "mesaj"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "seviye"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "günlük"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "günlükler"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "kaydedilen görünüm"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "kaydedilen görünümler"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "kullanıcı"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "kontrol paneli'nde göster"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "kenar çubuğunda göster"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "alanı sıralama"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "tersine sırala"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "başlık içerir"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "içerik içerir"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN ise"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "muhabir ise"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "belge türü ise"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "gelen kutusunun içerisindedir"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "etiketine sahip"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "herhangi bir etiketine sahip"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "bu tarihten önce oluşturuldu"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "bu tarihten sonra oluşturuldu"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "oluşturma yili ise"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "oluşturma ayı ise"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "oluşturma günü ise"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "bu tarihten önce eklendi"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "bu tarihten sonra eklendi"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "bu tarihten önce değiştirldi"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "bu tarihten sonra değiştirldi"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "etikete sahip değil"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "ASN'e sahip değil"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "başlik veya içerik içerir"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "tam metin sorgulama"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "buna benzer daha"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "içerisinde etiketine sahip"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "kural türü"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "değer"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "filtreleme kuralı"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "filtreleme kuralları"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Hatalı Düzenli İfade: %(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "Geçersiz renk."
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "Dosya türü %(type)s desteklenmiyor"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr ""
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx yükleniyor..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr ""
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr ""
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx oturumunu kapatı"
@@ -416,71 +444,91 @@ msgstr "Parola"
msgid "Sign in"
msgstr "Oturum aç"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "İngilizce (Birleşik Devletler)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr ""
#: paperless/settings.py:341
msgid "Czech"
msgstr "Çekçe"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "Danca"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "Almanca"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "İngilizce (GB)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "İspanyolca"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "Fransızca"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "İtalyanca"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "Lüksemburgca"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "Hollandaca"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "Polonyaca"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "Portekizce (Brezilya)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "Portekizce"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "Romence"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "Rusça"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr ""
#: paperless/settings.py:356
msgid "Serbian"
msgstr ""
#: paperless/settings.py:357
msgid "Swedish"
msgstr "İsveççe"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr ""
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr ""
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx yönetimi"
@@ -516,199 +564,203 @@ msgstr "Metaveri"
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 "Bu kuraldan tüketilen belgelere otomatik olarak meta veriler atayın. Burada etiketler, türler veya muhabirler atamazsanız, paperless yinede tanımladığınız tüm eşleşen kuralları işlemeye devam eder."
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless e-posta"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "e-posta hesabı"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "e-posta hesapları"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "Şifreleme yok"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "SSL kullan"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "STARTTLS kullan"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP sunucusu"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP portu"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Şifresiz ve STARTTLS bağlantılar için bu genellikle 143 dür ve SSL bağlantılar için 993 dür."
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP güvenliği"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "kullanıcı adı"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "şifre"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "karakter seti"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "E-posta sunucusu ile iletişim kurulduğunda kullanılan 'UTF-8' veya 'US-ASCII' olan Karakter seti."
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "e-posta kuralı"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "e-posta kuralları"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "Sadece ekleri işle."
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "Tüm dosyaları işle, 'satır içi' ekletiler dahil."
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "Okunmuş olarak işaretle, okunmuş e-postaları işleme"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "E-Postayi etiketlendir, etiketlendirilmiş e-postaları işleme"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "Belirtilen klasöre taşı"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "Sil"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "Belirtilen klasöre taşı"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "Okunmuş olarak işaretle, okunmuş e-postaları işleme"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "E-Postayi etiketlendir, etiketlendirilmiş e-postaları işleme"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "Konuyu başlık olarak kullan"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "Eklenti dosyanın ismini başlık olarak kullan"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "Muhabir atanma"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "E-posta adresi kullan"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "İsim kullan (veya yoksa e-posta adresini)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "Aşağıdaki seçili olan muhabiri kullan"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "sıra"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "hesap"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "klasör"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "Alt klasörler noktalar ile ayrıştırılmalıdır."
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr ""
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "den filtrele"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "konuyu filtrele"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "içerik filtrele"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "eklenti ismini filtrele"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Yalnızca belirtilmişse bu dosya ismiyla tamamen eşleşen belgeleri tüket. *.pdf veya *fatura* gibi joker karakterlere izin verilir. Büyük küçük yazılımına duyarsız."
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "yaş sınırı"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "Gün olarak belirtilmiş."
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "eklenti türü"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Satır içi ekler katıştırılmış görüntüler içerir, bu nedenle bu seçeneği bir dosya adı filtresiyle birleştirmek en iyisidir."
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "eylem"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "eylem parametreleri"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Yukarıda seçilen eylem için ek parametre, örneğin klasöre taşı eyleminin hedef klasörü gibi. Alt klasörler noktalarla ayrıştırılmalıdır."
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "başlik atan"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "bu etiketi atan"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "bu dosya türünü atan"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "muhabiri atan"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "bu muhabiri atan"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-02 11:20-0800\n"
"PO-Revision-Date: 2022-03-29 08:58\n"
"POT-Creation-Date: 2022-07-08 14:11-0700\n"
"PO-Revision-Date: 2022-07-08 22:07\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -17,369 +17,397 @@ msgstr ""
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 14\n"
#: documents/apps.py:10
#: documents/apps.py:9
msgid "Documents"
msgstr "文档"
#: documents/models.py:32
#: documents/models.py:29
msgid "Any word"
msgstr "任意单词"
#: documents/models.py:33
#: documents/models.py:30
msgid "All words"
msgstr "所有单词"
#: documents/models.py:34
#: documents/models.py:31
msgid "Exact match"
msgstr "精确匹配"
#: documents/models.py:35
#: documents/models.py:32
msgid "Regular expression"
msgstr "正则表达式"
#: documents/models.py:36
#: documents/models.py:33
msgid "Fuzzy word"
msgstr "模糊单词"
#: documents/models.py:37
#: documents/models.py:34
msgid "Automatic"
msgstr "自动"
#: documents/models.py:40 documents/models.py:314 paperless_mail/models.py:23
#: paperless_mail/models.py:107
#: documents/models.py:37 documents/models.py:354 paperless_mail/models.py:16
#: paperless_mail/models.py:80
msgid "name"
msgstr "名称"
#: documents/models.py:42
#: documents/models.py:39
msgid "match"
msgstr "匹配"
#: documents/models.py:45
#: documents/models.py:42
msgid "matching algorithm"
msgstr "匹配算法"
#: documents/models.py:48
#: documents/models.py:47
msgid "is insensitive"
msgstr "忽略大小写"
#: documents/models.py:61 documents/models.py:104
#: documents/models.py:60 documents/models.py:115
msgid "correspondent"
msgstr "联系人"
#: documents/models.py:62
#: documents/models.py:61
msgid "correspondents"
msgstr "联系人"
#: documents/models.py:67
#: documents/models.py:66
msgid "color"
msgstr "颜色"
#: documents/models.py:70
#: documents/models.py:69
msgid "is inbox tag"
msgstr "收件箱标签"
#: documents/models.py:73
#: documents/models.py:72
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "将此标签标记为收件箱标签:所有新处理的文档将被标记为收件箱标签。"
#: documents/models.py:79
#: documents/models.py:78
msgid "tag"
msgstr "标签"
#: documents/models.py:80 documents/models.py:130
#: documents/models.py:79 documents/models.py:153
msgid "tags"
msgstr "标签"
#: documents/models.py:85 documents/models.py:115
#: documents/models.py:84 documents/models.py:135
msgid "document type"
msgstr "文档类型"
#: documents/models.py:86
#: documents/models.py:85
msgid "document types"
msgstr "文档类型"
#: documents/models.py:94
#: documents/models.py:90
msgid "path"
msgstr "路径"
#: documents/models.py:96 documents/models.py:124
msgid "storage path"
msgstr "保存路径"
#: documents/models.py:97
msgid "storage paths"
msgstr "保存路径"
#: documents/models.py:105
msgid "Unencrypted"
msgstr "未加密"
#: documents/models.py:95
#: documents/models.py:106
msgid "Encrypted with GNU Privacy Guard"
msgstr "使用 GNU 隐私防护GPG加密"
#: documents/models.py:107
#: documents/models.py:127
msgid "title"
msgstr "标题"
#: documents/models.py:119
#: documents/models.py:139
msgid "content"
msgstr "内容"
#: documents/models.py:122
#: documents/models.py:142
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "文档的原始、纯文本的数据。这个字段主要用于搜索。"
#: documents/models.py:127
#: documents/models.py:147
msgid "mime type"
msgstr "mime 类型"
#: documents/models.py:134
#: documents/models.py:157
msgid "checksum"
msgstr "校验和"
#: documents/models.py:138
#: documents/models.py:161
msgid "The checksum of the original document."
msgstr "原始文档的校验和。"
#: documents/models.py:142
#: documents/models.py:165
msgid "archive checksum"
msgstr "存档校验和"
#: documents/models.py:147
#: documents/models.py:170
msgid "The checksum of the archived document."
msgstr "已归档文档的校验和。"
#: documents/models.py:150 documents/models.py:295
#: documents/models.py:173 documents/models.py:335 documents/models.py:520
msgid "created"
msgstr "已创建"
#: documents/models.py:153
#: documents/models.py:176
msgid "modified"
msgstr "已修改"
#: documents/models.py:157
#: documents/models.py:183
msgid "storage type"
msgstr "存储类型"
#: documents/models.py:165
#: documents/models.py:191
msgid "added"
msgstr "已添加"
#: documents/models.py:169
#: documents/models.py:198
msgid "filename"
msgstr "文件名"
#: documents/models.py:175
#: documents/models.py:204
msgid "Current filename in storage"
msgstr "当前存储中的文件名"
#: documents/models.py:179
#: documents/models.py:208
msgid "archive filename"
msgstr "归档文件名"
#: documents/models.py:185
#: documents/models.py:214
msgid "Current archive filename in storage"
msgstr "当前存储中的归档文件名"
#: documents/models.py:189
#: documents/models.py:218
msgid "archive serial number"
msgstr "归档序列号"
#: documents/models.py:195
#: documents/models.py:224
msgid "The position of this document in your physical document archive."
msgstr "此文档在您的物理文档归档中的位置。"
#: documents/models.py:201
#: documents/models.py:230
msgid "document"
msgstr "文档"
#: documents/models.py:202
#: documents/models.py:231
msgid "documents"
msgstr "文档"
#: documents/models.py:280
#: documents/models.py:318
msgid "debug"
msgstr "调试"
#: documents/models.py:281
#: documents/models.py:319
msgid "information"
msgstr "信息"
#: documents/models.py:282
#: documents/models.py:320
msgid "warning"
msgstr "警告"
#: documents/models.py:283
#: documents/models.py:321
msgid "error"
msgstr "错误"
#: documents/models.py:284
#: documents/models.py:322
msgid "critical"
msgstr "严重"
#: documents/models.py:287
#: documents/models.py:325
msgid "group"
msgstr "用户组"
#: documents/models.py:289
#: documents/models.py:327
msgid "message"
msgstr "消息"
#: documents/models.py:292
#: documents/models.py:330
msgid "level"
msgstr "等级"
#: documents/models.py:299
#: documents/models.py:339
msgid "log"
msgstr "日志"
#: documents/models.py:300
#: documents/models.py:340
msgid "logs"
msgstr "日志"
#: documents/models.py:310 documents/models.py:360
#: documents/models.py:350 documents/models.py:403
msgid "saved view"
msgstr "保存的视图"
#: documents/models.py:311
#: documents/models.py:351
msgid "saved views"
msgstr "保存的视图"
#: documents/models.py:313
#: documents/models.py:353
msgid "user"
msgstr "用户"
#: documents/models.py:317
#: documents/models.py:357
msgid "show on dashboard"
msgstr "在仪表盘显示"
#: documents/models.py:320
#: documents/models.py:360
msgid "show in sidebar"
msgstr "在侧边栏显示"
#: documents/models.py:324
#: documents/models.py:364
msgid "sort field"
msgstr "排序字段"
#: documents/models.py:326
#: documents/models.py:369
msgid "sort reverse"
msgstr "反向排序"
#: documents/models.py:331
#: documents/models.py:374
msgid "title contains"
msgstr "标题包含"
#: documents/models.py:332
#: documents/models.py:375
msgid "content contains"
msgstr "内容包含"
#: documents/models.py:333
#: documents/models.py:376
msgid "ASN is"
msgstr "ASN 为"
#: documents/models.py:334
#: documents/models.py:377
msgid "correspondent is"
msgstr "联系人是"
#: documents/models.py:335
#: documents/models.py:378
msgid "document type is"
msgstr "文档类型是"
#: documents/models.py:336
#: documents/models.py:379
msgid "is in inbox"
msgstr "在收件箱中"
#: documents/models.py:337
#: documents/models.py:380
msgid "has tag"
msgstr "有标签"
#: documents/models.py:338
#: documents/models.py:381
msgid "has any tag"
msgstr "有任意标签"
#: documents/models.py:339
#: documents/models.py:382
msgid "created before"
msgstr "在此时间之前创建"
#: documents/models.py:340
#: documents/models.py:383
msgid "created after"
msgstr "在此时间之后创建"
#: documents/models.py:341
#: documents/models.py:384
msgid "created year is"
msgstr "创建年份是"
#: documents/models.py:342
#: documents/models.py:385
msgid "created month is"
msgstr "创建月份是"
#: documents/models.py:343
#: documents/models.py:386
msgid "created day is"
msgstr "创建日期是"
#: documents/models.py:344
#: documents/models.py:387
msgid "added before"
msgstr "添加早于"
#: documents/models.py:345
#: documents/models.py:388
msgid "added after"
msgstr "添加晚于"
#: documents/models.py:346
#: documents/models.py:389
msgid "modified before"
msgstr "修改早于"
#: documents/models.py:347
#: documents/models.py:390
msgid "modified after"
msgstr "修改晚于"
#: documents/models.py:348
#: documents/models.py:391
msgid "does not have tag"
msgstr "没有标签"
#: documents/models.py:349
#: documents/models.py:392
msgid "does not have ASN"
msgstr "没有 ASN"
#: documents/models.py:350
#: documents/models.py:393
msgid "title or content contains"
msgstr "标题或内容包含"
#: documents/models.py:351
#: documents/models.py:394
msgid "fulltext query"
msgstr "全文检索"
#: documents/models.py:352
#: documents/models.py:395
msgid "more like this"
msgstr "更多类似内容"
#: documents/models.py:353
#: documents/models.py:396
msgid "has tags in"
msgstr "有标签包含于"
#: documents/models.py:363
#: documents/models.py:406
msgid "rule type"
msgstr "规则类型"
#: documents/models.py:365
#: documents/models.py:408
msgid "value"
msgstr "值"
#: documents/models.py:368
#: documents/models.py:411
msgid "filter rule"
msgstr "过滤规则"
#: documents/models.py:369
#: documents/models.py:412
msgid "filter rules"
msgstr "过滤规则"
#: documents/serialisers.py:64
#: documents/models.py:521
msgid "started"
msgstr ""
#: documents/serialisers.py:70
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "无效的正则表达式:%(error)s"
#: documents/serialisers.py:185
#: documents/serialisers.py:191
msgid "Invalid color."
msgstr "无效的颜色"
#: documents/serialisers.py:459
#: documents/serialisers.py:515
#, python-format
msgid "File type %(type)s not supported"
msgstr "不支持文件类型 %(type)s"
#: documents/templates/index.html:22
#: documents/serialisers.py:596
msgid "Invalid variable detected."
msgstr "检测到无效变量。"
#: documents/templates/index.html:78
msgid "Paperless-ngx is loading..."
msgstr "Paperless-ngx 正在加载..."
#: documents/templates/index.html:79
msgid "Still here?! Hmm, something might be wrong."
msgstr "还是在这里?嗯,可能有些错误。"
#: documents/templates/index.html:79
msgid "Here's a link to the docs."
msgstr "这是与文档的链接。"
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ngx signed out"
msgstr "Paperless-ngx 已退出"
@@ -416,71 +444,91 @@ msgstr "密码"
msgid "Sign in"
msgstr "登录"
#: paperless/settings.py:299
#: paperless/settings.py:339
msgid "English (US)"
msgstr "英语(美国)"
#: paperless/settings.py:300
#: paperless/settings.py:340
msgid "Belarusian"
msgstr "白俄罗斯语"
#: paperless/settings.py:341
msgid "Czech"
msgstr "捷克语"
#: paperless/settings.py:301
#: paperless/settings.py:342
msgid "Danish"
msgstr "丹麦语"
#: paperless/settings.py:302
#: paperless/settings.py:343
msgid "German"
msgstr "德语"
#: paperless/settings.py:303
#: paperless/settings.py:344
msgid "English (GB)"
msgstr "英语(英国)"
#: paperless/settings.py:304
#: paperless/settings.py:345
msgid "Spanish"
msgstr "西班牙语"
#: paperless/settings.py:305
#: paperless/settings.py:346
msgid "French"
msgstr "法语"
#: paperless/settings.py:306
#: paperless/settings.py:347
msgid "Italian"
msgstr "意大利语"
#: paperless/settings.py:307
#: paperless/settings.py:348
msgid "Luxembourgish"
msgstr "卢森堡语"
#: paperless/settings.py:308
#: paperless/settings.py:349
msgid "Dutch"
msgstr "荷兰语"
#: paperless/settings.py:309
#: paperless/settings.py:350
msgid "Polish"
msgstr "波兰语"
#: paperless/settings.py:310
#: paperless/settings.py:351
msgid "Portuguese (Brazil)"
msgstr "葡萄牙语 (巴西)"
#: paperless/settings.py:311
#: paperless/settings.py:352
msgid "Portuguese"
msgstr "葡萄牙语"
#: paperless/settings.py:312
#: paperless/settings.py:353
msgid "Romanian"
msgstr "罗马尼亚语"
#: paperless/settings.py:313
#: paperless/settings.py:354
msgid "Russian"
msgstr "俄语"
#: paperless/settings.py:314
#: paperless/settings.py:355
msgid "Slovenian"
msgstr "斯洛语尼亚语"
#: paperless/settings.py:356
msgid "Serbian"
msgstr "塞尔维亚语"
#: paperless/settings.py:357
msgid "Swedish"
msgstr "瑞典语"
#: paperless/urls.py:139
#: paperless/settings.py:358
msgid "Turkish"
msgstr "土耳其语"
#: paperless/settings.py:359
msgid "Chinese Simplified"
msgstr "简体中文"
#: paperless/urls.py:161
msgid "Paperless-ngx administration"
msgstr "Paperless-ngx 管理"
@@ -516,199 +564,203 @@ msgstr "元数据"
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 "将元数据自动指定到被此规则所处理的文档。 如果您不在这里指定标签、类型或联系人Paperless-ngx 仍将处理您已定义的所有匹配规则。"
#: paperless_mail/apps.py:9
#: paperless_mail/apps.py:8
msgid "Paperless mail"
msgstr "Paperless-ngx 邮件"
#: paperless_mail/models.py:10
#: paperless_mail/models.py:8
msgid "mail account"
msgstr "邮件账号"
#: paperless_mail/models.py:11
#: paperless_mail/models.py:9
msgid "mail accounts"
msgstr "邮件账户"
#: paperless_mail/models.py:18
#: paperless_mail/models.py:12
msgid "No encryption"
msgstr "无加密"
#: paperless_mail/models.py:19
#: paperless_mail/models.py:13
msgid "Use SSL"
msgstr "使用 SSL"
#: paperless_mail/models.py:20
#: paperless_mail/models.py:14
msgid "Use STARTTLS"
msgstr "使用 STARTTLS"
#: paperless_mail/models.py:25
#: paperless_mail/models.py:18
msgid "IMAP server"
msgstr "IMAP 服务器"
#: paperless_mail/models.py:28
#: paperless_mail/models.py:21
msgid "IMAP port"
msgstr "IMAP 端口"
#: paperless_mail/models.py:32
#: paperless_mail/models.py:25
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "对于未加密的连接和STARTTLS连接通常为143端口SSL连接为993端口。"
#: paperless_mail/models.py:38
#: paperless_mail/models.py:31
msgid "IMAP security"
msgstr "IMAP 安全"
#: paperless_mail/models.py:41
#: paperless_mail/models.py:36
msgid "username"
msgstr "用户名"
#: paperless_mail/models.py:43
#: paperless_mail/models.py:38
msgid "password"
msgstr "密码"
#: paperless_mail/models.py:46
#: paperless_mail/models.py:41
msgid "character set"
msgstr "字符集"
#: paperless_mail/models.py:50
#: paperless_mail/models.py:45
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "与邮件服务器通信时使用的字符集例如“UTF-8”或“US-ASCII”。"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:56
msgid "mail rule"
msgstr "邮件规则"
#: paperless_mail/models.py:62
#: paperless_mail/models.py:57
msgid "mail rules"
msgstr "邮件规则"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:60
msgid "Only process attachments."
msgstr "只处理附件。"
#: paperless_mail/models.py:71
#: paperless_mail/models.py:61
msgid "Process all files, including 'inline' attachments."
msgstr "处理所有文件,包括“内嵌”附件。"
#: paperless_mail/models.py:81
msgid "Mark as read, don't process read mails"
msgstr "标记为已读,不处理已读邮件"
#: paperless_mail/models.py:82
msgid "Flag the mail, don't process flagged mails"
msgstr "标记邮件,不处理已标记的邮件"
#: paperless_mail/models.py:83
msgid "Move to specified folder"
msgstr "移动到指定文件夹"
#: paperless_mail/models.py:84
#: paperless_mail/models.py:64
msgid "Delete"
msgstr "删除"
#: paperless_mail/models.py:91
#: paperless_mail/models.py:65
msgid "Move to specified folder"
msgstr "移动到指定文件夹"
#: paperless_mail/models.py:66
msgid "Mark as read, don't process read mails"
msgstr "标记为已读,不处理已读邮件"
#: paperless_mail/models.py:67
msgid "Flag the mail, don't process flagged mails"
msgstr "标记邮件,不处理已标记的邮件"
#: paperless_mail/models.py:68
msgid "Tag the mail with specified tag, don't process tagged mails"
msgstr ""
#: paperless_mail/models.py:71
msgid "Use subject as title"
msgstr "使用主题作为标题"
#: paperless_mail/models.py:92
#: paperless_mail/models.py:72
msgid "Use attachment filename as title"
msgstr "使用附件名作为标题"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:75
msgid "Do not assign a correspondent"
msgstr "不分配联系人"
#: paperless_mail/models.py:102
#: paperless_mail/models.py:76
msgid "Use mail address"
msgstr "使用邮件地址"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:77
msgid "Use name (or mail address if not available)"
msgstr "使用名称 (如果不可用则使用邮箱地址)"
#: paperless_mail/models.py:104
#: paperless_mail/models.py:78
msgid "Use correspondent selected below"
msgstr "使用下面选择的联系人"
#: paperless_mail/models.py:109
#: paperless_mail/models.py:82
msgid "order"
msgstr "排序"
#: paperless_mail/models.py:115
#: paperless_mail/models.py:88
msgid "account"
msgstr "账户"
#: paperless_mail/models.py:119
#: paperless_mail/models.py:92
msgid "folder"
msgstr "文件夹"
#: paperless_mail/models.py:122
msgid "Subfolders must be separated by dots."
msgstr "子文件夹必须用“.”分隔。"
#: paperless_mail/models.py:96
msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server."
msgstr "子文件夹必须用分隔符分隔,通常是一个 dot ('.') 或 slash ('/'),但它因邮件服务器而异。"
#: paperless_mail/models.py:126
#: paperless_mail/models.py:102
msgid "filter from"
msgstr "过滤来自"
#: paperless_mail/models.py:129
#: paperless_mail/models.py:108
msgid "filter subject"
msgstr "过滤主题"
#: paperless_mail/models.py:132
#: paperless_mail/models.py:114
msgid "filter body"
msgstr "过滤内容"
#: paperless_mail/models.py:136
#: paperless_mail/models.py:121
msgid "filter attachment filename"
msgstr "过滤附件文件名"
#: paperless_mail/models.py:141
#: paperless_mail/models.py:126
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "如果指定了文件名,只处理完全匹配此文件名的文档。允许使用通配符,如 *.pdf 或 *发票*。不区分大小写。"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:133
msgid "maximum age"
msgstr "存活期"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:135
msgid "Specified in days."
msgstr "指定日期。"
#: paperless_mail/models.py:152
#: paperless_mail/models.py:139
msgid "attachment type"
msgstr "附件类型"
#: paperless_mail/models.py:156
#: paperless_mail/models.py:143
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "内嵌附件包含嵌入图像,所以最好将此选项与文件名过滤器结合起来。"
#: paperless_mail/models.py:162
#: paperless_mail/models.py:149
msgid "action"
msgstr "操作"
#: paperless_mail/models.py:168
#: paperless_mail/models.py:155
msgid "action parameter"
msgstr "操作参数"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:160
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "上面选择的操作的附加参数,即移动到文件夹操作的目标文件夹。子文件夹必须用“.”来分隔。"
#: paperless_mail/models.py:181
#: paperless_mail/models.py:168
msgid "assign title from"
msgstr "分配标题来自"
#: paperless_mail/models.py:189
#: paperless_mail/models.py:176
msgid "assign this tag"
msgstr "分配此标签"
#: paperless_mail/models.py:197
#: paperless_mail/models.py:184
msgid "assign this document type"
msgstr "分配此文档类型"
#: paperless_mail/models.py:201
#: paperless_mail/models.py:188
msgid "assign correspondent from"
msgstr "分配联系人来自"
#: paperless_mail/models.py:211
#: paperless_mail/models.py:198
msgid "assign this correspondent"
msgstr "分配此联系人"

View File

@@ -72,7 +72,7 @@ def binaries_check(app_configs, **kwargs):
error = "Paperless can't find {}. Without it, consumption is impossible."
hint = "Either it's not in your ${PATH} or it's not installed."
binaries = (settings.CONVERT_BINARY, settings.OPTIPNG_BINARY, "tesseract")
binaries = (settings.CONVERT_BINARY, "tesseract")
check_messages = []
for binary in binaries:

View File

@@ -5,6 +5,7 @@ import multiprocessing
import os
import re
from typing import Final
from typing import Optional
from typing import Set
from urllib.parse import urlparse
@@ -457,12 +458,14 @@ PAPERLESS_WORKER_RETRY: Final[int] = __get_int(
Q_CLUSTER = {
"name": "paperless",
"guard_cycle": 5,
"catch_up": False,
"recycle": 1,
"retry": PAPERLESS_WORKER_RETRY,
"timeout": PAPERLESS_WORKER_TIMEOUT,
"workers": TASK_WORKERS,
"redis": os.getenv("PAPERLESS_REDIS", "redis://localhost:6379"),
"log_level": "DEBUG" if DEBUG else "INFO",
}
@@ -523,8 +526,6 @@ CONSUMER_BARCODE_TIFF_SUPPORT = __get_boolean(
CONSUMER_BARCODE_STRING = os.getenv("PAPERLESS_CONSUMER_BARCODE_STRING", "PATCHT")
OPTIMIZE_THUMBNAILS = __get_boolean("PAPERLESS_OPTIMIZE_THUMBNAILS", "true")
OCR_PAGES = int(os.getenv("PAPERLESS_OCR_PAGES", 0))
# The default language that tesseract will attempt to use when parsing
@@ -551,10 +552,9 @@ OCR_ROTATE_PAGES_THRESHOLD = float(
os.getenv("PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD", 12.0),
)
OCR_MAX_IMAGE_PIXELS = os.environ.get(
"PAPERLESS_OCR_MAX_IMAGE_PIXELS",
256000000,
)
OCR_MAX_IMAGE_PIXELS: Optional[int] = None
if os.environ.get("PAPERLESS_OCR_MAX_IMAGE_PIXELS") is not None:
OCR_MAX_IMAGE_PIXELS: int = int(os.environ.get("PAPERLESS_OCR_MAX_IMAGE_PIXELS"))
OCR_USER_ARGS = os.getenv("PAPERLESS_OCR_USER_ARGS", "{}")
@@ -568,8 +568,6 @@ CONVERT_MEMORY_LIMIT = os.getenv("PAPERLESS_CONVERT_MEMORY_LIMIT")
GS_BINARY = os.getenv("PAPERLESS_GS_BINARY", "gs")
OPTIPNG_BINARY = os.getenv("PAPERLESS_OPTIPNG_BINARY", "optipng")
# Pre-2.x versions of Paperless stored your documents locally with GPG
# encryption, but that is no longer the default. This behaviour is still

View File

@@ -13,9 +13,9 @@ class TestChecks(DirectoriesMixin, TestCase):
def test_binaries(self):
self.assertEqual(binaries_check(None), [])
@override_settings(CONVERT_BINARY="uuuhh", OPTIPNG_BINARY="forgot")
@override_settings(CONVERT_BINARY="uuuhh")
def test_binaries_fail(self):
self.assertEqual(len(binaries_check(None)), 2)
self.assertEqual(len(binaries_check(None)), 1)
def test_paths_check(self):
self.assertEqual(paths_check(None), [])

View File

@@ -7,6 +7,7 @@ from django.urls import re_path
from django.utils.translation import gettext_lazy as _
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import RedirectView
from documents.views import AcknowledgeTasksView
from documents.views import BulkDownloadView
from documents.views import BulkEditView
from documents.views import CorrespondentViewSet
@@ -21,6 +22,7 @@ from documents.views import SelectionDataView
from documents.views import StatisticsView
from documents.views import StoragePathViewSet
from documents.views import TagViewSet
from documents.views import TasksViewSet
from documents.views import UiSettingsView
from documents.views import UnifiedSearchViewSet
from paperless.consumers import StatusConsumer
@@ -36,6 +38,7 @@ api_router.register(r"logs", LogViewSet, basename="logs")
api_router.register(r"tags", TagViewSet)
api_router.register(r"saved_views", SavedViewViewSet)
api_router.register(r"storage_paths", StoragePathViewSet)
api_router.register(r"tasks", TasksViewSet, basename="tasks")
urlpatterns = [
@@ -86,6 +89,11 @@ urlpatterns = [
UiSettingsView.as_view(),
name="ui_settings",
),
re_path(
r"^acknowledge_tasks/",
AcknowledgeTasksView.as_view(),
name="acknowledge_tasks",
),
path("token/", views.obtain_auth_token),
]
+ api_router.urls,

View File

@@ -62,6 +62,17 @@ class FlagMailAction(BaseMailAction):
M.flag(message_uids, [MailMessageFlags.FLAGGED], True)
class TagMailAction(BaseMailAction):
def __init__(self, parameter):
self.keyword = parameter
def get_criteria(self):
return {"no_keyword": self.keyword}
def post_consume(self, M: MailBox, message_uids, parameter):
M.flag(message_uids, [self.keyword], True)
def get_rule_action(rule):
if rule.action == MailRule.MailAction.FLAG:
return FlagMailAction()
@@ -71,6 +82,8 @@ def get_rule_action(rule):
return MoveMailAction()
elif rule.action == MailRule.MailAction.MARK_READ:
return MarkReadMailAction()
elif rule.action == MailRule.MailAction.TAG:
return TagMailAction(rule.action_parameter)
else:
raise NotImplementedError("Unknown action.") # pragma: nocover

View File

@@ -0,0 +1,28 @@
# Generated by Django 4.0.4 on 2022-05-29 13:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("paperless_mail", "0014_alter_mailrule_action"),
]
operations = [
migrations.AlterField(
model_name="mailrule",
name="action",
field=models.PositiveIntegerField(
choices=[
(1, "Delete"),
(2, "Move to specified folder"),
(3, "Mark as read, don't process read mails"),
(4, "Flag the mail, don't process flagged mails"),
(5, "Tag the mail with specified tag, don't process tagged mails"),
],
default=3,
verbose_name="action",
),
),
]

View File

@@ -1,4 +1,4 @@
# Generated by Django 4.0.4 on 2022-05-03 15:58
# Generated by Django 4.0.4 on 2022-07-11 22:02
from django.db import migrations, models
@@ -6,7 +6,7 @@ from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("paperless_mail", "0014_alter_mailrule_action"),
("paperless_mail", "0015_alter_mailrule_action"),
]
operations = [

View File

@@ -73,6 +73,7 @@ class MailRule(models.Model):
MOVE = 2, _("Move to specified folder")
MARK_READ = 3, _("Mark as read, don't process read mails")
FLAG = 4, _("Flag the mail, don't process flagged mails")
TAG = 5, _("Tag the mail with specified tag, don't process tagged mails")
class TitleSource(models.IntegerChoices):
FROM_SUBJECT = 1, _("Use subject as title")

View File

@@ -96,6 +96,10 @@ class BogusMailBox(ContextManager):
if "UNFLAGGED" in criteria:
msg = filter(lambda m: not m.flagged, msg)
if "UNKEYWORD" in criteria:
tag = criteria[criteria.index("UNKEYWORD") + 1].strip("'")
msg = filter(lambda m: "processed" not in m.flags, msg)
return list(msg)
def delete(self, uid_list):
@@ -109,6 +113,9 @@ class BogusMailBox(ContextManager):
message.flagged = value
if flag == MailMessageFlags.SEEN:
message.seen = value
if flag == "processed":
message._raw_flag_data.append(f"+FLAGS (processed)".encode())
MailMessage.flags.fget.cache_clear()
def move(self, uid_list, folder):
if folder == "spam":
@@ -130,6 +137,7 @@ def create_message(
from_: str = "noone@mail.com",
seen: bool = False,
flagged: bool = False,
processed: bool = False,
) -> MailMessage:
email_msg = email.message.EmailMessage()
# TODO: This does NOT set the UID
@@ -175,6 +183,9 @@ def create_message(
imap_msg.seen = seen
imap_msg.flagged = flagged
if processed:
imap_msg._raw_flag_data.append(f"+FLAGS (processed)".encode())
MailMessage.flags.fget.cache_clear()
return imap_msg
@@ -217,6 +228,7 @@ class TestMail(DirectoriesMixin, TestCase):
body="cables",
seen=True,
flagged=False,
processed=False,
),
)
self.bogus_mailbox.messages.append(
@@ -225,6 +237,7 @@ class TestMail(DirectoriesMixin, TestCase):
body="from my favorite electronic store",
seen=False,
flagged=True,
processed=True,
),
)
self.bogus_mailbox.messages.append(
@@ -571,6 +584,29 @@ class TestMail(DirectoriesMixin, TestCase):
self.assertEqual(len(self.bogus_mailbox.messages), 2)
self.assertEqual(len(self.bogus_mailbox.messages_spam), 1)
def test_handle_mail_account_tag(self):
account = MailAccount.objects.create(
name="test",
imap_server="",
username="admin",
password="secret",
)
_ = MailRule.objects.create(
name="testrule",
account=account,
action=MailRule.MailAction.TAG,
action_parameter="processed",
)
self.assertEqual(len(self.bogus_mailbox.messages), 3)
self.assertEqual(self.async_task.call_count, 0)
self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 2)
self.mail_account_handler.handle_mail_account(account)
self.assertEqual(self.async_task.call_count, 2)
self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0)
self.assertEqual(len(self.bogus_mailbox.messages), 3)
def test_error_login(self):
account = MailAccount.objects.create(
name="test",

View File

@@ -8,8 +8,6 @@ from documents.parsers import make_thumbnail_from_pdf
from documents.parsers import ParseError
from PIL import Image
Image.MAX_IMAGE_PIXELS = settings.OCR_MAX_IMAGE_PIXELS
class NoTextFoundException(Exception):
pass
@@ -225,6 +223,24 @@ class RasterisedDocumentParser(DocumentParser):
f"they will not be used. Error: {e}",
)
if settings.OCR_MAX_IMAGE_PIXELS is not None:
# Convert pixels to mega-pixels and provide to ocrmypdf
max_pixels_mpixels = settings.OCR_MAX_IMAGE_PIXELS / 1_000_000.0
if max_pixels_mpixels > 0:
self.log(
"debug",
f"Calculated {max_pixels_mpixels} megapixels for OCR",
)
ocrmypdf_args["max_image_mpixels"] = max_pixels_mpixels
else:
self.log(
"warning",
"There is an issue with PAPERLESS_OCR_MAX_IMAGE_PIXELS, "
"this value must be at least 1 megapixel if set",
)
return ocrmypdf_args
def parse(self, document_path, mime_type, file_name=None):

View File

@@ -1,4 +1,6 @@
import os
import shutil
import tempfile
import uuid
from typing import ContextManager
from unittest import mock
@@ -225,11 +227,18 @@ class TestParser(DirectoriesMixin, TestCase):
def test_image_simple_alpha(self):
parser = RasterisedDocumentParser(None)
parser.parse(os.path.join(self.SAMPLE_FILES, "simple-alpha.png"), "image/png")
with tempfile.TemporaryDirectory() as tempdir:
# Copy sample file to temp directory, as the parsing changes the file
# and this makes it modified to Git
sample_file = os.path.join(self.SAMPLE_FILES, "simple-alpha.png")
dest_file = os.path.join(tempdir, "simple-alpha.png")
shutil.copy(sample_file, dest_file)
self.assertTrue(os.path.isfile(parser.archive_path))
parser.parse(dest_file, "image/png")
self.assertContainsStrings(parser.get_text(), ["This is a test document."])
self.assertTrue(os.path.isfile(parser.archive_path))
self.assertContainsStrings(parser.get_text(), ["This is a test document."])
def test_image_calc_a4_dpi(self):
parser = RasterisedDocumentParser(None)

View File

@@ -6,8 +6,6 @@ from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
Image.MAX_IMAGE_PIXELS = settings.OCR_MAX_IMAGE_PIXELS
class TextDocumentParser(DocumentParser):
"""
@@ -28,12 +26,12 @@ class TextDocumentParser(DocumentParser):
font = ImageFont.truetype(
font=settings.THUMBNAIL_FONT_NAME,
size=20,
layout_engine=ImageFont.LAYOUT_BASIC,
layout_engine=ImageFont.Layout.BASIC,
)
draw.text((5, 5), read_text(), font=font, fill="black")
out_path = os.path.join(self.tempdir, "thumb.png")
img.save(out_path)
out_path = os.path.join(self.tempdir, "thumb.webp")
img.save(out_path, format="WEBP")
return out_path

View File

@@ -16,3 +16,7 @@ source =
./
omit =
*/tests/*
manage.py
paperless/workers.py
paperless/wsgi.py
paperless/auth.py