diff --git a/.build-config.json b/.build-config.json index 0b97bbbcd..73e8b7792 100644 --- a/.build-config.json +++ b/.build-config.json @@ -1,6 +1,6 @@ { "qpdf": { - "version": "11.2.0" + "version": "11.3.0" }, "jbig2enc": { "version": "0.29", diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 8a76881fd..cb48d4ba0 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -40,7 +40,7 @@ categories: labels: - 'frontend' - 'backend' - collapse-after: 0 + collapse-after: 1 include-labels: - 'enhancement' - 'bug' diff --git a/.github/scripts/cleanup-tags.py b/.github/scripts/cleanup-tags.py index 39d2f122e..ce2a32d27 100644 --- a/.github/scripts/cleanup-tags.py +++ b/.github/scripts/cleanup-tags.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 import json import logging import os @@ -390,8 +389,6 @@ class LibraryTagsCleaner(RegistryTagsCleaner): will need their own logic """ - pass - def _main(): parser = ArgumentParser( diff --git a/.github/scripts/common.py b/.github/scripts/common.py index bccd4fbbd..f7c91e7d7 100644 --- a/.github/scripts/common.py +++ b/.github/scripts/common.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 import logging diff --git a/.github/scripts/get-build-json.py b/.github/scripts/get-build-json.py old mode 100755 new mode 100644 index 0bb140b03..a37b31e90 --- a/.github/scripts/get-build-json.py +++ b/.github/scripts/get-build-json.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 """ This is a helper script for the mutli-stage Docker image builder. It provides a single point of configuration for package version control. diff --git a/.github/scripts/github.py b/.github/scripts/github.py index b24e168f5..ccbd6d11e 100644 --- a/.github/scripts/github.py +++ b/.github/scripts/github.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 """ This module contains some useful classes for interacting with the Github API. The full documentation for the API can be found here: https://docs.github.com/en/rest @@ -162,10 +161,7 @@ class ContainerPackage(_EndpointResponse): Returns True if the image has at least one tag which matches the given regex, False otherwise """ - for tag in self.tags: - if re.match(pattern, tag) is not None: - return True - return False + return any(re.match(pattern, tag) is not None for tag in self.tags) def __repr__(self): return f"Package {self.name}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8da8c7b8..f824b04dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ on: env: # This is the version of pipenv all the steps will use # If changing this, change Dockerfile - DEFAULT_PIP_ENV_VERSION: "2022.11.30" + DEFAULT_PIP_ENV_VERSION: "2023.3.20" # This is the default version of Python to use in most steps # If changing this, change Dockerfile DEFAULT_PYTHON_VERSION: "3.9" @@ -190,6 +190,8 @@ jobs: uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + cache: 'npm' + cache-dependency-path: 'src-ui/package-lock.json' - run: cd src-ui && npm ci - run: cd src-ui && npm run lint - run: cd src-ui && npm run test @@ -301,6 +303,7 @@ jobs: images: | ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }} name=paperlessngx/paperless-ngx,enable=${{ steps.docker-hub.outputs.enable }} + name=quay.io/paperlessngx/paperless-ngx,enable=${{ steps.docker-hub.outputs.enable }} tags: | # Tag branches with branch name type=ref,event=branch @@ -332,6 +335,15 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Login to Quay.io + uses: docker/login-action@v2 + # Don't attempt to login is not pushing to Docker Hub + if: steps.docker-hub.outputs.enable == 'true' + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_ROBOT_TOKEN }} - name: Build and push uses: docker/build-push-action@v4 @@ -451,7 +463,7 @@ jobs: do cp --verbose ${file_name} dist/paperless-ngx/ done - mv --verbose dist/paperless-ngx/paperless.conf.example paperless.conf + mv --verbose dist/paperless-ngx/paperless.conf.example dist/paperless-ngx/paperless.conf echo "Copying Docker related files" cp --recursive docker/ dist/paperless-ngx/docker @@ -586,5 +598,5 @@ jobs: owner, repo, issue_number: result.data.number, - labels: ['documentation'] + labels: ['documentation', 'skip-changelog'] }); diff --git a/.github/workflows/project-actions.yml b/.github/workflows/project-actions.yml index 717b3c2d3..351ce06c2 100644 --- a/.github/workflows/project-actions.yml +++ b/.github/workflows/project-actions.yml @@ -28,7 +28,7 @@ jobs: if: github.event_name == 'issues' && (github.event.action == 'opened' || github.event.action == 'reopened') steps: - name: Add issue to project and set status to ${{ env.todo }} - uses: leonsteinhaeuser/project-beta-automations@v2.0.1 + uses: leonsteinhaeuser/project-beta-automations@v2.1.0 with: gh_token: ${{ secrets.GH_TOKEN }} organization: paperless-ngx @@ -44,7 +44,7 @@ jobs: if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != 'dependabot' steps: - name: Add PR to project and set status to "Needs Review" - uses: leonsteinhaeuser/project-beta-automations@v2.0.1 + uses: leonsteinhaeuser/project-beta-automations@v2.1.0 with: gh_token: ${{ secrets.GH_TOKEN }} organization: paperless-ngx diff --git a/.gitignore b/.gitignore index ff17f9e33..3ac5cc0dc 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ virtualenv .venv/ /docker-compose.env /docker-compose.yml +.ruff_cache/ # Used for development scripts/import-for-development diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5660371f8..86aed9973 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,39 +36,14 @@ repos: - markdown exclude: "(^Pipfile\\.lock$)" # Python hooks - - repo: https://github.com/asottile/reorder_python_imports - rev: v3.9.0 + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: 'v0.0.259' hooks: - - id: reorder-python-imports - exclude: "(migrations)" - - repo: https://github.com/asottile/yesqa - rev: "v1.4.0" - hooks: - - id: yesqa - exclude: "(migrations)" - - repo: https://github.com/asottile/add-trailing-comma - rev: "v2.4.0" - hooks: - - id: add-trailing-comma - exclude: "(migrations)" - - repo: https://github.com/PyCQA/flake8 - rev: 6.0.0 - hooks: - - id: flake8 - files: ^src/ - args: - - "--config=./src/setup.cfg" + - id: ruff - repo: https://github.com/psf/black rev: 22.12.0 hooks: - id: black - - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 - hooks: - - id: pyupgrade - exclude: "(migrations)" - args: - - "--py38-plus" # Dockerfile hooks - repo: https://github.com/AleksaC/hadolint-py rev: v2.10.0 diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 000000000..030c02b0a --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,23 @@ +# https://beta.ruff.rs/docs/settings/ +# https://beta.ruff.rs/docs/rules/ +select = ["F", "E", "W", "UP", "COM", "DJ", "EXE", "ISC", "ICN", "G201", "INP", "PIE", "RSE", "SIM", "TID", "PLC", "PLE", "RUF"] +# TODO PTH +ignore = ["DJ001", "SIM105"] +fix = true +line-length = 88 +respect-gitignore = true +src = ["src"] +target-version = "py38" +format = "grouped" +show-fixes = true + +[per-file-ignores] +".github/scripts/*.py" = ["E501", "INP001", "SIM117"] +"docker/wait-for-redis.py" = ["INP001"] +"*/tests/*.py" = ["E501", "SIM117"] +"*/migrations/*.py" = ["E501", "SIM"] +"src/paperless_tesseract/tests/test_parser.py" = ["RUF001"] +"src/documents/models.py" = ["SIM115"] + +[isort] +force-single-line = true diff --git a/Dockerfile b/Dockerfile index 7cf1e8d00..1d3def67a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,7 +29,7 @@ COPY Pipfile* ./ RUN set -eux \ && echo "Installing pipenv" \ - && python3 -m pip install --no-cache-dir --upgrade pipenv==2022.11.30 \ + && python3 -m pip install --no-cache-dir --upgrade pipenv==2023.3.20 \ && echo "Generating requirement.txt" \ && pipenv requirements > requirements.txt @@ -46,15 +46,6 @@ LABEL org.opencontainers.image.url="https://github.com/paperless-ngx/paperless-n LABEL org.opencontainers.image.licenses="GPL-3.0-only" ARG DEBIAN_FRONTEND=noninteractive -# Buildx provided, must be defined to use though -ARG TARGETARCH -ARG TARGETVARIANT - -# Workflow provided -ARG JBIG2ENC_VERSION -ARG QPDF_VERSION -ARG PIKEPDF_VERSION -ARG PSYCOPG2_VERSION # # Begin installation and configuration @@ -175,12 +166,22 @@ RUN set -eux \ && chmod +x install_management_commands.sh \ && ./install_management_commands.sh +# Buildx provided, must be defined to use though +ARG TARGETARCH +ARG TARGETVARIANT + +# Workflow provided, defaults set for manual building +ARG JBIG2ENC_VERSION=0.29 +ARG QPDF_VERSION=11.3.0 +ARG PIKEPDF_VERSION=7.1.1 +ARG PSYCOPG2_VERSION=2.9.5 + # Install the built packages from the installer library images # These change sometimes RUN set -eux \ && echo "Getting binaries" \ && mkdir paperless-ngx \ - && curl --fail --silent --show-error --output paperless-ngx.tar.gz --location https://github.com/paperless-ngx/paperless-ngx/archive/41d6e7e407af09a0882736d50c89b6e015997bff.tar.gz \ + && curl --fail --silent --show-error --output paperless-ngx.tar.gz --location https://github.com/paperless-ngx/paperless-ngx/archive/ba28a1e16c27d121b644b4f6bdb78855a2850561.tar.gz \ && tar -xf paperless-ngx.tar.gz --directory paperless-ngx --strip-components=1 \ && cd paperless-ngx \ # Setting a specific revision ensures we know what this installed diff --git a/Pipfile b/Pipfile index 09065956b..1308dc2a3 100644 --- a/Pipfile +++ b/Pipfile @@ -12,16 +12,20 @@ name = "piwheels" dateparser = "~=1.1" django = "~=4.1" django-cors-headers = "*" +django-celery-results = "*" django-compression-middleware = "*" +django-guardian = "*" django-extensions = "*" django-filter = "~=22.1" djangorestframework = "~=3.14" +djangorestframework-guardian = "*" +django-ipware = "*" filelock = "*" gunicorn = "*" imap-tools = "*" langdetect = "*" pathvalidate = "*" -pillow = "~=9.3" +pillow = "~=9.4" pikepdf = "*" python-gnupg = "*" python-dotenv = "*" @@ -30,10 +34,10 @@ python-magic = "*" psycopg2 = "*" rapidfuzz = "*" redis = {extras = ["hiredis"], version = "*"} -scikit-learn = "~=1.1" +scikit-learn = "~=1.2" numpy = "*" -whitenoise = "~=6.2" -watchdog = "~=2.1" +whitenoise = "~=6.3" +watchdog = "~=2.2" whoosh="~=2.7" inotifyrecursive = "~=0.3" ocrmypdf = "~=14.0" @@ -42,29 +46,24 @@ tika = "*" # TODO: This will sadly also install daphne+dependencies, # which an ASGI server we don't need. Adds about 15MB image size. channels = "~=3.0" +channels-redis = "*" uvicorn = {extras = ["standard"], version = "*"} concurrent-log-handler = "*" "pdfminer.six" = "*" pyzbar = "*" mysqlclient = "*" celery = {extras = ["redis"], version = "*"} -django-celery-results = "*" setproctitle = "*" nltk = "*" pdf2image = "*" flower = "*" bleach = "*" +zxing-cpp = {version = "*", platform_machine = "== 'x86_64'"} # # Packages locked due to issues (try to check if these are fixed in a release every so often) # # Pin this until piwheels is building 1.9 (see https://www.piwheels.org/project/scipy/) scipy = "==1.8.1" -# Newer versions aren't builting yet (see https://www.piwheels.org/project/cryptography/) -cryptography = "==38.0.1" -# Locked version until https://github.com/django/channels_redis/issues/332 -# is resolved -channels-redis = "==3.4.1" - [dev-packages] coveralls = "*" @@ -79,3 +78,24 @@ black = "*" pre-commit = "*" imagehash = "*" mkdocs-material = "*" +ruff = "*" + +[typing-dev] +mypy = "*" +types-Pillow = "*" +django-filter-stubs = "*" +types-python-dateutil = "*" +djangorestframework-stubs = {extras= ["compatible-mypy"], version="*"} +celery-types = "*" +django-stubs = {extras= ["compatible-mypy"], version="*"} +types-dateparser = "*" +types-bleach = "*" +types-humanfriendly = "*" +types-redis = "*" +types-tqdm = "*" +types-Markdown = "*" +types-Pygments = "*" +types-backports = "*" +types-colorama = "*" +types-psycopg2 = "*" +types-setuptools = "*" diff --git a/Pipfile.lock b/Pipfile.lock index a161f9d82..4e738d14a 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "d70848276d3ac35fa361c15ac2d634344cdb08618790502669eee209fc16fa00" + "sha256": "8395f25f876a71a7307a55dd542e69a4cdcb3be3be38c4e89ed06ce3d52a5345" }, "pipfile-spec": 6, "requires": {}, @@ -19,13 +19,6 @@ ] }, "default": { - "aioredis": { - "hashes": [ - "sha256:15f8af30b044c771aee6787e5ec24694c048184c7b9e54c3b60c750a4b93273a", - "sha256:b61808d7e97b7cd5a92ed574937a079c9387fdadd22bfbfa7ad2fd319ecc26e3" - ], - "version": "==1.3.1" - }, "amqp": { "hashes": [ "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2", @@ -55,7 +48,7 @@ "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], - "markers": "python_version >= '3.6'", + "markers": "python_full_version <= '3.11.2'", "version": "==4.0.2" }, "attrs": { @@ -68,10 +61,10 @@ }, "autobahn": { "hashes": [ - "sha256:43b4e8b1aeaeb20a0cc0a81572e613dc958057c0ab248a7d6b41b2763270f925" + "sha256:c5ef8ca7422015a1af774a883b8aef73d4954c9fcd182c9b5244e08e973f7c3a" ], "markers": "python_version >= '3.7'", - "version": "==22.12.1" + "version": "==23.1.2" }, "automat": { "hashes": [ @@ -111,11 +104,11 @@ }, "bleach": { "hashes": [ - "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a", - "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c" + "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414", + "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4" ], "index": "pypi", - "version": "==5.0.1" + "version": "==6.0.0" }, "brotli": { "hashes": [ @@ -302,19 +295,92 @@ }, "channels-redis": { "hashes": [ - "sha256:78e4a2f2b2a744fe5a87848ec36b5ee49f522c6808cefe6c583663d0d531faa8", - "sha256:ba7e2ad170f273c372812dd32aaac102d68d4e508172abb1cfda3160b7333890" + "sha256:122414f29f525f7b9e0c9d59cdcfc4dc1b0eecba16fbb6a1c23f1d9b58f49dcb", + "sha256:81b59d68f53313e1aa891f23591841b684abb936b42e4d1a966d9e4dc63a95ec" ], "index": "pypi", - "version": "==3.4.1" + "version": "==4.0.0" }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2.1.1" + "markers": "python_full_version >= '3.7.0'", + "version": "==3.1.0" }, "click": { "hashes": [ @@ -371,35 +437,32 @@ }, "cryptography": { "hashes": [ - "sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a", - "sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f", - "sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0", - "sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407", - "sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7", - "sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6", - "sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153", - "sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750", - "sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad", - "sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6", - "sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b", - "sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5", - "sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a", - "sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d", - "sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d", - "sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294", - "sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0", - "sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a", - "sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac", - "sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61", - "sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013", - "sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e", - "sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb", - "sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9", - "sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd", - "sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818" + "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1", + "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7", + "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06", + "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84", + "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915", + "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074", + "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5", + "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3", + "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9", + "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3", + "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011", + "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536", + "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a", + "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f", + "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480", + "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac", + "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0", + "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108", + "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828", + "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354", + "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612", + "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3", + "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97" ], - "index": "pypi", - "version": "==38.0.1" + "markers": "python_version >= '3.6'", + "version": "==39.0.2" }, "daphne": { "hashes": [ @@ -411,11 +474,11 @@ }, "dateparser": { "hashes": [ - "sha256:107f3cc87a60770e10d111349adc1504224a6b60753a47a64b0ec842ab85b5a9", - "sha256:ceb159f1b4a9df54ed6209e91298097deafde476037f8611b4cb2b1cb8b31c58" + "sha256:070b29b5bbf4b1ec2cd51c96ea040dc68a614de703910a91ad1abba18f9f379f", + "sha256:86b8b7517efcc558f085a142cdb7620f0921543fcabdb538c8a4c4001d8178e3" ], "index": "pypi", - "version": "==1.1.5" + "version": "==1.1.8" }, "deprecation": { "hashes": [ @@ -426,19 +489,19 @@ }, "django": { "hashes": [ - "sha256:4b214a05fe4c99476e99e2445c8b978c8369c18d4dea8e22ec412862715ad763", - "sha256:ff56ebd7ead0fd5dbe06fe157b0024a7aaea2e0593bb3785fb594cf94dad58ef" + "sha256:44f714b81c5f190d9d2ddad01a532fe502fa01c4cb8faf1d081f4264ed15dcd8", + "sha256:f2f431e75adc40039ace496ad3b9f17227022e8b11566f4b363da44c7e44761e" ], "index": "pypi", - "version": "==4.1.5" + "version": "==4.1.7" }, "django-celery-results": { "hashes": [ - "sha256:75aa51970db5691cbf242c6a0ff50c8cdf419e265cd0e9b772335d06436c4b99", - "sha256:be91307c02fbbf0dda21993c3001c60edb74595444ccd6ad696552fe3689e85b" + "sha256:8631fd68158c41afddfc378840ecee2f10ddd7d4879e964f2597f483e4203269", + "sha256:efb68932bde8938794068a9d0929bea8601ec5f6a4150a7f7ab6e2a83a735938" ], "index": "pypi", - "version": "==2.4.0" + "version": "==2.5.0" }, "django-compression-middleware": { "hashes": [ @@ -450,11 +513,11 @@ }, "django-cors-headers": { "hashes": [ - "sha256:37e42883b5f1f2295df6b4bba96eb2417a14a03270cb24b2a07f021cd4487cf4", - "sha256:f9dc6b4e3f611c3199700b3e5f3398c28757dcd559c2f82932687f3d0443cfdf" + "sha256:5fbd58a6fb4119d975754b2bc090f35ec160a8373f276612c675b00e8a138739", + "sha256:684180013cc7277bdd8702b80a3c5a4b3fcae4abb2bf134dceb9f5dfe300228e" ], "index": "pypi", - "version": "==3.13.0" + "version": "==3.14.0" }, "django-extensions": { "hashes": [ @@ -472,6 +535,22 @@ "index": "pypi", "version": "==22.1" }, + "django-guardian": { + "hashes": [ + "sha256:440ca61358427e575323648b25f8384739e54c38b3d655c81d75e0cd0d61b697", + "sha256:c58a68ae76922d33e6bdc0e69af1892097838de56e93e78a8361090bcd9f89a0" + ], + "index": "pypi", + "version": "==2.4.0" + }, + "django-ipware": { + "hashes": [ + "sha256:4fa5607ee85e12ee5e158bc7569ff1e134fb1579681aa1ff3f0ed04be21be153", + "sha256:80b52a3f571a371519cc552798f1015b934dd5dd7738bfad87e101e861bd21b8" + ], + "index": "pypi", + "version": "==5.0.0" + }, "djangorestframework": { "hashes": [ "sha256:579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8", @@ -480,13 +559,21 @@ "index": "pypi", "version": "==3.14.0" }, - "filelock": { + "djangorestframework-guardian": { "hashes": [ - "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de", - "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d" + "sha256:1883756452d9bfcc2a51fb4e039a6837a8f6697c756447aa83af085749b59330", + "sha256:3bd3dd6ea58e1bceca5048faf6f8b1a93bb5dcff30ba5eb91b9a0e190a48a0c7" ], "index": "pypi", - "version": "==3.9.0" + "version": "==0.3.0" + }, + "filelock": { + "hashes": [ + "sha256:75997740323c5f12e18f10b494bc11c03e42843129f980f17c04352cc7b09d40", + "sha256:eb8f0f2d37ed68223ea63e3bddf2fac99667e4362c88b3f762e434d160190d18" + ], + "index": "pypi", + "version": "==3.10.2" }, "flower": { "hashes": [ @@ -514,97 +601,97 @@ }, "hiredis": { "hashes": [ - "sha256:0258bb84b4a1e015f14f891d91957042fa88f6f4e86cc0808d735ebbc1e3fc88", - "sha256:07e86649773e486a21e170d1396217e15833776d9e8f4a7121c28a1d37e032c9", - "sha256:0ae718e9db4b622072ff73d38bc9cd7711edfedc8a1e08efe25a6c8170446da4", - "sha256:10c596bce5e9dd379c68c17208716da2767bb6f6f2a71d748f9e4c247ced31e6", - "sha256:11801d9e96f39286ab558c6db940c39fc00150450ae1007d18b35437d2f79ad7", - "sha256:170c2080966721b42c5a8726e91c5fc271300a4ac9ddf8a5b79856cfd47553e1", - "sha256:17deb7d218a5ae9f05d2b19d51936231546973303747924fc17a2869aef0029a", - "sha256:19843e4505069085301c3126c91b4e48970070fb242d7c617fb6777e83b55541", - "sha256:1c040af9eb9b12602b4b714b90a1c2ac1109e939498d47b0748ec33e7a948747", - "sha256:21751e4b7737aaf7261a068758b22f7670155099592b28d8dde340bf6874313d", - "sha256:252d4a254f1566012b94e35cba577a001d3a732fa91e824d2076233222232cf9", - "sha256:27e89e7befc785a273cccb105840db54b7f93005adf4e68c516d57b19ea2aac2", - "sha256:2d39193900a03b900a25d474b9f787434f05a282b402f063d4ca02c62d61bdb9", - "sha256:38c1a56a30b953e3543662f950f498cfb17afed214b27f4fc497728fb623e0c9", - "sha256:39b61340ff2dcd99d5ded0ca5fc33c878d89a1426e2f7b6dbc7c7381e330bc8a", - "sha256:3a284bbf6503cd6ac1183b3542fe853a8be47fb52a631224f6dda46ba229d572", - "sha256:40c34aeecccb9474999839299c9d2d5ff46a62ed47c58645b7965f48944abd74", - "sha256:436dcbbe3104737e8b4e2d63a019a764d107d72d6b6ee3cd107097c1c263fd1e", - "sha256:4732a0bf877bbd69d4d1b38a3db2160252acb31894a48f324fd54f742f6b2123", - "sha256:4b51f5eb47e61c6b82cb044a1815903a77a4f840fa050fd2ff40d617c102d16c", - "sha256:4beaac5047317a73b27cf15b4f4e0d2abaafa8378e1a6ed4cf9ff420d8f88aba", - "sha256:4c7a7e4ccec7164cdf2a9bbedc0e7430492eb56d9355a41377f40058c481bccc", - "sha256:4ced076af04e28761d486501c58259247c1882fd19c7f94c18a257d143248eee", - "sha256:4d2d0e458c32cdafd9a0f0b0aaeb61b169583d074287721eee740b730b7654bd", - "sha256:4fe297a52a8fc1204eef646bebf616263509d089d472e25742913924b1449099", - "sha256:5359811bfdb10fca234cba4629e555a1cde6c8136025395421f486ce43129ae3", - "sha256:5560b09304ebaac5323a7402f5090f2a8559843200014f5adf1ff7517dd3805b", - "sha256:6050b519fb3b62d68a28a1941ae9dc5122e8820fef2b8e20a65cb3c1577332a0", - "sha256:61fd1c55efb48ba734628f096e7a50baf0df3f18e91183face5c07fba3b4beb7", - "sha256:637e563d5cbf79d8b04224f99cfce8001146647e7ce198f0b032e32e62079e3c", - "sha256:646f150fa73f9cbc69419e34a1aae318c9f39bd9640760aa46624b2815da0c2d", - "sha256:649c5a1f0952af50f008f0bbec5f0b1e519150220c0a71ef80541a0c128d0c13", - "sha256:653e33f69202c00eca35416ee23091447ad1e9f9a556cc2b715b2befcfc31b3c", - "sha256:65927e75da4265ec88d06cbdab20113a9e69bbac3aea1ec053d4d940f1c88fc8", - "sha256:66eaf6d5ea5207177ba8ffb9ee479eea743292267caf1d6b89b51cf9d5885d23", - "sha256:69c20816ac2af11701caf10e5b027fd33c6e8dfe7806ab71bc5191aa2a6d50f9", - "sha256:6f45509b43d720d64837c1211fcdea42acd48e71539b7152d74c16413ceea080", - "sha256:6f45f296998043345ecfc4f69a51fa4f3e80ca3659864df80b459095580968a6", - "sha256:72cab67bcceb2e998da2f28aad9ec7b1a5ece5888f7ac3d3723cccba62338703", - "sha256:79f2acf237428dd61faa5b49247999ff68f45b3552c57303fcfabd2002eab249", - "sha256:7e0aab2d6e60aa9f9e14c83396b4a58fb4aded712806486c79189bcae4a175ac", - "sha256:7e25dc06e02689a45a49fa5e2f48bdfdbc11c5b52bef792a8cb37e0b82a7b0ae", - "sha256:816b9ea96e7cc2496a1ac9c4a76db670827c1e31045cc377c66e64a20bb4b3ff", - "sha256:82bc6f5b92c9fcd5b5d6506000dd433006b126b193932c52a9bcc10dcc10e4fc", - "sha256:86c56359fd7aca6a9ca41af91636aef15d5ad6d19e631ebd662f233c79f7e100", - "sha256:8781f5b91d75abef529a33cf3509ba5fe540d2814de0c4602f0f5ba6f1669739", - "sha256:8a42e246a03086ae1430f789e37d7192113db347417932745c4700d8999f853a", - "sha256:8a92781e466f2f1f9d38720d8920cb094bc0d59f88219591bc12b1c12c9d471c", - "sha256:8ceb101095f8cce9ac672ed7244b002d83ea97af7f27bb73f2fbe7fe8e8f03c7", - "sha256:8de0334c212e069d49952e476e16c6b42ba9677cc1e2d2f4588bd9a39489a3ab", - "sha256:90b4355779970e121c219def3e35533ec2b24773a26fc4aa0f8271dd262fa2f2", - "sha256:96add2a205efffe5e19a256a50be0ed78fcb5e9503242c65f57928e95cf4c901", - "sha256:9bd6b934794bea92a15b10ac35889df63b28d2abf9d020a7c87c05dd9c6e1edd", - "sha256:9f068136e5119f2ba939ecd45c47b4e3cf6dd7ca9a65b6078c838029c5c1f564", - "sha256:b04b6c04fe13e1e30ba6f9340d3d0fb776a7e52611d11809fb59341871e050e5", - "sha256:b3a437e3af246dd06d116f1615cdf4e620e639dfcc923fe3045e00f6a967fc27", - "sha256:b5bd33ac8a572e2aa94b489dec35b0c00ca554b27e56ad19953e0bf2cbcf3ad8", - "sha256:b61732d75e2222a3b0060b97395df78693d5c3487fe4a5d0b75f6ac1affc68b9", - "sha256:b8e7415b0952b0dd6df3aa2d37b5191c85e54d6a0ac1449ddb1e9039bbb39fa5", - "sha256:b901e68f3a6da279388e5dbe8d3bc562dd6dd3ff8a4b90e4f62e94de36461777", - "sha256:b964d81db8f11a99552621acd24c97381a0fd401a57187ce9f8cb9a53f4b6f4e", - "sha256:bbf80c686e3f63d40b0ab42d3605d3b6d415c368a5d8a9764a314ebda6138650", - "sha256:c1d85dfdf37a8df0e0174fc0c762b485b80a2fc7ce9592ae109aaf4a5d45ba9a", - "sha256:c2b197e3613c3aef3933b2c6eb095bd4be9c84022aea52057697b709b400c4bc", - "sha256:c5a47c964c58c044a323336a798d8729722e09865d7e087eb3512df6146b39a8", - "sha256:c7336fddae533cbe786360d7a0316c71fe96313872c06cde20a969765202ab04", - "sha256:c7d8d0ca7b4f6136f8a29845d31cfbc3f562cbe71f26da6fca55aa4977e45a18", - "sha256:c9632cd480fbc09c14622038a9a5f2f21ef6ce35892e9fa4df8d3308d3f2cedf", - "sha256:cd43dbaa73322a0c125122114cbc2c37141353b971751d05798f3b9780091e90", - "sha256:cf6d85c1ffb4ec4a859b2f31cd8845e633f91ed971a3cce6f59a722dcc361b8c", - "sha256:cfc5e923828714f314737e7f856b3dccf8805e5679fe23f07241b397cd785f6c", - "sha256:d2d6e4caaffaf42faf14cfdf20b1d6fff6b557137b44e9569ea6f1877e6f375d", - "sha256:d304746e2163d3d2cbc4c08925539e00d2bb3edc9e79fce531b5468d4e264d15", - "sha256:d3d60e2af4ce93d6e45a50a9b5795156a8725495e411c7987a2f81ab14e99665", - "sha256:d64b2d90302f0dd9e9ba43e89f8640f35b6d5968668da82ba2d2652b2cc3c3d2", - "sha256:d67429ff99231137491d8c3daa097c767a9c273bb03ac412ed8f6acb89e2e52f", - "sha256:d9145d011b74bef972b485a09f391babaa101626dbb54afc2313d5682a746593", - "sha256:db59afa0edf194bea782e4686bfc496fc1cea2e24f310d769641e343d14cc929", - "sha256:e51e3fa176fecd19660f898c4238232e8ca0f5709e6451a664c996f9aec1b8e1", - "sha256:ea6f0f98e1721741b5bc3167a495a9f16459fe67648054be05365a67e67c29ba", - "sha256:ec060d6db9576f6723b5290448aea67160608556b5506eb947997d9d1ca6f7b7", - "sha256:ef2aa0485735c8608a92964e52ab9025ceb6003776184a1eb5d1701742cc910b", - "sha256:f14cccf931c859ba3169d766e892a3673a79649ec2ceca7ba95ea376b23fd222", - "sha256:f15e48545dadf3760220821d2f3c850e0c67bbc66aad2776c9d716e6216b5103", - "sha256:f4300e063045e11ee79b79a7c9426813ab8d97e340b15843374093225dde407d", - "sha256:f448146b86a8693dda5f02bb4cb2ef65c894db2cf743e7bf351978354ce685e3", - "sha256:f60fad285db733b2badba43f7036a1241cb3e19c17260348f3ff702e6eaa4980", - "sha256:f8b3233c1de155743ef34b0cae494e33befed5e0adba77762f5d8a8e417c5015", - "sha256:fbc960cd91e55e2281e1a330e7d1c4970b6a05567dd973c96e412b4d012e17c6" + "sha256:01e2e588392b5fdcc3a6aa0eb62a2eb2a142f829082fa4c3354228029d3aa1ce", + "sha256:02b9f928dc6cd43ed0f0ffc1c75fb209fb180f004b7e2e19994805f998d247aa", + "sha256:03ab1d545794bb0e09f3b1e2c8b3adcfacd84f6f2d402bfdcd441a98c0e9643c", + "sha256:03ab760fc96e0c5d36226eb727f30645bf6a53c97f14bfc0a4d0401bfc9b8af7", + "sha256:03dfb4ab7a2136ce1be305592553f102e1bd91a96068ab2778e3252aed20d9bc", + "sha256:0fc1f9a9791d028b2b8afa318ccff734c7fc8861d37a04ca9b3d27c9b05f9718", + "sha256:10dc34854e9acfb3e7cc4157606e2efcb497b1c6fca07bd6c3be34ae5e413f13", + "sha256:14dfccf4696d75395c587a5dafafb4f7aa0a5d55309341d10bc2e7f1eaa20771", + "sha256:1570fe4f93bc1ea487fb566f2b863fd0ed146f643a4ea31e4e07036db9e0c7f8", + "sha256:18103090b8eda9c529830e26594e88b0b1472055785f3ed29b8adc694d03862a", + "sha256:1b084fbc3e69f99865242f8e1ccd4ea2a34bf6a3983d015d61133377526c0ce2", + "sha256:1eb39b34d15220095dc49ad1e1082580d35cd3b6d9741def52988b5075e4ff03", + "sha256:1f1c44242c18b1f02e6d1162f133d65d00e09cc10d9165dccc78662def72abc2", + "sha256:20cfbc469400669a5999aa34ccba3872a1e34490ec3d5c84e8c0752c27977b7c", + "sha256:20ecbf87aac4f0f33f9c55ae15cb73b485d256c57518c590b7d0c9c152150632", + "sha256:24301ca2bf9b2f843b4c3015c90f161798fa3bbc5b95fd494785751b137dbbe2", + "sha256:2a355aff8dfa02ebfe67f0946dd706e490bddda9ea260afac9cdc43942310c53", + "sha256:2c18b00a382546e19bcda8b83dcca5b6e0dbc238d235723434405f48a18e8f77", + "sha256:2d1ba0799f3487294f72b2157944d5c3a4fb33c99e2d495d63eab98c7ec7234b", + "sha256:2ddc573809ca4374da1b24b48604f34f3d5f0911fcccfb1c403ff8d8ca31c232", + "sha256:2e10a66680023bd5c5a3d605dae0844e3dde60eac5b79e39f51395a2aceaf634", + "sha256:2e2f0ce3e8ab1314a52f562386220f6714fd24d7968a95528135ad04e88cc741", + "sha256:2f220b71235d2deab1b4b22681c8aee444720d973b80f1b86a4e2a85f6bcf1e1", + "sha256:339af17bb9817f8acb127247c79a99cad63db6738c0fb2aec9fa3d4f35d2a250", + "sha256:359e662324318baadb768d3c4ade8c4bdcfbb313570eb01e15d75dc5db781815", + "sha256:3645590b9234cafd21c8ecfbf252ad9aa1d67629f4bdc98ba3627f48f8f7b5aa", + "sha256:3a5fefac31c84143782ec1ebc323c04e733a6e4bfebcef9907a34e47a465e648", + "sha256:40ff3f1ec3a4046732e9e41df08dcb1a559847196755d295d43e32528aae39e6", + "sha256:449e18506d22af40977abd0f5a8979f57f88d4562fe591478a3438d76a15133d", + "sha256:4997f55e1208af95a8fbd0fa187b04c672fcec8f66e49b9ab7fcc45cc1657dc4", + "sha256:4cb992e3f9753c5a0c637f333c2010d1ad702aebf2d730ee4d484f32b19bae97", + "sha256:4ee9fe7cef505e8d925c70bebcc16bfab12aa7af922f948346baffd4730f7b00", + "sha256:5155bc1710df8e21aa48c9b2f4d4e13e4987e1efff363a1ef9c84fae2cc6c145", + "sha256:544d52fde3a8dac7854673eac20deca05214758193c01926ffbb0d57c6bf4ffe", + "sha256:55c7e9a9e05f8c0555bfba5c16d98492f8b6db650e56d0c35cc28aeabfc86020", + "sha256:57f73aa04d0b70ff436fb35fa7ea2b796aa7addbd7ebb8d1aa1f3d1b3e4439f1", + "sha256:5dac177a6ab8b4eb4d5e74978c29eef7cc9eef14086f814cb3893f7465578044", + "sha256:5f2cfd323f83985f2bed6ed013107873275025af270485b7d04c338bfb47bd14", + "sha256:632d79fd02b03e8d9fbaebbe40bfe34b920c5d0a9c0ef6270752e0db85208175", + "sha256:674f296c3c89cb53f97aa9ba2508d3f360ad481b9e0c0e3a59b342a15192adaf", + "sha256:688b9b7458b4f3f452fea6ed062c04fa1fd9a69d9223d95c6cb052581aba553b", + "sha256:6e6ea7532221c97fa6d79f7d19d452cd9d1141d759c54279cc4774ce24728f13", + "sha256:75349f7c8f77eb0fd33ede4575d1e5b0a902a8176a436bf03293d7fec4bd3894", + "sha256:82f869ca44bcafa37cd71cfa1429648fa354d6021dcd72f03a2f66bcb339c546", + "sha256:831461abe5b63e73719621a5f31d8fc175528a05dc09d5a8aa8ef565d6deefa4", + "sha256:855d258e7f1aee3d7fbd5b1dc87790b1b5016e23d369a97b934a25ae7bc0171f", + "sha256:8753c561b37cccbda7264c9b4486e206a6318c18377cd647beb3aa41a15a6beb", + "sha256:8c3a6998f6f88d7ca4d082fd26525074df13162b274d7c64034784b6fdc56666", + "sha256:8d43a7bba66a800279e33229a206861be09c279e261eaa8db4824e59465f4848", + "sha256:8e16dc949cc2e9c5fbcd08de05b5fb61b89ff65738d772863c5c96248628830e", + "sha256:9873898e26e50cd41415e9d1ea128bfdb60eb26abb4f5be28a4500fd7834dc0c", + "sha256:990916e8b0b4eedddef787e73549b562f8c9e73a7fea82f9b8ff517806774ad0", + "sha256:99350e89f52186146938bdba0b9c6cd68802c20346707d6ca8366f2d69d89b2f", + "sha256:9c270bd0567a9c60673284e000132f603bb4ecbcd707567647a68f85ef45c4d4", + "sha256:9e0f444d9062f7e487ef42bab2fb2e290f1704afcbca48ad3ec23de63eef0fda", + "sha256:9eb14339e399554bb436cc4628e8aaa3943adf7afcf34aba4cbd1e3e6b9ec7ec", + "sha256:a06d0dd84f10be6b15a92edbca2490b64917280f66d8267c63de99b6550308ad", + "sha256:a1ce725542133dbdda9e8704867ef52651886bd1ef568c6fd997a27404381985", + "sha256:a32a4474f7a4abdea954f3365608edee3f90f1de9fa05b81d214d4cad04c718a", + "sha256:a7114961ed78d708142f6c6eb1d2ed65dc3da4b5ae8a4660ad889dd7fc891971", + "sha256:a89f5afb9827eab07b9c8c585cd4dc95e5232c727508ae2c935d09531abe9e33", + "sha256:a9b306f4e870747eea8b008dcba2e9f1e4acd12b333a684bc1cc120e633a280e", + "sha256:aa90a5ee7a7f30c3d72d3513914b8f51f953a71b8cbd52a241b6db6685e55645", + "sha256:ac15e7e1efca51b4695e540c80c328accb352c9608da7c2df82d1fa1a3c539ef", + "sha256:ac7f8d68826f95a3652e44b0c12bfa74d3aa6531d47d5dbe6a2fbfc7979bc20f", + "sha256:b083a69e158138ffa95740ff6984d328259387b5596908021b3ccb946469ff66", + "sha256:b11960237a3025bf248135e5b497dc4923e83d137eb798fbfe78b40d57c4b156", + "sha256:b5d290f3d8f7a05c4adbe6c355055b87c7081bfa1eccd1ae5491216307ee5f53", + "sha256:ba6123ff137275e2f4c31fc74b93813fcbb79160d43f5357163e09638c7743de", + "sha256:bae004a0b978bf62e38d0eef5ab9156f8101d01167b3ca7054bd0994b773e917", + "sha256:c24d856e13c02bd9d28a189e47be70cbba6f2c2a4bd85a8cc98819db9e7e3e06", + "sha256:c446a2007985ae49c2ecd946dd819dea72b931beb5f647ba08655a1a1e133fa8", + "sha256:c73aa295c5369135247ff63aa1fbb116067485d0506cd787cc0c868e72bbee55", + "sha256:c9488ffb10acc6b121c498875278b0a6715d193742dc92d21a281712169ac06d", + "sha256:c95be6f20377d5995ef41a98314542e194d2dc9c2579d8f130a1aea78d48fd42", + "sha256:ccc33d87866d213f84f857a98f69c13f94fbf99a3304e328869890c9e49c8d65", + "sha256:d1acb7c957e5343303b3862947df3232dc7395da320b3b9ae076dfaa56ad59dc", + "sha256:d8bc89c7e33fecb083a199ade0131a34d20365a8c32239e218da57290987ca9a", + "sha256:d995846acc8e3339fb7833cd19bf6f3946ff5157c8488a4df9c51cd119a36870", + "sha256:e4e2da61a04251121cb551f569c3250e6e27e95f2a80f8351c36822eda1f5d2b", + "sha256:e4ec57886f20f4298537cb1ab9dbda98594fb8d7c724c5fbf9a4b55329fd4a63", + "sha256:e61c22fda5fc25d31bbced24a8322d33c5cb8cad9ba698634c16edb5b3e79a91", + "sha256:e7e61ab75b851aac2d6bc634d03738a242a6ef255a44178437b427c5ebac0a87", + "sha256:e86c800c6941698777fc58419216a66a7f76504f1cea72381d2ee206888e964d", + "sha256:e97d4e650b8d933a1229f341db92b610fc52b8d752490235977b63b81fbbc2cb", + "sha256:eaff526c2fed31c971b0fa338a25237ae5513550ef75d0b85b9420ec778cca45", + "sha256:ed44b3c711cecde920f238ac35f70ac08744f2079b6369655856e43944464a72", + "sha256:f1f1efbe9cc29a3af39cf7eed27225f951aed3f48a1149c7fb74529fb5ab86d4", + "sha256:fd0ca35e2cf44866137cbb5ae7e439fab18a0b0e0e1cf51d45137622d59ec012" ], - "version": "==2.1.1" + "version": "==2.2.2" }, "httptools": { "hashes": [ @@ -662,11 +749,11 @@ }, "humanize": { "hashes": [ - "sha256:8830ebf2d65d0395c1bd4c79189ad71e023f277c2c7ae00f263124432e6f2ffa", - "sha256:efb2584565cc86b7ea87a977a15066de34cdedaf341b11c851cfcfd2b964779c" + "sha256:401201aca462749773f02920139f302450cb548b70489b9b4b92be39fe3c3c50", + "sha256:5f1f22bc65911eb1a6ffe7659bd6598e33dcfeeb904eb16ee1e705a09bf75916" ], "markers": "python_version >= '3.7'", - "version": "==4.4.0" + "version": "==4.6.0" }, "hyperlink": { "hashes": [ @@ -699,11 +786,11 @@ }, "importlib-resources": { "hashes": [ - "sha256:7d543798b0beca10b6a01ac7cafda9f822c54db9e8376a6bf57e0cbd74d486b6", - "sha256:e4a96c8cc0339647ff9a5e0550d9f276fc5a01ffa276012b58ec108cfd7b8484" + "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6", + "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a" ], "markers": "python_version < '3.9'", - "version": "==5.10.2" + "version": "==5.12.0" }, "incremental": { "hashes": [ @@ -836,60 +923,71 @@ }, "msgpack": { "hashes": [ - "sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467", - "sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae", - "sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92", - "sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef", - "sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624", - "sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227", - "sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88", - "sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9", - "sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8", - "sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd", - "sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6", - "sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55", - "sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e", - "sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2", - "sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44", - "sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6", - "sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9", - "sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab", - "sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae", - "sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa", - "sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9", - "sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e", - "sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250", - "sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce", - "sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075", - "sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236", - "sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae", - "sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e", - "sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f", - "sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08", - "sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6", - "sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d", - "sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43", - "sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1", - "sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6", - "sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0", - "sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c", - "sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff", - "sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db", - "sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243", - "sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661", - "sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba", - "sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e", - "sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb", - "sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52", - "sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6", - "sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1", - "sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f", - "sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da", - "sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f", - "sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c", - "sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8" + "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164", + "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b", + "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c", + "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf", + "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd", + "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d", + "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c", + "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a", + "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e", + "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd", + "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025", + "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5", + "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705", + "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a", + "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d", + "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb", + "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11", + "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f", + "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c", + "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d", + "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea", + "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba", + "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87", + "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a", + "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c", + "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080", + "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198", + "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9", + "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a", + "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b", + "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f", + "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437", + "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f", + "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7", + "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2", + "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0", + "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48", + "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898", + "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0", + "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57", + "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8", + "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282", + "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1", + "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82", + "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc", + "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb", + "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6", + "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7", + "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9", + "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c", + "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1", + "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed", + "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c", + "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c", + "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77", + "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81", + "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a", + "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3", + "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086", + "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9", + "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f", + "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b", + "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d" ], - "version": "==1.0.4" + "version": "==1.0.5" }, "mysqlclient": { "hashes": [ @@ -914,45 +1012,45 @@ }, "numpy": { "hashes": [ - "sha256:0044f7d944ee882400890f9ae955220d29b33d809a038923d88e4e01d652acd9", - "sha256:0e3463e6ac25313462e04aea3fb8a0a30fb906d5d300f58b3bc2c23da6a15398", - "sha256:179a7ef0889ab769cc03573b6217f54c8bd8e16cef80aad369e1e8185f994cd7", - "sha256:2386da9a471cc00a1f47845e27d916d5ec5346ae9696e01a8a34760858fe9dd2", - "sha256:26089487086f2648944f17adaa1a97ca6aee57f513ba5f1c0b7ebdabbe2b9954", - "sha256:28bc9750ae1f75264ee0f10561709b1462d450a4808cd97c013046073ae64ab6", - "sha256:28e418681372520c992805bb723e29d69d6b7aa411065f48216d8329d02ba032", - "sha256:442feb5e5bada8408e8fcd43f3360b78683ff12a4444670a7d9e9824c1817d36", - "sha256:6ec0c021cd9fe732e5bab6401adea5a409214ca5592cd92a114f7067febcba0c", - "sha256:7094891dcf79ccc6bc2a1f30428fa5edb1e6fb955411ffff3401fb4ea93780a8", - "sha256:84e789a085aabef2f36c0515f45e459f02f570c4b4c4c108ac1179c34d475ed7", - "sha256:87a118968fba001b248aac90e502c0b13606721b1343cdaddbc6e552e8dfb56f", - "sha256:8e669fbdcdd1e945691079c2cae335f3e3a56554e06bbd45d7609a6cf568c700", - "sha256:ad2925567f43643f51255220424c23d204024ed428afc5aad0f86f3ffc080086", - "sha256:b0677a52f5d896e84414761531947c7a330d1adc07c3a4372262f25d84af7bf7", - "sha256:b07b40f5fb4fa034120a5796288f24c1fe0e0580bbfff99897ba6267af42def2", - "sha256:b09804ff570b907da323b3d762e74432fb07955701b17b08ff1b5ebaa8cfe6a9", - "sha256:b162ac10ca38850510caf8ea33f89edcb7b0bb0dfa5592d59909419986b72407", - "sha256:b31da69ed0c18be8b77bfce48d234e55d040793cebb25398e2a7d84199fbc7e2", - "sha256:caf65a396c0d1f9809596be2e444e3bd4190d86d5c1ce21f5fc4be60a3bc5b36", - "sha256:cfa1161c6ac8f92dea03d625c2d0c05e084668f4a06568b77a25a89111621566", - "sha256:dae46bed2cb79a58d6496ff6d8da1e3b95ba09afeca2e277628171ca99b99db1", - "sha256:ddc7ab52b322eb1e40521eb422c4e0a20716c271a306860979d450decbb51b8e", - "sha256:de92efa737875329b052982e37bd4371d52cabf469f83e7b8be9bb7752d67e51", - "sha256:e274f0f6c7efd0d577744f52032fdd24344f11c5ae668fe8d01aac0422611df1", - "sha256:ed5fb71d79e771ec930566fae9c02626b939e37271ec285e9efaf1b5d4370e7d", - "sha256:ef85cf1f693c88c1fd229ccd1055570cb41cdf4875873b7728b6301f12cd05bf", - "sha256:f1b739841821968798947d3afcefd386fa56da0caf97722a5de53e07c4ccedc7" + "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22", + "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f", + "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9", + "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96", + "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0", + "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a", + "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281", + "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04", + "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468", + "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253", + "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756", + "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a", + "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb", + "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d", + "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0", + "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910", + "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978", + "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5", + "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f", + "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a", + "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5", + "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2", + "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d", + "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95", + "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5", + "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d", + "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780", + "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa" ], "index": "pypi", - "version": "==1.24.1" + "version": "==1.24.2" }, "ocrmypdf": { "hashes": [ - "sha256:68521c088b6b2fb1a77d6e72468e1484d68f0e948aa4d507f5db14449b70c5f1", - "sha256:ae9b07a858a50df58b172560b2a565d9864340ac82f9c8ac3f422905a25d3393" + "sha256:779b6f77ece5836b4ac703ba02a4bb0ccb758dbb9b4dad1feab3fccd4dba33cf", + "sha256:c731bd3b6bfd67dc495edc97946f159ba99631854bf7671c2d35c36f30b3ffa8" ], "index": "pypi", - "version": "==14.0.2" + "version": "==14.0.4" }, "packaging": { "hashes": [ @@ -972,11 +1070,11 @@ }, "pdf2image": { "hashes": [ - "sha256:1469335050a17657f94c2f1ef3a23e57807d631ad5bcbaec997c2c42a8186f4a", - "sha256:86761091eee35f4641ea98dfddb254254361d018be698a199aff7c1d37331803" + "sha256:74208810c2cef4d9e347769b8e62a52303982ddb4f2dfd744c7ab4b940ae287e", + "sha256:b6154164af3677211c22cbb38b2bd778b43aca02758e962fe1e231f6d3b0e380" ], "index": "pypi", - "version": "==1.16.2" + "version": "==1.16.3" }, "pdfminer.six": { "hashes": [ @@ -988,51 +1086,46 @@ }, "pikepdf": { "hashes": [ - "sha256:07517bb61cd3fc9b936aa96f5475e5dc94314332ae79de0536b3c249ecc95998", - "sha256:0db08ae929f033397fd022faab82887bbe6f8ac00ae6a9a9e787d58a369ec30c", - "sha256:16cc3b448cfb1a995871e1aa4e693b6f5c085f00e326cec6514624b8e05a8c2c", - "sha256:1e328e664dffb154435b655bf1cdba0a1aa11400340c2e370b8e4d52cf909d9f", - "sha256:28f3ab6fca2ec0ab5da334bb2226e52dd51f266d97957eddadc96ebab60d18cc", - "sha256:3afdd4ca2ed39addd62d117c38f277b93d10e623a197a0f186733574efba026d", - "sha256:3f981177fbb9d9125056d92904a8bcc11aef5bea5cf4744490ec7aa72cc6421b", - "sha256:405a1137590061749fd90cd8c8b73991782ae4891113465f02189bf04862885c", - "sha256:40edd45db5d2175d4f5cfc7972da78fcb84808d920fff585c13faea1d65445b4", - "sha256:52b105b5877cbac87cceb645ff946b7bfb66c0dba206dcc52eadde4465a02043", - "sha256:5423ee3f35b60b27cbd16ec973d9947e885c7f62561f53b9bf97af7026df12e2", - "sha256:63797bf5f0a13aabca2a3310ac414065ba25b3bae0cdc74e8f028a3fc8910ca4", - "sha256:72660d2b07183b523467a9ed31cc05891f7b155710c62a0e6fc52c9e7817105c", - "sha256:77c010ef65f36c6670893bde727a2bf89f72845f1695d602c35e1a92f92d57a0", - "sha256:83c45b11c982d9b0c0856e53f86a4fddf4a2920c39cd40590b91e82a66043353", - "sha256:90463e9b47183847c0156b0453480aac8aac5e036ccef00bf1ea040a1bcefec8", - "sha256:9bb2720ea8f389d0a02b562f63c74ae430bb6ac15b74e2ce5c611150b3ee6057", - "sha256:a1cd426e36b4ced1801adbc08a52ef9cd86ef8d99ecaacff5a15cb901b6baec0", - "sha256:a72fb9f814cef22473e136447689b1167c0b7d6b62cd699c8397f7d15378fb23", - "sha256:c7806507865b41644f7b96464f81a1ad56d6444e12cb09de5ac7071ab745c1d2", - "sha256:ccf25468bba622b8e92c2ecceb7d9a5933a0ec74b0dcdac0cf2c4d49742fe113", - "sha256:cd351a55560d6bc2d543c4448ba4dcca92c1b50121d2d00113193406edb67150", - "sha256:db814ab6ea2746984f37d09b57f4e62788eb93491f2a8257ad53f943d346bae1", - "sha256:dbae22fadb5f781e54539e2d88bd8c6f93fe1f465c0e657ea468c55175d79033", - "sha256:e05513d9d1dc781eeb58a3357d53da0b3c9a582fab58e696d57ea4e88422f896", - "sha256:e4b688e2122d5b44de1d83e4f2dba1e689d0fcdc7508f1774de64f6333256ebd", - "sha256:e52f8472b7fa26491abbca5baf0225996b7c17bc1de5e664de33e0b022e647e7", - "sha256:e5a710949b1bb49e8c1d4869797388b7d6ee97ece107f3b7e7797d26bcc3fdca", - "sha256:ea91ebe608a973e9ce78abc26daba0db56b7b6ba78156232adf6cacefd14180a", - "sha256:eda70f609f1918c540d274e4ebe31d604681ba7c6495be5d6f8f3043c6a51500", - "sha256:edceacd206ee52e48da9381615188e1e9928dfc73dbf94283933c9f9b0cf02c3", - "sha256:ef1bc379b6a367aa6048f72ef27a1f3f5b7c93d45517dc0adf9f70bf76c75092", - "sha256:f11ec2dda35bc6cdb7b496e1253282de923200d183424611810e4e3f01643adc", - "sha256:f155773851703aa986d4b5ad466466c2151fc31f27c8e038e95946cf651bdeca", - "sha256:f17a97eb9f89c3837c32336d0c4beaa53bea438e83658467b9c5aa780ab199e7", - "sha256:fae94f86904ead60b7f675118507f4840535a11c206d66e68b938285585a82d0", - "sha256:fb03b2214687b5c1354d854e14961cec72b181c3cbd80520c6fbcc456e63d222", - "sha256:fd4b193a1ba3108c4fb7b4ee962d349fd42e20dc25b8205cc442f88f4cdb111a", - "sha256:ff4c60b6fd701a28e5d0ede49dfa3691115c4434e196901e139dcf12ac025c43" + "sha256:0a0914d482aa1b80584659c44aef1b2770b473a504cedc209fa6db3f24575ef6", + "sha256:1b8dfdc2184aca33e271b104e0ec468e52ac6591ab51bcd32c2e53bc8cdeeffe", + "sha256:1faed2d2553aafb6f4969f0a970958d1847869631eb1c82f5a91ef636817b93a", + "sha256:260efb3c6aa44c013da2278872593bc4712facd5b766de2b2d88c53c5f524449", + "sha256:3af2fd5762e222bf5133acec4f7d56719dda4a9b7dd468eb1c37a10055ff64b2", + "sha256:3e1490beb13b2d1a509aeb98fb0669ab7dea4035abd1df0e12085393f556654a", + "sha256:422cb31ed4b489b9e18f4a803fab7c6ea10ef6916960a5d8b5e531c5af3bfbca", + "sha256:4290059bdf8d05cf3a7ba185d64b5756c745f178fc102aec41bbcd4a057e02f8", + "sha256:5aca06b88b2d53122baaf3009bcfaec291b3c408846e401cddf8b2e89a0e0fe6", + "sha256:7eef9fe4d06cb01482486561292b3c3675d7506328f990cb60b26994dd7ac1d8", + "sha256:80d4eb3624980c1292d7e2db66c569f146012e86004b8739a3580346ee8f69a9", + "sha256:81caa67a08fdf683c521497fafd48d9b7bdf02549625329d8a1bb8ce706ef362", + "sha256:910a45cc6506dd899032638c3775f708278d99ccc9c3681fb75a57b55051d262", + "sha256:93cd0357140dfa79e16c1d9249775d11eebb392665fcdb1528684aae71966b4e", + "sha256:93d98f460eb209b89ce855a5defb059ca82326042ee52dcb692a05e1c1a24bef", + "sha256:9411824a7aa477fcad209e6e01cf23f0ecbd6833805812eca2026e372c724096", + "sha256:a32215111f6713c934b9ed9a6fd686940559953539e81f70bfb860efbddfe3c3", + "sha256:a59559a1e480f4a7229f600d6fce22b1d32729df8552099542e37a95c02a572f", + "sha256:ab07529096da5ea410dea81add8d724ac91f093b982b86f503771bfe8864e48c", + "sha256:b0f1ca24118517970cfc78f902ded681c2e399dfb21ff04745143b4156dd551e", + "sha256:b7711e2c0ff1ad265f5c0497f519584c029c9906d72ad78e89e260c57964a5c0", + "sha256:b860c44503b6bb237b97c2ae06d47dc645140649d61d2f5dd5276438bc60e2e0", + "sha256:b90bb4e77f9ea8a21d94c5d25e1b416f08a668377ea48edf8808be49f09f906a", + "sha256:ba75e70c932830fb7253b343f43f0ce03317661971cd3df03fc27c7cdb06992e", + "sha256:bf9129507b7258dda27845e1ee6c7c4121674a04c0a1a0ac1115c19e5b4a2edf", + "sha256:cf912ab70313fd0f23a32811f8c3ea815a716ecfd6ee84a564c833d0c06f5483", + "sha256:dec854f908973c5c3760d246539c58c03b7b701a2bed45173f9a4e4d766d3eab", + "sha256:e5bebaca43757c9c357637954b8e49c9221c21a40260394ec4c4fbafada5ee87", + "sha256:e900d2314a1019c98c9d3d50445af475ce2f16e8a54e44875201869f8561a3b2", + "sha256:eb310e903b9a172de352446458390ccce31a2bb19a387f63d37b135cb4cca3f1", + "sha256:edea85799240a3b7534650b275bc7e87519ddf0f47ccf9bdad09b22381da5442", + "sha256:f7f0bfa897ecabbee3f7dc2ac10a8dd954c42a6f858fbef13019d0cef1b60127", + "sha256:fcfd391b3a255b460a9040ca8e47dd6f36c6ea43d2b61cd00b5ecb06000a6b8f" ], "index": "pypi", - "version": "==6.2.8.post1" + "version": "==7.1.1" }, "pillow": { "hashes": [ + "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33", "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b", "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e", "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35", @@ -1066,10 +1159,16 @@ "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a", "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e", "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f", + "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848", "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57", + "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f", + "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c", "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9", "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5", + "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9", "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d", + "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0", + "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1", "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e", "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815", "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0", @@ -1117,27 +1216,27 @@ }, "portalocker": { "hashes": [ - "sha256:102ed1f2badd8dec9af3d732ef70e94b215b85ba45a8d7ff3c0003f19b442f4e", - "sha256:964f6830fb42a74b5d32bce99ed37d8308c1d7d44ddf18f3dd89f4680de97b39" + "sha256:032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51", + "sha256:a07c5b4f3985c3cf4798369631fb7011adb498e2a46d8440efc75a8f29a0f983" ], "markers": "python_version >= '3'", - "version": "==2.6.0" + "version": "==2.7.0" }, "prometheus-client": { "hashes": [ - "sha256:be26aa452490cfcf6da953f9436e95a9f2b4d578ca80094b4458930e5f584ab1", - "sha256:db7c05cbd13a0f79975592d112320f2605a325969b270a94b71dcabc47b931d2" + "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab", + "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48" ], "markers": "python_version >= '3.6'", - "version": "==0.15.0" + "version": "==0.16.0" }, "prompt-toolkit": { "hashes": [ - "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63", - "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305" + "sha256:23ac5d50538a9a38c8bde05fecb47d0b403ecd0662857a86f886f798563d5b9b", + "sha256:45ea77a2f7c60418850331366c81cf6b5b9cf4c7fd34616f733c5427e6abbb1f" ], - "markers": "python_full_version >= '3.6.2'", - "version": "==3.0.36" + "markers": "python_full_version >= '3.7.0'", + "version": "==3.0.38" }, "psycopg2": { "hashes": [ @@ -1218,11 +1317,11 @@ }, "python-dotenv": { "hashes": [ - "sha256:1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5", - "sha256:b77d08274639e3d34145dfa6c7008e66df0f04b7be7a75fd0d5292c191d79045" + "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba", + "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a" ], "index": "pypi", - "version": "==0.21.0" + "version": "==1.0.0" }, "python-gnupg": { "hashes": [ @@ -1242,10 +1341,10 @@ }, "pytz": { "hashes": [ - "sha256:7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a", - "sha256:93007def75ae22f7cd991c84e02d434876818661f8df9ad5df9e950ff4e52cfd" + "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0", + "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a" ], - "version": "==2022.7" + "version": "==2022.7.1" }, "pytz-deprecation-shim": { "hashes": [ @@ -1409,105 +1508,77 @@ "hiredis" ], "hashes": [ - "sha256:a721fd4d715fcd947848ed8fa02c2efd8224279979e0b721d9fdac6c4db35e93", - "sha256:f7a870c44868ab87bbecd6211c6d7c8720b1e9a796b743fbc4725d7ec75651c3" + "sha256:56732e156fe31801c4f43396bd3ca0c2a7f6f83d7936798531b9848d103381aa", + "sha256:7df17a0a2b72a4c8895b462dd07616c51b1dcb48fdd7ecb7b6f4bf39ecb2e94e" ], "index": "pypi", - "version": "==4.4.1" + "version": "==4.5.3" }, "regex": { "hashes": [ - "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad", - "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4", - "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd", - "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc", - "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d", - "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066", - "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec", - "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9", - "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e", - "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8", - "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e", - "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783", - "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6", - "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1", - "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c", - "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4", - "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1", - "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1", - "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7", - "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8", - "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe", - "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d", - "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b", - "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8", - "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c", - "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af", - "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49", - "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714", - "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542", - "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318", - "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e", - "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5", - "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc", - "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144", - "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453", - "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5", - "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61", - "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11", - "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a", - "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54", - "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73", - "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc", - "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347", - "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c", - "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66", - "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c", - "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93", - "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443", - "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc", - "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1", - "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892", - "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8", - "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001", - "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa", - "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90", - "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c", - "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0", - "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692", - "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4", - "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5", - "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690", - "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83", - "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66", - "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f", - "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f", - "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4", - "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee", - "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81", - "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95", - "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9", - "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff", - "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e", - "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5", - "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6", - "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7", - "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1", - "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394", - "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6", - "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742", - "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57", - "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b", - "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7", - "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b", - "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244", - "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af", - "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185", - "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8", - "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5" + "sha256:0a2a851d0548a4e298d88e3ceeb4bad4aab751cf1883edf6150f25718ce0207a", + "sha256:148ad520f41021b97870e9c80420e6cdaadcc5e4306e613aed84cd5d53f8a7ca", + "sha256:159c7b83488a056365119ada0bceddc06a455d3db7a7aa3cf07f13b2878b885f", + "sha256:1937946dd03818845bd9c1713dfd3173a7b9a324e6593a235fc8c51c9cd460eb", + "sha256:20ce96da2093e72e151d6af8217a629aeb5f48f1ac543c2fffd1d87c57699d7e", + "sha256:24242e5f26823e95edd64969bd206d4752c1a56a744d8cbcf58461f9788bc0c7", + "sha256:2e2e6baf4a1108f84966f44870b26766d8f6d104c9959aae329078327c677122", + "sha256:328a70e578f37f59eb54e8450b5042190bbadf2ef7f5c0b60829574b62955ed7", + "sha256:3371975b165c1e859e1990e5069e8606f00b25aed961cfd25b7bac626b1eb5a9", + "sha256:33bab9c9af936123b70b9874ce83f2bcd54be76b97637b33d31560fba8ad5d78", + "sha256:33c887b658afb144cdc8ce9156a0e1098453060c18b8bd5177f831ad58e0d60d", + "sha256:3582db55372eaee9e998d378109c4b9b15beb2c84624c767efe351363fada9c4", + "sha256:3b4da28d89527572f0d4a24814e353e1228a7aeda965e5d9265c1435a154b17a", + "sha256:3c4fa90fd91cc2957e66195ce374331bebbc816964864f64b42bd14bda773b53", + "sha256:3e66cfc915f5f7e2c8a0af8a27f87aa857f440de7521fd7f2682e23f082142a1", + "sha256:3f6f29cb134d782685f8eda01d72073c483c7f87b318b5101c7001faef7850f5", + "sha256:43469c22fcf705a7cb59c7e01d6d96975bdbc54c1138900f04d11496489a0054", + "sha256:4ad467524cb6879ce42107cf02a49cdb4a06f07fe0e5f1160d7db865a8d25d4b", + "sha256:4c9c3db90acd17e4231344a23616f33fd79837809584ce30e2450ca312fa47aa", + "sha256:533ba64d67d882286557106a1c5f12b4c2825f11b47a7c209a8c22922ca882be", + "sha256:548257463696daf919d2fdfc53ee4b98e29e3ffc5afddd713d83aa849d1fa178", + "sha256:55f907c4d18a5a40da0ceb339a0beda77c9df47c934adad987793632fb4318c3", + "sha256:5826e7fb443acb49f64f9648a2852efc8d9af2f4c67f6c3dca69dccd9e8e1d15", + "sha256:59a15c2803c20702d7f2077807d9a2b7d9a168034b87fd3f0d8361de60019a1e", + "sha256:59b3aab231c27cd754d6452c43b12498d34e7ab87d69a502bd0220f4b1c090c4", + "sha256:5da83c964aecb6c3f2a6c9a03f3d0fa579e1ad208e2c264ba826cecd19da11fa", + "sha256:60b545806a433cc752b9fa936f1c0a63bf96a3872965b958b35bd0d5d788d411", + "sha256:60fcef5c3144d861b623456d87ca7fff7af59a4a918e1364cdd0687b48285285", + "sha256:617d101b95151d827d5366e9c4225a68c64d56065e41ab9c7ef51bb87f347a8a", + "sha256:68e9add923bda8357e6fe65a568766feae369063cb7210297067675cce65272f", + "sha256:7798b3d662f70cea425637c54da30ef1894d426cab24ee7ffaaccb24a8b17bb8", + "sha256:80a288b21b17e39fb3630cf1d14fd704499bb11d9c8fc110662a0c57758d3d3e", + "sha256:81291006a934052161eae8340e7731ea6b8595b0c27dd4927c4e8a489e1760e2", + "sha256:8527ea0978ed6dc58ccb3935bd2883537b455c97ec44b5d8084677dfa817f96b", + "sha256:87016850c13082747bd120558e6750746177bd492b103b2fca761c8a1c43fba9", + "sha256:88552925fd22320600c59ee80342d6eb06bfa9503c3a402d7327983f5fa999d9", + "sha256:8d7477ebaf5d3621c763702e1ec0daeede8863fb22459c5e26ddfd17e9b1999c", + "sha256:97326d62255203c6026896d4b1ad6b5a0141ba097cae00ed3a508fe454e96baf", + "sha256:a4c7b8c5a3a186b49415af3be18e4b8f93b33d6853216c0a1d7401736b703bce", + "sha256:aff7c778d9229d66f716ad98a701fa91cf97935ae4a32a145ae9e61619906aaa", + "sha256:b280cb303fed94199f0b976595af71ebdcd388fb5e377a8198790f1016a23476", + "sha256:b59233cb8df6b60fff5f3056f6f342a8f5f04107a11936bf49ebff87dd4ace34", + "sha256:bdab2c90665b88faf5cc5e11bf835d548f4b8d8060c89fc70782b6020850aa1c", + "sha256:c00c357a4914f58398503c7f716cf1646b1e36b8176efa35255f5ebfacedfa46", + "sha256:c95a977cfdccb8ddef95ddd77cf586fe9dc327c7c93cf712983cece70cdaa1be", + "sha256:cdd3d2df486c9a8c6d08f78bdfa8ea7cf6191e037fde38c2cf6f5f0559e9d353", + "sha256:d15a0cc48f7a3055e89df1bd6623a907c407d1f58f67ff47064e598d4a550de4", + "sha256:d40cecf4bcb2cb37c59e3c79e5bbc45d47e3f3e07edf24e35fc5775db2570058", + "sha256:d4d3571c8eb21f0fbe9f0b21b49092c24d442f9a295f079949df3551b2886f29", + "sha256:d94a0d25e517c76c9ce9e2e2635d9d1a644b894f466a66a10061f4e599cdc019", + "sha256:dcc5b0d6a94637c071a427dc4469efd0ae4fda8ff384790bc8b5baaf9308dc3e", + "sha256:e00b046000b313ffaa2f6e8d7290b33b08d2005150eff4c8cf3ad74d011888d1", + "sha256:e1b56dac5e86ab52e0443d63b02796357202a8f8c5966b69f8d4c03a94778e98", + "sha256:e30d9a6fd7a7a6a4da6f80d167ce8eda4a993ff24282cbc73f34186c46a498db", + "sha256:f1977c1fe28173f2349d42c59f80f10a97ce34f2bedb7b7f55e2e8a8de9b7dfb", + "sha256:f2bc8a9076ea7add860d57dbee0554a212962ecf2a900344f2fc7c56a02463b0", + "sha256:f311ca33fcb9f8fb060c1fa76238d8d029f33b71a2021bafa5d423cc25965b54", + "sha256:f579a202b90c1110d0894a86b32a89bf550fdb34bdd3f9f550115706be462e19", + "sha256:fa41a427d4f03ec6d6da2fd8a230f4f388f336cd7ca46b46c4d2a1bca3ead85a", + "sha256:fd47362e03acc780aad5a5bc4624d495594261b55a1f79a5b775b6be865a5911" ], - "markers": "python_version >= '3.6'", - "version": "==2022.10.31" + "markers": "python_version >= '3.8'", + "version": "==2023.3.22" }, "reportlab": { "hashes": [ @@ -1562,38 +1633,38 @@ }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" ], "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==2.28.1" + "version": "==2.28.2" }, "scikit-learn": { "hashes": [ - "sha256:0834e4cec2a2e0d8978f39cb8fe1cad3be6c27a47927e1774bf5737ea65ec228", - "sha256:184a42842a4e698ffa4d849b6019de50a77a0aa24d26afa28fa49c9190bb144b", - "sha256:1beaa631434d1f17a20b1eef5d842e58c195875d2bc11901a1a70b5fe544745b", - "sha256:23a88883ca60c571a06278e4726b3b51b3709cfa4c93cacbf5568b22ba960899", - "sha256:25ba705ee1600ffc5df1dccd8fae129d7c6836e44ffcbb52d78536c9eaf8fcf9", - "sha256:40f3ff68c505cb9d1f3693397c73991875d609da905087e00e7b4477645ec67b", - "sha256:4e1ea0bc1706da45589bcf2490cde6276490a1b88f9af208dbb396fdc3a0babf", - "sha256:5546a8894a0616e92489ef995b39a0715829f3df96e801bb55cbf196be0d9649", - "sha256:680b65b3caee469541385d2ca5b03ff70408f6c618c583948312f0d2125df680", - "sha256:6b63ca2b0643d30fbf9d25d93017ed3fb8351f31175d82d104bfec60cba7bb87", - "sha256:83c772fa8c64776ad769fd764752c8452844307adcf10dee3adcc43988260f21", - "sha256:867023a044fdfe59e5014a7fec7a3086a8928f10b5dce9382eedf4135f6709a2", - "sha256:bc7073e025b62c1067cbfb76e69d08650c6b9d7a0e7afdfa20cb92d4afe516f6", - "sha256:ceb0008f345188aa236e49c973dc160b9ed504a3abd7b321a0ecabcb669be0bd", - "sha256:d395730f26d8fc752321f1953ddf72647c892d8bed74fad4d7c816ec9b602dfa", - "sha256:da29d2e379c396a63af5ed4b671ad2005cd690ac373a23bee5a0f66504e05272", - "sha256:de897720173b26842e21bed54362f5294e282422116b61cd931d4f5d870b9855", - "sha256:e9535e867281ae6987bb80620ba14cf1649e936bfe45f48727b978b7a2dbe835", - "sha256:f17420a8e3f40129aeb7e0f5ee35822d6178617007bb8f69521a2cefc20d5f00", - "sha256:fc0a72237f0c56780cf550df87201a702d3bdcbbb23c6ef7d54c19326fa23f19", - "sha256:fd3480c982b9e616b9f76ad8587804d3f4e91b4e2a6752e7dafb8a2e1f541098" + "sha256:065e9673e24e0dc5113e2dd2b4ca30c9d8aa2fa90f4c0597241c93b63130d233", + "sha256:2dd3ffd3950e3d6c0c0ef9033a9b9b32d910c61bd06cb8206303fb4514b88a49", + "sha256:2e2642baa0ad1e8f8188917423dd73994bf25429f8893ddbe115be3ca3183584", + "sha256:44b47a305190c28dd8dd73fc9445f802b6ea716669cfc22ab1eb97b335d238b1", + "sha256:6477eed40dbce190f9f9e9d0d37e020815825b300121307942ec2110302b66a3", + "sha256:6fe83b676f407f00afa388dd1fdd49e5c6612e551ed84f3b1b182858f09e987d", + "sha256:7d5312d9674bed14f73773d2acf15a3272639b981e60b72c9b190a0cffed5bad", + "sha256:7f69313884e8eb311460cc2f28676d5e400bd929841a2c8eb8742ae78ebf7c20", + "sha256:8156db41e1c39c69aa2d8599ab7577af53e9e5e7a57b0504e116cc73c39138dd", + "sha256:8429aea30ec24e7a8c7ed8a3fa6213adf3814a6efbea09e16e0a0c71e1a1a3d7", + "sha256:8b0670d4224a3c2d596fd572fb4fa673b2a0ccfb07152688ebd2ea0b8c61025c", + "sha256:953236889928d104c2ef14027539f5f2609a47ebf716b8cbe4437e85dce42744", + "sha256:99cc01184e347de485bf253d19fcb3b1a3fb0ee4cea5ee3c43ec0cc429b6d29f", + "sha256:9c710ff9f9936ba8a3b74a455ccf0dcf59b230caa1e9ba0223773c490cab1e51", + "sha256:ad66c3848c0a1ec13464b2a95d0a484fd5b02ce74268eaa7e0c697b904f31d6c", + "sha256:bf036ea7ef66115e0d49655f16febfa547886deba20149555a41d28f56fd6d3c", + "sha256:dfeaf8be72117eb61a164ea6fc8afb6dfe08c6f90365bde2dc16456e4bc8e45f", + "sha256:e6e574db9914afcb4e11ade84fab084536a895ca60aadea3041e85b8ac963edb", + "sha256:ea061bf0283bf9a9f36ea3c5d3231ba2176221bbd430abd2603b1c3b2ed85c89", + "sha256:fe0aa1a7029ed3e1dcbf4a5bc675aa3b1bc468d9012ecf6c6f081251ca47f590", + "sha256:fe175ee1dab589d2e1033657c5b6bec92a8a3b69103e3dd361b58014729975c3" ], "index": "pypi", - "version": "==1.2.0" + "version": "==1.2.2" }, "scipy": { "hashes": [ @@ -1711,11 +1782,11 @@ }, "setuptools": { "hashes": [ - "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", - "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" + "sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077", + "sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2" ], "markers": "python_version >= '3.7'", - "version": "==65.6.3" + "version": "==67.6.0" }, "six": { "hashes": [ @@ -1776,11 +1847,11 @@ }, "tqdm": { "hashes": [ - "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4", - "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1" + "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5", + "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671" ], "index": "pypi", - "version": "==4.64.1" + "version": "==4.65.0" }, "twisted": { "extras": [ @@ -1795,19 +1866,19 @@ }, "txaio": { "hashes": [ - "sha256:2e4582b70f04b2345908254684a984206c0d9b50e3074a24a4c55aba21d24d01", - "sha256:41223af4a9d5726e645a8ee82480f413e5e300dd257db94bc38ae12ea48fb2e5" + "sha256:aaea42f8aad50e0ecfb976130ada140797e9dcb85fad2cf72b0f37f8cefcb490", + "sha256:f9a9216e976e5e3246dfd112ad7ad55ca915606b60b84a757ac769bd404ff704" ], - "markers": "python_version >= '3.6'", - "version": "==22.2.1" + "markers": "python_version >= '3.7'", + "version": "==23.1.1" }, "typing-extensions": { "hashes": [ - "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", - "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" + "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb", + "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4" ], - "markers": "python_version < '3.10'", - "version": "==4.4.0" + "markers": "python_version >= '3.7'", + "version": "==4.5.0" }, "tzdata": { "hashes": [ @@ -1819,30 +1890,30 @@ }, "tzlocal": { "hashes": [ - "sha256:89885494684c929d9191c57aa27502afc87a579be5cdd3225c77c463ea043745", - "sha256:ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7" + "sha256:3f21d09e1b2aa9f2dacca12da240ca37de3ba5237a93addfd6d593afe9073355", + "sha256:b44c4388f3d34f25862cfbb387578a4d70fec417649da694a132f628a23367e2" ], - "markers": "python_version >= '3.6'", - "version": "==4.2" + "markers": "python_version >= '3.7'", + "version": "==4.3" }, "urllib3": { "hashes": [ - "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", - "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", + "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.13" + "version": "==1.26.15" }, "uvicorn": { "extras": [ "standard" ], "hashes": [ - "sha256:a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8", - "sha256:c3ed1598a5668208723f2bb49336f4509424ad198d6ab2615b7783db58d919fd" + "sha256:0fac9cb342ba099e0d582966005f3fdba5b0290579fed4a6266dc702ca7bb032", + "sha256:e47cac98a6da10cd41e6fd036d472c6f58ede6c5dbee3dbee3ef7a100ed97742" ], "index": "pypi", - "version": "==0.20.0" + "version": "==0.21.1" }, "uvloop": { "hashes": [ @@ -1889,37 +1960,37 @@ }, "watchdog": { "hashes": [ - "sha256:102a60093090fc3ff76c983367b19849b7cc24ec414a43c0333680106e62aae1", - "sha256:17f1708f7410af92ddf591e94ae71a27a13974559e72f7e9fde3ec174b26ba2e", - "sha256:195ab1d9d611a4c1e5311cbf42273bc541e18ea8c32712f2fb703cfc6ff006f9", - "sha256:4cb5ecc332112017fbdb19ede78d92e29a8165c46b68a0b8ccbd0a154f196d5e", - "sha256:5100eae58133355d3ca6c1083a33b81355c4f452afa474c2633bd2fbbba398b3", - "sha256:61fdb8e9c57baf625e27e1420e7ca17f7d2023929cd0065eb79c83da1dfbeacd", - "sha256:6ccd8d84b9490a82b51b230740468116b8205822ea5fdc700a553d92661253a3", - "sha256:6e01d699cd260d59b84da6bda019dce0a3353e3fcc774408ae767fe88ee096b7", - "sha256:748ca797ff59962e83cc8e4b233f87113f3cf247c23e6be58b8a2885c7337aa3", - "sha256:83a7cead445008e880dbde833cb9e5cc7b9a0958edb697a96b936621975f15b9", - "sha256:8586d98c494690482c963ffb24c49bf9c8c2fe0589cec4dc2f753b78d1ec301d", - "sha256:8b5cde14e5c72b2df5d074774bdff69e9b55da77e102a91f36ef26ca35f9819c", - "sha256:8c28c23972ec9c524967895ccb1954bc6f6d4a557d36e681a36e84368660c4ce", - "sha256:967636031fa4c4955f0f3f22da3c5c418aa65d50908d31b73b3b3ffd66d60640", - "sha256:96cbeb494e6cbe3ae6aacc430e678ce4b4dd3ae5125035f72b6eb4e5e9eb4f4e", - "sha256:978a1aed55de0b807913b7482d09943b23a2d634040b112bdf31811a422f6344", - "sha256:a09483249d25cbdb4c268e020cb861c51baab2d1affd9a6affc68ffe6a231260", - "sha256:a480d122740debf0afac4ddd583c6c0bb519c24f817b42ed6f850e2f6f9d64a8", - "sha256:adaf2ece15f3afa33a6b45f76b333a7da9256e1360003032524d61bdb4c422ae", - "sha256:bc43c1b24d2f86b6e1cc15f68635a959388219426109233e606517ff7d0a5a73", - "sha256:c27d8c1535fd4474e40a4b5e01f4ba6720bac58e6751c667895cbc5c8a7af33c", - "sha256:cdcc23c9528601a8a293eb4369cbd14f6b4f34f07ae8769421252e9c22718b6f", - "sha256:cece1aa596027ff56369f0b50a9de209920e1df9ac6d02c7f9e5d8162eb4f02b", - "sha256:d0f29fd9f3f149a5277929de33b4f121a04cf84bb494634707cfa8ea8ae106a8", - "sha256:d6b87477752bd86ac5392ecb9eeed92b416898c30bd40c7e2dd03c3146105646", - "sha256:e038be858425c4f621900b8ff1a3a1330d9edcfeaa1c0468aeb7e330fb87693e", - "sha256:e618a4863726bc7a3c64f95c218437f3349fb9d909eb9ea3a1ed3b567417c661", - "sha256:f8ac23ff2c2df4471a61af6490f847633024e5aa120567e08d07af5718c9d092" + "sha256:03f342a9432fe08107defbe8e405a2cb922c5d00c4c6c168c68b633c64ce6190", + "sha256:0d9878be36d2b9271e3abaa6f4f051b363ff54dbbe7e7df1af3c920e4311ee43", + "sha256:0e1dd6d449267cc7d6935d7fe27ee0426af6ee16578eed93bacb1be9ff824d2d", + "sha256:2caf77ae137935c1466f8cefd4a3aec7017b6969f425d086e6a528241cba7256", + "sha256:3d2dbcf1acd96e7a9c9aefed201c47c8e311075105d94ce5e899f118155709fd", + "sha256:4109cccf214b7e3462e8403ab1e5b17b302ecce6c103eb2fc3afa534a7f27b96", + "sha256:4cd61f98cb37143206818cb1786d2438626aa78d682a8f2ecee239055a9771d5", + "sha256:53f3e95081280898d9e4fc51c5c69017715929e4eea1ab45801d5e903dd518ad", + "sha256:564e7739abd4bd348aeafbf71cc006b6c0ccda3160c7053c4a53b67d14091d42", + "sha256:5b848c71ef2b15d0ef02f69da8cc120d335cec0ed82a3fa7779e27a5a8527225", + "sha256:5defe4f0918a2a1a4afbe4dbb967f743ac3a93d546ea4674567806375b024adb", + "sha256:6f5d0f7eac86807275eba40b577c671b306f6f335ba63a5c5a348da151aba0fc", + "sha256:7a1876f660e32027a1a46f8a0fa5747ad4fcf86cb451860eae61a26e102c8c79", + "sha256:7a596f9415a378d0339681efc08d2249e48975daae391d58f2e22a3673b977cf", + "sha256:85bf2263290591b7c5fa01140601b64c831be88084de41efbcba6ea289874f44", + "sha256:8a4d484e846dcd75e96b96d80d80445302621be40e293bfdf34a631cab3b33dc", + "sha256:8f2df370cd8e4e18499dd0bfdef476431bcc396108b97195d9448d90924e3131", + "sha256:91fd146d723392b3e6eb1ac21f122fcce149a194a2ba0a82c5e4d0ee29cd954c", + "sha256:95ad708a9454050a46f741ba5e2f3468655ea22da1114e4c40b8cbdaca572565", + "sha256:964fd236cd443933268ae49b59706569c8b741073dbfd7ca705492bae9d39aab", + "sha256:9da7acb9af7e4a272089bd2af0171d23e0d6271385c51d4d9bde91fe918c53ed", + "sha256:a073c91a6ef0dda488087669586768195c3080c66866144880f03445ca23ef16", + "sha256:a74155398434937ac2780fd257c045954de5b11b5c52fc844e2199ce3eecf4cf", + "sha256:aa8b028750b43e80eea9946d01925168eeadb488dfdef1d82be4b1e28067f375", + "sha256:d1f1200d4ec53b88bf04ab636f9133cb703eb19768a39351cee649de21a33697", + "sha256:d9f9ed26ed22a9d331820a8432c3680707ea8b54121ddcc9dc7d9f2ceeb36906", + "sha256:ea5d86d1bcf4a9d24610aa2f6f25492f441960cf04aed2bd9a97db439b643a7b", + "sha256:efe3252137392a471a2174d721e1037a0e6a5da7beb72a021e662b7000a9903f" ], "index": "pypi", - "version": "==2.2.1" + "version": "==2.3.1" }, "watchfiles": { "hashes": [ @@ -1946,10 +2017,10 @@ }, "wcwidth": { "hashes": [ - "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", - "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", + "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" ], - "version": "==0.2.5" + "version": "==0.2.6" }, "webencodings": { "hashes": [ @@ -2034,11 +2105,11 @@ }, "whitenoise": { "hashes": [ - "sha256:cf8ecf56d86ba1c734fdb5ef6127312e39e92ad5947fef9033dc9e43ba2777d9", - "sha256:fe0af31504ab08faa1ec7fc02845432096e40cc1b27e6a7747263d7b30fb51fa" + "sha256:599dc6ca57e48929dfeffb2e8e187879bfe2aed0d49ca419577005b7f2cc930b", + "sha256:a02d6660ad161ff17e3042653c8e3f5ecbb2a2481a006bde125b9efb9a30113a" ], "index": "pypi", - "version": "==6.3.0" + "version": "==6.4.0" }, "whoosh": { "hashes": [ @@ -2051,110 +2122,127 @@ }, "zipp": { "hashes": [ - "sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa", - "sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766" + "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b", + "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556" ], "markers": "python_version < '3.10'", - "version": "==3.11.0" + "version": "==3.15.0" }, "zope.interface": { "hashes": [ - "sha256:008b0b65c05993bb08912f644d140530e775cf1c62a072bf9340c2249e613c32", - "sha256:0217a9615531c83aeedb12e126611b1b1a3175013bbafe57c702ce40000eb9a0", - "sha256:0fb497c6b088818e3395e302e426850f8236d8d9f4ef5b2836feae812a8f699c", - "sha256:17ebf6e0b1d07ed009738016abf0d0a0f80388e009d0ac6e0ead26fc162b3b9c", - "sha256:311196634bb9333aa06f00fc94f59d3a9fddd2305c2c425d86e406ddc6f2260d", - "sha256:3218ab1a7748327e08ef83cca63eea7cf20ea7e2ebcb2522072896e5e2fceedf", - "sha256:404d1e284eda9e233c90128697c71acffd55e183d70628aa0bbb0e7a3084ed8b", - "sha256:4087e253bd3bbbc3e615ecd0b6dd03c4e6a1e46d152d3be6d2ad08fbad742dcc", - "sha256:40f4065745e2c2fa0dff0e7ccd7c166a8ac9748974f960cd39f63d2c19f9231f", - "sha256:5334e2ef60d3d9439c08baedaf8b84dc9bb9522d0dacbc10572ef5609ef8db6d", - "sha256:604cdba8f1983d0ab78edc29aa71c8df0ada06fb147cea436dc37093a0100a4e", - "sha256:6373d7eb813a143cb7795d3e42bd8ed857c82a90571567e681e1b3841a390d16", - "sha256:655796a906fa3ca67273011c9805c1e1baa047781fca80feeb710328cdbed87f", - "sha256:65c3c06afee96c654e590e046c4a24559e65b0a87dbff256cd4bd6f77e1a33f9", - "sha256:696f3d5493eae7359887da55c2afa05acc3db5fc625c49529e84bd9992313296", - "sha256:6e972493cdfe4ad0411fd9abfab7d4d800a7317a93928217f1a5de2bb0f0d87a", - "sha256:7579960be23d1fddecb53898035a0d112ac858c3554018ce615cefc03024e46d", - "sha256:765d703096ca47aa5d93044bf701b00bbce4d903a95b41fff7c3796e747b1f1d", - "sha256:7e66f60b0067a10dd289b29dceabd3d0e6d68be1504fc9d0bc209cf07f56d189", - "sha256:8a2ffadefd0e7206adc86e492ccc60395f7edb5680adedf17a7ee4205c530df4", - "sha256:959697ef2757406bff71467a09d940ca364e724c534efbf3786e86eee8591452", - "sha256:9d783213fab61832dbb10d385a319cb0e45451088abd45f95b5bb88ed0acca1a", - "sha256:a16025df73d24795a0bde05504911d306307c24a64187752685ff6ea23897cb0", - "sha256:a2ad597c8c9e038a5912ac3cf166f82926feff2f6e0dabdab956768de0a258f5", - "sha256:bfee1f3ff62143819499e348f5b8a7f3aa0259f9aca5e0ddae7391d059dce671", - "sha256:d169ccd0756c15bbb2f1acc012f5aab279dffc334d733ca0d9362c5beaebe88e", - "sha256:d514c269d1f9f5cd05ddfed15298d6c418129f3f064765295659798349c43e6f", - "sha256:d692374b578360d36568dd05efb8a5a67ab6d1878c29c582e37ddba80e66c396", - "sha256:dbaeb9cf0ea0b3bc4b36fae54a016933d64c6d52a94810a63c00f440ecb37dd7", - "sha256:dc26c8d44472e035d59d6f1177eb712888447f5799743da9c398b0339ed90b1b", - "sha256:e1574980b48c8c74f83578d1e77e701f8439a5d93f36a5a0af31337467c08fcf", - "sha256:e74a578172525c20d7223eac5f8ad187f10940dac06e40113d62f14f3adb1e8f", - "sha256:e945de62917acbf853ab968d8916290548df18dd62c739d862f359ecd25842a6", - "sha256:f0980d44b8aded808bec5059018d64692f0127f10510eca71f2f0ace8fb11188", - "sha256:f98d4bd7bbb15ca701d19b93263cc5edfd480c3475d163f137385f49e5b3a3a7", - "sha256:fb68d212efd057596dee9e6582daded9f8ef776538afdf5feceb3059df2d2e7b" + "sha256:042f2381118b093714081fd82c98e3b189b68db38ee7d35b63c327c470ef8373", + "sha256:0ec9653825f837fbddc4e4b603d90269b501486c11800d7c761eee7ce46d1bbb", + "sha256:12175ca6b4db7621aedd7c30aa7cfa0a2d65ea3a0105393e05482d7a2d367446", + "sha256:1592f68ae11e557b9ff2bc96ac8fc30b187e77c45a3c9cd876e3368c53dc5ba8", + "sha256:23ac41d52fd15dd8be77e3257bc51bbb82469cf7f5e9a30b75e903e21439d16c", + "sha256:424d23b97fa1542d7be882eae0c0fc3d6827784105264a8169a26ce16db260d8", + "sha256:4407b1435572e3e1610797c9203ad2753666c62883b921318c5403fb7139dec2", + "sha256:48f4d38cf4b462e75fac78b6f11ad47b06b1c568eb59896db5b6ec1094eb467f", + "sha256:4c3d7dfd897a588ec27e391edbe3dd320a03684457470415870254e714126b1f", + "sha256:5171eb073474a5038321409a630904fd61f12dd1856dd7e9d19cd6fe092cbbc5", + "sha256:5a158846d0fca0a908c1afb281ddba88744d403f2550dc34405c3691769cdd85", + "sha256:6ee934f023f875ec2cfd2b05a937bd817efcc6c4c3f55c5778cbf78e58362ddc", + "sha256:790c1d9d8f9c92819c31ea660cd43c3d5451df1df61e2e814a6f99cebb292788", + "sha256:809fe3bf1a91393abc7e92d607976bbb8586512913a79f2bf7d7ec15bd8ea518", + "sha256:87b690bbee9876163210fd3f500ee59f5803e4a6607d1b1238833b8885ebd410", + "sha256:89086c9d3490a0f265a3c4b794037a84541ff5ffa28bb9c24cc9f66566968464", + "sha256:99856d6c98a326abbcc2363827e16bd6044f70f2ef42f453c0bd5440c4ce24e5", + "sha256:aab584725afd10c710b8f1e6e208dbee2d0ad009f57d674cb9d1b3964037275d", + "sha256:af169ba897692e9cd984a81cb0f02e46dacdc07d6cf9fd5c91e81f8efaf93d52", + "sha256:b39b8711578dcfd45fc0140993403b8a81e879ec25d53189f3faa1f006087dca", + "sha256:b3f543ae9d3408549a9900720f18c0194ac0fe810cecda2a584fd4dca2eb3bb8", + "sha256:d0583b75f2e70ec93f100931660328965bb9ff65ae54695fb3fa0a1255daa6f2", + "sha256:dfbbbf0809a3606046a41f8561c3eada9db811be94138f42d9135a5c47e75f6f", + "sha256:e538f2d4a6ffb6edfb303ce70ae7e88629ac6e5581870e66c306d9ad7b564a58", + "sha256:eba51599370c87088d8882ab74f637de0c4f04a6d08a312dce49368ba9ed5c2a", + "sha256:ee4b43f35f5dc15e1fec55ccb53c130adb1d11e8ad8263d68b1284b66a04190d", + "sha256:f2363e5fd81afb650085c6686f2ee3706975c54f331b426800b53531191fdf28", + "sha256:f299c020c6679cb389814a3b81200fe55d428012c5e76da7e722491f5d205990", + "sha256:f72f23bab1848edb7472309e9898603141644faec9fd57a823ea6b4d1c4c8995", + "sha256:fa90bac61c9dc3e1a563e5babb3fd2c0c1c80567e815442ddbe561eadc803b30" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==5.5.2" + "markers": "python_version >= '3.7'", + "version": "==6.0" }, "zstandard": { "hashes": [ - "sha256:04c298d381a3b6274b0a8001f0da0ec7819d052ad9c3b0863fe8c7f154061f76", - "sha256:0fde1c56ec118940974e726c2a27e5b54e71e16c6f81d0b4722112b91d2d9009", - "sha256:126aa8433773efad0871f624339c7984a9c43913952f77d5abeee7f95a0c0860", - "sha256:1a4fb8b4ac6772e4d656103ccaf2e43e45bd16b5da324b963d58ef360d09eb73", - "sha256:2e4812720582d0803e84aefa2ac48ce1e1e6e200ca3ce1ae2be6d410c1d637ae", - "sha256:2f01b27d0b453f07cbcff01405cdd007e71f5d6410eb01303a16ba19213e58e4", - "sha256:31d12fcd942dd8dbf52ca5f6b1bbe287f44e5d551a081a983ff3ea2082867863", - "sha256:3c927b6aa682c6d96225e1c797f4a5d0b9f777b327dea912b23471aaf5385376", - "sha256:3d5bb598963ac1f1f5b72dd006adb46ca6203e4fb7269a5b6e1f99e85b07ad38", - "sha256:401508efe02341ae681752a87e8ac9ef76df85ef1a238a7a21786a489d2c983d", - "sha256:4514b19abe6dbd36d6c5d75c54faca24b1ceb3999193c5b1f4b685abeabde3d0", - "sha256:47dfa52bed3097c705451bafd56dac26535545a987b6759fa39da1602349d7ba", - "sha256:4fa496d2d674c6e9cffc561639d17009d29adee84a27cf1e12d3c9be14aa8feb", - "sha256:55a513ec67e85abd8b8b83af8813368036f03e2d29a50fc94033504918273980", - "sha256:55b3187e0bed004533149882ef8c24e954321f3be81f8a9ceffe35099b82a0d0", - "sha256:593f96718ad906e24d6534187fdade28b611f8ed06e27ba972ba48aecec45fc6", - "sha256:5e21032efe673b887464667d09406bab6e16d96b09ad87e80859e3a20b6745b6", - "sha256:60a86b7b2b1c300779167cf595e019e61afcc0e20c4838692983a921db9006ac", - "sha256:619f9bf37cdb4c3dc9d4120d2a1003f5db9446f3618a323219f408f6a9df6725", - "sha256:660b91eca10ee1b44c47843894abe3e6cfd80e50c90dee3123befbf7ca486bd3", - "sha256:67710d220af405f5ce22712fa741d85e8b3ada7a457ea419b038469ba379837c", - "sha256:6caed86cd47ae93915d9031dc04be5283c275e1a2af2ceff33932071f3eeff4d", - "sha256:6d2182e648e79213b3881998b30225b3f4b1f3e681f1c1eaf4cacf19bde1040d", - "sha256:72758c9f785831d9d744af282d54c3e0f9db34f7eae521c33798695464993da2", - "sha256:74c2637d12eaacb503b0b06efdf55199a11b1d7c580bd3dd9dfe84cac97ef2f6", - "sha256:755020d5aeb1b10bffd93d119e7709a2a7475b6ad79c8d5226cea3f76d152ce0", - "sha256:7ccc4727300f223184520a6064c161a90b5d0283accd72d1455bcd85ec44dd0d", - "sha256:81ab21d03e3b0351847a86a0b298b297fde1e152752614138021d6d16a476ea6", - "sha256:8371217dff635cfc0220db2720fc3ce728cd47e72bb7572cca035332823dbdfc", - "sha256:876567136b0359f6581ecd892bdb4ca03a0eead0265db73206c78cff03bcdb0f", - "sha256:879411d04068bd489db57dcf6b82ffad3c5fb2a1fdd30817c566d8b7bedee442", - "sha256:898500957ae5e7f31b7271ace4e6f3625b38c0ac84e8cedde8de3a77a7fdae5e", - "sha256:8c9ca56345b0c5574db47560603de9d05f63cce5dfeb3a456eb60f3fec737ff2", - "sha256:8ec2c146e10b59c376b6bc0369929647fcd95404a503a7aa0990f21c16462248", - "sha256:8f7c68de4f362c1b2f426395fe4e05028c56d0782b2ec3ae18a5416eaf775576", - "sha256:909bdd4e19ea437eb9b45d6695d722f6f0fd9d8f493e837d70f92062b9f39faf", - "sha256:9d97c713433087ba5cee61a3e8edb54029753d45a4288ad61a176fa4718033ce", - "sha256:a65e0119ad39e855427520f7829618f78eb2824aa05e63ff19b466080cd99210", - "sha256:aa9087571729c968cd853d54b3f6e9d0ec61e45cd2c31e0eb8a0d4bdbbe6da2f", - "sha256:aef0889417eda2db000d791f9739f5cecb9ccdd45c98f82c6be531bdc67ff0f2", - "sha256:b253d0c53c8ee12c3e53d181fb9ef6ce2cd9c41cbca1c56a535e4fc8ec41e241", - "sha256:b80f6f6478f9d4ca26daee6c61584499493bf97950cfaa1a02b16bb5c2c17e70", - "sha256:be6329b5ba18ec5d32dc26181e0148e423347ed936dda48bf49fb243895d1566", - "sha256:c7560f622e3849cc8f3e999791a915addd08fafe80b47fcf3ffbda5b5151047c", - "sha256:d1a7a716bb04b1c3c4a707e38e2dee46ac544fff931e66d7ae944f3019fc55b8", - "sha256:d63b04e16df8ea21dfcedbf5a60e11cbba9d835d44cb3cbff233cfd037a916d5", - "sha256:d777d239036815e9b3a093fa9208ad314c040c26d7246617e70e23025b60083a", - "sha256:e892d3177380ec080550b56a7ffeab680af25575d291766bdd875147ba246a91", - "sha256:e9c90a44470f2999779057aeaf33461cbd8bb59d8f15e983150d10bb260e16e0", - "sha256:f097dda5d4f9b9b01b3c9fa2069f9c02929365f48f341feddf3d6b32510a2f93", - "sha256:f4ebfe03cbae821ef994b2e58e4df6a087470cc522aca502614e82a143365d45" + "sha256:0488f2a238b4560828b3a595f3337daac4d3725c2a1637ffe2a0d187c091da59", + "sha256:059316f07e39b7214cd9eed565d26ab239035d2c76835deeff381995f7a27ba8", + "sha256:0aa4d178560d7ee32092ddfd415c2cdc6ab5ddce9554985c75f1a019a0ff4c55", + "sha256:0b815dec62e2d5a1bf7a373388f2616f21a27047b9b999de328bca7462033708", + "sha256:0d213353d58ad37fb5070314b156fb983b4d680ed5f3fce76ab013484cf3cf12", + "sha256:0f32a8f3a697ef87e67c0d0c0673b245babee6682b2c95e46eb30208ffb720bd", + "sha256:29699746fae2760d3963a4ffb603968e77da55150ee0a3326c0569f4e35f319f", + "sha256:2adf65cfce73ce94ef4c482f6cc01f08ddf5e1ca0c1ec95f2b63840f9e4c226c", + "sha256:2eeb9e1ecd48ac1d352608bfe0dc1ed78a397698035a1796cf72f0c9d905d219", + "sha256:302a31400de0280f17c4ce67a73444a7a069f228db64048e4ce555cd0c02fbc4", + "sha256:39ae788dcdc404c07ef7aac9b11925185ea0831b985db0bbc43f95acdbd1c2ce", + "sha256:39cbaf8fe3fa3515d35fb790465db4dc1ff45e58e1e00cbaf8b714e85437f039", + "sha256:40466adfa071f58bfa448d90f9623d6aff67c6d86de6fc60be47a26388f6c74d", + "sha256:489959e2d52f7f1fe8ea275fecde6911d454df465265bf3ec51b3e755e769a5e", + "sha256:4a3c36284c219a4d2694e52b2582fe5d5f0ecaf94a22cf0ea959b527dbd8a2a6", + "sha256:4abf9a9e0841b844736d1ae8ead2b583d2cd212815eab15391b702bde17477a7", + "sha256:4af5d1891eebef430038ea4981957d31b1eb70aca14b906660c3ac1c3e7a8612", + "sha256:5499d65d4a1978dccf0a9c2c0d12415e16d4995ffad7a0bc4f72cc66691cf9f2", + "sha256:5a3578b182c21b8af3c49619eb4cd0b9127fa60791e621b34217d65209722002", + "sha256:613daadd72c71b1488742cafb2c3b381c39d0c9bb8c6cc157aa2d5ea45cc2efc", + "sha256:6179808ebd1ebc42b1e2f221a23c28a22d3bc8f79209ae4a3cc114693c380bff", + "sha256:7041efe3a93d0975d2ad16451720932e8a3d164be8521bfd0873b27ac917b77a", + "sha256:78fb35d07423f25efd0fc90d0d4710ae83cfc86443a32192b0c6cb8475ec79a5", + "sha256:79c3058ccbe1fa37356a73c9d3c0475ec935ab528f5b76d56fc002a5a23407c7", + "sha256:84c1dae0c0a21eea245b5691286fe6470dc797d5e86e0c26b57a3afd1e750b48", + "sha256:862ad0a5c94670f2bd6f64fff671bd2045af5f4ed428a3f2f69fa5e52483f86a", + "sha256:9aca916724d0802d3e70dc68adeff893efece01dffe7252ee3ae0053f1f1990f", + "sha256:9aea3c7bab4276212e5ac63d28e6bd72a79ff058d57e06926dfe30a52451d943", + "sha256:a56036c08645aa6041d435a50103428f0682effdc67f5038de47cea5e4221d6f", + "sha256:a5efe366bf0545a1a5a917787659b445ba16442ae4093f102204f42a9da1ecbc", + "sha256:afbcd2ed0c1145e24dd3df8440a429688a1614b83424bc871371b176bed429f9", + "sha256:b07f391fd85e3d07514c05fb40c5573b398d0063ab2bada6eb09949ec6004772", + "sha256:b0f556c74c6f0f481b61d917e48c341cdfbb80cc3391511345aed4ce6fb52fdc", + "sha256:b671b75ae88139b1dd022fa4aa66ba419abd66f98869af55a342cb9257a1831e", + "sha256:b6d718f1b7cd30adb02c2a46dde0f25a84a9de8865126e0fff7d0162332d6b92", + "sha256:ba4bb4c5a0cac802ff485fa1e57f7763df5efa0ad4ee10c2693ecc5a018d2c1a", + "sha256:ba86f931bf925e9561ccd6cb978acb163e38c425990927feb38be10c894fa937", + "sha256:c1929afea64da48ec59eca9055d7ec7e5955801489ac40ac2a19dde19e7edad9", + "sha256:c28c7441638c472bfb794f424bd560a22c7afce764cd99196e8d70fbc4d14e85", + "sha256:c4efa051799703dc37c072e22af1f0e4c77069a78fb37caf70e26414c738ca1d", + "sha256:cc98c8bcaa07150d3f5d7c4bd264eaa4fdd4a4dfb8fd3f9d62565ae5c4aba227", + "sha256:cd0aa9a043c38901925ae1bba49e1e638f2d9c3cdf1b8000868993c642deb7f2", + "sha256:cdd769da7add8498658d881ce0eeb4c35ea1baac62e24c5a030c50f859f29724", + "sha256:d08459f7f7748398a6cc65eb7f88aa7ef5731097be2ddfba544be4b558acd900", + "sha256:dc47cec184e66953f635254e5381df8a22012a2308168c069230b1a95079ccd0", + "sha256:e3f6887d2bdfb5752d5544860bd6b778e53ebfaf4ab6c3f9d7fd388445429d41", + "sha256:e6b4de1ba2f3028fafa0d82222d1e91b729334c8d65fbf04290c65c09d7457e1", + "sha256:ee2a1510e06dfc7706ea9afad363efe222818a1eafa59abc32d9bbcd8465fba7", + "sha256:f199d58f3fd7dfa0d447bc255ff22571f2e4e5e5748bfd1c41370454723cb053", + "sha256:f1ba6bbd28ad926d130f0af8016f3a2930baa013c2128cfff46ca76432f50669", + "sha256:f847701d77371d90783c0ce6cfdb7ebde4053882c2aaba7255c70ae3c3eb7af0" ], "markers": "python_version >= '3.6'", - "version": "==0.19.0" + "version": "==0.20.0" + }, + "zxing-cpp": { + "hashes": [ + "sha256:1b67b221aae15aad9b5609d99c38d57875bc0a4fef864142d7ca37e9ee7880b0", + "sha256:1d665c45029346c70ae3df5dbc36f6335ffe4f275e98dc43772fa32a65844196", + "sha256:214a6a0e49b92fda8d2761c74f5bfd24a677b9bf1d0ef0e083412486af97faa9", + "sha256:54282d0e5c573754049113a0cdbf14cc1c6b986432a367d8a788112afa92a1d5", + "sha256:5ce391f21763f00d5be3431e16d075e263e4b9205c2cf55d708625cb234b1f15", + "sha256:5fd89065f620d6b78281308c6abfb760d95760a1c9b88eb7ac612b52b331bd41", + "sha256:631a0c783ad233c85295e0cf4cd7740f1fe2853124c61b1ef6bcf7eb5d2fa5e6", + "sha256:76caafb8fc1e12c2e5ec33ce4f340a0e15e9a2aabfbfeaec170e8a2b405b8a77", + "sha256:8da9c912cca5829eedb2800ce3eaa1b1e52742f536aa9e798be69bf09639f399", + "sha256:95dd06dc559f53c1ca0eb59dbaebd802ebc839937baaf2f8d2b3def3e814c07f", + "sha256:97919f07c62edf1c8e0722fd64893057ce636b7067cf47bd593e98cc7e404d74", + "sha256:9f0c2c03f5df470ef71a7590be5042161e7590da767d4260a6d0d61a3fa80b88", + "sha256:a788551ddf3a6ba1152ff9a0b81d57018a3cc586544087c39d881428745faf1f", + "sha256:ea54fd242f93eea7bf039a68287e5e57fdf77d78e3bd5b4cbb2d289bb3380d63", + "sha256:f0eefdfad91e15e3f5b7ed16d83806a36f96ca482f4b042baa6297784a58b0b3", + "sha256:f70eefa5dc1fd9238087c024ef22f3d99ba79cb932a2c5bc5b0f1e152037722e" + ], + "index": "pypi", + "markers": "platform_machine == 'x86_64'", + "version": "==2.0.0" } }, "develop": { @@ -2168,21 +2256,34 @@ }, "black": { "hashes": [ - "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320", - "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351", - "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350", - "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f", - "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf", - "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148", - "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4", - "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d", - "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc", - "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d", - "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2", - "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f" + "sha256:0052dba51dec07ed029ed61b18183942043e00008ec65d5028814afaab9a22fd", + "sha256:0680d4380db3719ebcfb2613f34e86c8e6d15ffeabcf8ec59355c5e7b85bb555", + "sha256:121ca7f10b4a01fd99951234abdbd97728e1240be89fde18480ffac16503d481", + "sha256:162e37d49e93bd6eb6f1afc3e17a3d23a823042530c37c3c42eeeaf026f38468", + "sha256:2a951cc83ab535d248c89f300eccbd625e80ab880fbcfb5ac8afb5f01a258ac9", + "sha256:2bf649fda611c8550ca9d7592b69f0637218c2369b7744694c5e4902873b2f3a", + "sha256:382998821f58e5c8238d3166c492139573325287820963d2f7de4d518bd76958", + "sha256:49f7b39e30f326a34b5c9a4213213a6b221d7ae9d58ec70df1c4a307cf2a1580", + "sha256:57c18c5165c1dbe291d5306e53fb3988122890e57bd9b3dcb75f967f13411a26", + "sha256:7a0f701d314cfa0896b9001df70a530eb2472babb76086344e688829efd97d32", + "sha256:8178318cb74f98bc571eef19068f6ab5613b3e59d4f47771582f04e175570ed8", + "sha256:8b70eb40a78dfac24842458476135f9b99ab952dd3f2dab738c1881a9b38b753", + "sha256:9880d7d419bb7e709b37e28deb5e68a49227713b623c72b2b931028ea65f619b", + "sha256:9afd3f493666a0cd8f8df9a0200c6359ac53940cbde049dcb1a7eb6ee2dd7074", + "sha256:a29650759a6a0944e7cca036674655c2f0f63806ddecc45ed40b7b8aa314b651", + "sha256:a436e7881d33acaf2536c46a454bb964a50eff59b21b51c6ccf5a40601fbef24", + "sha256:a59db0a2094d2259c554676403fa2fac3473ccf1354c1c63eccf7ae65aac8ab6", + "sha256:a8471939da5e824b891b25751955be52ee7f8a30a916d570a5ba8e0f2eb2ecad", + "sha256:b0bd97bea8903f5a2ba7219257a44e3f1f9d00073d6cc1add68f0beec69692ac", + "sha256:b6a92a41ee34b883b359998f0c8e6eb8e99803aa8bf3123bf2b2e6fec505a221", + "sha256:bb460c8561c8c1bec7824ecbc3ce085eb50005883a6203dcfb0122e95797ee06", + "sha256:bfffba28dc52a58f04492181392ee380e95262af14ee01d4bc7bb1b1c6ca8d27", + "sha256:c1c476bc7b7d021321e7d93dc2cbd78ce103b84d5a4cf97ed535fbc0d6660648", + "sha256:c91dfc2c2a4e50df0026f88d2215e166616e0c80e86004d0003ece0488db2739", + "sha256:e6663f91b6feca5d06f2ccd49a10f254f9298cc1f7f49c46e498a0771b507104" ], "index": "pypi", - "version": "==22.12.0" + "version": "==23.1.0" }, "certifi": { "hashes": [ @@ -2202,11 +2303,84 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2.1.1" + "markers": "python_full_version >= '3.7.0'", + "version": "==3.1.0" }, "click": { "hashes": [ @@ -2303,11 +2477,11 @@ }, "exceptiongroup": { "hashes": [ - "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", - "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" + "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e", + "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785" ], "markers": "python_version < '3.11'", - "version": "==1.1.0" + "version": "==1.1.1" }, "execnet": { "hashes": [ @@ -2327,19 +2501,19 @@ }, "faker": { "hashes": [ - "sha256:4a8bc3cec832dde1928f8ce0817452bdadf63863d9e4d8307817247a38e51523", - "sha256:e15becbddc3a69a342e03ca6810caab7299e28e48106ae113a07f65c627d6fd7" + "sha256:2deeee8fed3d1b8ae5f87d172d4569ddc859aab8693f7cd68eddc5d20400563a", + "sha256:e7c058e1f360f245f265625b32d3189d7229398ad80a8b6bac459891745de052" ], "markers": "python_version >= '3.7'", - "version": "==16.1.0" + "version": "==18.3.0" }, "filelock": { "hashes": [ - "sha256:7b319f24340b51f55a2bf7a12ac0755a9b03e718311dac567a0f4f7fabd2f5de", - "sha256:f58d535af89bb9ad5cd4df046f741f8553a418c01a7856bf0d173bbc9f6bd16d" + "sha256:75997740323c5f12e18f10b494bc11c03e42843129f980f17c04352cc7b09d40", + "sha256:eb8f0f2d37ed68223ea63e3bddf2fac99667e4362c88b3f762e434d160190d18" ], "index": "pypi", - "version": "==3.9.0" + "version": "==3.10.2" }, "ghp-import": { "hashes": [ @@ -2350,11 +2524,11 @@ }, "identify": { "hashes": [ - "sha256:0bc96b09c838310b6fcfcc61f78a981ea07f94836ef6ef553da5bb5d4745d662", - "sha256:e8a400c3062d980243d27ce10455a52832205649bbcaf27ffddb3dfaaf477bad" + "sha256:69edcaffa8e91ae0f77d397af60f148b6b45a8044b2cc6d99cafa5b04793ff00", + "sha256:7671a05ef9cfaf8ff63b15d45a91a1147a03aaccb2976d4e9bd047cbbc508471" ], "markers": "python_version >= '3.7'", - "version": "==2.5.12" + "version": "==2.5.21" }, "idna": { "hashes": [ @@ -2374,11 +2548,11 @@ }, "importlib-metadata": { "hashes": [ - "sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad", - "sha256:e354bedeb60efa6affdcc8ae121b73544a7aa74156d047311948f6d711cd378d" + "sha256:43ce9281e097583d758c2c708c4376371261a02c34682491a8e98352365aad20", + "sha256:ff80f3b5394912eb1b108fcfd444dc78b7f1f3e16b16188054bd01cb9cb86f09" ], "markers": "python_version < '3.10'", - "version": "==6.0.0" + "version": "==6.1.0" }, "iniconfig": { "hashes": [ @@ -2406,49 +2580,59 @@ }, "markupsafe": { "hashes": [ - "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", - "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", - "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", - "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", - "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", - "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", - "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", - "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", - "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", - "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", - "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", - "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", - "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", - "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", - "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", - "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", - "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", - "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", - "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", - "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", - "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", - "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", - "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", - "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", - "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", - "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", - "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", - "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", - "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", - "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", - "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", - "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", - "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", - "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", - "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", - "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", - "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", - "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", - "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", - "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" + "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed", + "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc", + "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2", + "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460", + "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7", + "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0", + "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1", + "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa", + "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03", + "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323", + "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65", + "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013", + "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036", + "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f", + "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4", + "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419", + "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2", + "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619", + "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a", + "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a", + "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd", + "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7", + "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666", + "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65", + "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859", + "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625", + "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff", + "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156", + "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd", + "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba", + "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f", + "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1", + "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094", + "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a", + "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513", + "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed", + "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d", + "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3", + "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147", + "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c", + "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603", + "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601", + "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a", + "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1", + "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d", + "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3", + "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54", + "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2", + "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6", + "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58" ], "markers": "python_version >= '3.7'", - "version": "==2.1.1" + "version": "==2.1.2" }, "mergedeep": { "hashes": [ @@ -2468,11 +2652,11 @@ }, "mkdocs-material": { "hashes": [ - "sha256:918fe38f504ca397b388b6c45445c22cb9acab61f00ade78d5f3edf299b6c9df", - "sha256:cedbbf84e156370489907d3c5b79999fcf6563f61a96965ec4c2513d303fa706" + "sha256:0be1b5d76c00efc9b2ecbd2d71014be950351e710f5947f276264878afc82ca0", + "sha256:a8d14d03569008afb0f5a5785c253249b5ff038e3a5509f96a393b8596bf5062" ], "index": "pypi", - "version": "==9.0.3" + "version": "==9.1.3" }, "mkdocs-material-extensions": { "hashes": [ @@ -2484,10 +2668,11 @@ }, "mypy-extensions": { "hashes": [ - "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", - "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" ], - "version": "==0.4.3" + "markers": "python_version >= '3.5'", + "version": "==1.0.0" }, "nodeenv": { "hashes": [ @@ -2499,37 +2684,37 @@ }, "numpy": { "hashes": [ - "sha256:0044f7d944ee882400890f9ae955220d29b33d809a038923d88e4e01d652acd9", - "sha256:0e3463e6ac25313462e04aea3fb8a0a30fb906d5d300f58b3bc2c23da6a15398", - "sha256:179a7ef0889ab769cc03573b6217f54c8bd8e16cef80aad369e1e8185f994cd7", - "sha256:2386da9a471cc00a1f47845e27d916d5ec5346ae9696e01a8a34760858fe9dd2", - "sha256:26089487086f2648944f17adaa1a97ca6aee57f513ba5f1c0b7ebdabbe2b9954", - "sha256:28bc9750ae1f75264ee0f10561709b1462d450a4808cd97c013046073ae64ab6", - "sha256:28e418681372520c992805bb723e29d69d6b7aa411065f48216d8329d02ba032", - "sha256:442feb5e5bada8408e8fcd43f3360b78683ff12a4444670a7d9e9824c1817d36", - "sha256:6ec0c021cd9fe732e5bab6401adea5a409214ca5592cd92a114f7067febcba0c", - "sha256:7094891dcf79ccc6bc2a1f30428fa5edb1e6fb955411ffff3401fb4ea93780a8", - "sha256:84e789a085aabef2f36c0515f45e459f02f570c4b4c4c108ac1179c34d475ed7", - "sha256:87a118968fba001b248aac90e502c0b13606721b1343cdaddbc6e552e8dfb56f", - "sha256:8e669fbdcdd1e945691079c2cae335f3e3a56554e06bbd45d7609a6cf568c700", - "sha256:ad2925567f43643f51255220424c23d204024ed428afc5aad0f86f3ffc080086", - "sha256:b0677a52f5d896e84414761531947c7a330d1adc07c3a4372262f25d84af7bf7", - "sha256:b07b40f5fb4fa034120a5796288f24c1fe0e0580bbfff99897ba6267af42def2", - "sha256:b09804ff570b907da323b3d762e74432fb07955701b17b08ff1b5ebaa8cfe6a9", - "sha256:b162ac10ca38850510caf8ea33f89edcb7b0bb0dfa5592d59909419986b72407", - "sha256:b31da69ed0c18be8b77bfce48d234e55d040793cebb25398e2a7d84199fbc7e2", - "sha256:caf65a396c0d1f9809596be2e444e3bd4190d86d5c1ce21f5fc4be60a3bc5b36", - "sha256:cfa1161c6ac8f92dea03d625c2d0c05e084668f4a06568b77a25a89111621566", - "sha256:dae46bed2cb79a58d6496ff6d8da1e3b95ba09afeca2e277628171ca99b99db1", - "sha256:ddc7ab52b322eb1e40521eb422c4e0a20716c271a306860979d450decbb51b8e", - "sha256:de92efa737875329b052982e37bd4371d52cabf469f83e7b8be9bb7752d67e51", - "sha256:e274f0f6c7efd0d577744f52032fdd24344f11c5ae668fe8d01aac0422611df1", - "sha256:ed5fb71d79e771ec930566fae9c02626b939e37271ec285e9efaf1b5d4370e7d", - "sha256:ef85cf1f693c88c1fd229ccd1055570cb41cdf4875873b7728b6301f12cd05bf", - "sha256:f1b739841821968798947d3afcefd386fa56da0caf97722a5de53e07c4ccedc7" + "sha256:003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22", + "sha256:150947adbdfeceec4e5926d956a06865c1c690f2fd902efede4ca6fe2e657c3f", + "sha256:2620e8592136e073bd12ee4536149380695fbe9ebeae845b81237f986479ffc9", + "sha256:2eabd64ddb96a1239791da78fa5f4e1693ae2dadc82a76bc76a14cbb2b966e96", + "sha256:4173bde9fa2a005c2c6e2ea8ac1618e2ed2c1c6ec8a7657237854d42094123a0", + "sha256:4199e7cfc307a778f72d293372736223e39ec9ac096ff0a2e64853b866a8e18a", + "sha256:4cecaed30dc14123020f77b03601559fff3e6cd0c048f8b5289f4eeabb0eb281", + "sha256:557d42778a6869c2162deb40ad82612645e21d79e11c1dc62c6e82a2220ffb04", + "sha256:63e45511ee4d9d976637d11e6c9864eae50e12dc9598f531c035265991910468", + "sha256:6524630f71631be2dabe0c541e7675db82651eb998496bbe16bc4f77f0772253", + "sha256:76807b4063f0002c8532cfeac47a3068a69561e9c8715efdad3c642eb27c0756", + "sha256:7de8fdde0003f4294655aa5d5f0a89c26b9f22c0a58790c38fae1ed392d44a5a", + "sha256:889b2cc88b837d86eda1b17008ebeb679d82875022200c6e8e4ce6cf549b7acb", + "sha256:92011118955724465fb6853def593cf397b4a1367495e0b59a7e69d40c4eb71d", + "sha256:97cf27e51fa078078c649a51d7ade3c92d9e709ba2bfb97493007103c741f1d0", + "sha256:9a23f8440561a633204a67fb44617ce2a299beecf3295f0d13c495518908e910", + "sha256:a51725a815a6188c662fb66fb32077709a9ca38053f0274640293a14fdd22978", + "sha256:a77d3e1163a7770164404607b7ba3967fb49b24782a6ef85d9b5f54126cc39e5", + "sha256:adbdce121896fd3a17a77ab0b0b5eedf05a9834a18699db6829a64e1dfccca7f", + "sha256:c29e6bd0ec49a44d7690ecb623a8eac5ab8a923bce0bea6293953992edf3a76a", + "sha256:c72a6b2f4af1adfe193f7beb91ddf708ff867a3f977ef2ec53c0ffb8283ab9f5", + "sha256:d0a2db9d20117bf523dde15858398e7c0858aadca7c0f088ac0d6edd360e9ad2", + "sha256:e3ab5d32784e843fc0dd3ab6dcafc67ef806e6b6828dc6af2f689be0eb4d781d", + "sha256:e428c4fbfa085f947b536706a2fc349245d7baa8334f0c5723c56a10595f9b95", + "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5", + "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d", + "sha256:f64bb98ac59b3ea3bf74b02f13836eb2e24e48e0ab0145bbda646295769bd780", + "sha256:f9006288bcf4895917d02583cf3411f98631275bc67cce355a7f39f8c14338fa" ], "index": "pypi", - "version": "==1.24.1" + "version": "==1.24.2" }, "packaging": { "hashes": [ @@ -2541,14 +2726,15 @@ }, "pathspec": { "hashes": [ - "sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6", - "sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6" + "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687", + "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293" ], "markers": "python_version >= '3.7'", - "version": "==0.10.3" + "version": "==0.11.1" }, "pillow": { "hashes": [ + "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33", "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b", "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e", "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35", @@ -2582,10 +2768,16 @@ "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a", "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e", "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f", + "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848", "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57", + "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f", + "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c", "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9", "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5", + "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9", "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d", + "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0", + "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1", "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e", "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815", "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0", @@ -2625,11 +2817,11 @@ }, "platformdirs": { "hashes": [ - "sha256:83c8f6d04389165de7c9b6f0c682439697887bca0aa2f1c87ef1826be3584490", - "sha256:e1fea1fe471b9ff8332e229df3cb7de4f53eeea4998d3b6bfff542115e998bd2" + "sha256:024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa", + "sha256:e5986afb596e4bb5bde29a79ac9061aa955b94fca2399b7aaac4090860920dd8" ], "markers": "python_version >= '3.7'", - "version": "==2.6.2" + "version": "==3.1.1" }, "pluggy": { "hashes": [ @@ -2641,11 +2833,11 @@ }, "pre-commit": { "hashes": [ - "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658", - "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad" + "sha256:818f0d998059934d0f81bb3667e3ccdc32da6ed7ccaac33e43dc231561ddaaa9", + "sha256:f712d3688102e13c8e66b7d7dbd8934a6dda157e58635d89f7d6fecdca39ce8a" ], "index": "pypi", - "version": "==2.21.0" + "version": "==3.2.0" }, "pygments": { "hashes": [ @@ -2657,19 +2849,19 @@ }, "pymdown-extensions": { "hashes": [ - "sha256:0f8fb7b74a37a61cc34e90b2c91865458b713ec774894ffad64353a5fce85cfc", - "sha256:ac698c15265680db5eb13cd4342abfcde2079ac01e5486028f47a1b41547b859" + "sha256:31eaa76ce6f96aabfcea98787c2fff2c5c0611b20a53a94213970cfbf05f02b8", + "sha256:562c38eee4ce3f101ce631b804bfc2177a8a76c7e4dc908871fb6741a90257a7" ], "markers": "python_version >= '3.7'", - "version": "==9.9" + "version": "==9.10" }, "pytest": { "hashes": [ - "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71", - "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59" + "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e", + "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4" ], "index": "pypi", - "version": "==7.2.0" + "version": "==7.2.2" }, "pytest-cov": { "hashes": [ @@ -2705,11 +2897,11 @@ }, "pytest-xdist": { "hashes": [ - "sha256:40fdb8f3544921c5dfcd486ac080ce22870e71d82ced6d2e78fa97c2addd480c", - "sha256:70a76f191d8a1d2d6be69fc440cdf85f3e4c03c08b520fd5dc5d338d6cf07d89" + "sha256:1849bd98d8b242b948e472db7478e090bf3361912a8fed87992ed94085f54727", + "sha256:37290d161638a20b672401deef1cba812d110ac27e35d213f091d15b8beb40c9" ], "index": "pypi", - "version": "==3.1.0" + "version": "==3.2.1" }, "python-dateutil": { "hashes": [ @@ -2805,105 +2997,100 @@ }, "regex": { "hashes": [ - "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad", - "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4", - "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd", - "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc", - "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d", - "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066", - "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec", - "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9", - "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e", - "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8", - "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e", - "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783", - "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6", - "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1", - "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c", - "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4", - "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1", - "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1", - "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7", - "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8", - "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe", - "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d", - "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b", - "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8", - "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c", - "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af", - "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49", - "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714", - "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542", - "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318", - "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e", - "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5", - "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc", - "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144", - "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453", - "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5", - "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61", - "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11", - "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a", - "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54", - "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73", - "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc", - "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347", - "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c", - "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66", - "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c", - "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93", - "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443", - "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc", - "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1", - "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892", - "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8", - "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001", - "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa", - "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90", - "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c", - "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0", - "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692", - "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4", - "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5", - "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690", - "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83", - "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66", - "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f", - "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f", - "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4", - "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee", - "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81", - "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95", - "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9", - "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff", - "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e", - "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5", - "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6", - "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7", - "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1", - "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394", - "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6", - "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742", - "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57", - "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b", - "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7", - "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b", - "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244", - "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af", - "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185", - "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8", - "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5" + "sha256:0a2a851d0548a4e298d88e3ceeb4bad4aab751cf1883edf6150f25718ce0207a", + "sha256:148ad520f41021b97870e9c80420e6cdaadcc5e4306e613aed84cd5d53f8a7ca", + "sha256:159c7b83488a056365119ada0bceddc06a455d3db7a7aa3cf07f13b2878b885f", + "sha256:1937946dd03818845bd9c1713dfd3173a7b9a324e6593a235fc8c51c9cd460eb", + "sha256:20ce96da2093e72e151d6af8217a629aeb5f48f1ac543c2fffd1d87c57699d7e", + "sha256:24242e5f26823e95edd64969bd206d4752c1a56a744d8cbcf58461f9788bc0c7", + "sha256:2e2e6baf4a1108f84966f44870b26766d8f6d104c9959aae329078327c677122", + "sha256:328a70e578f37f59eb54e8450b5042190bbadf2ef7f5c0b60829574b62955ed7", + "sha256:3371975b165c1e859e1990e5069e8606f00b25aed961cfd25b7bac626b1eb5a9", + "sha256:33bab9c9af936123b70b9874ce83f2bcd54be76b97637b33d31560fba8ad5d78", + "sha256:33c887b658afb144cdc8ce9156a0e1098453060c18b8bd5177f831ad58e0d60d", + "sha256:3582db55372eaee9e998d378109c4b9b15beb2c84624c767efe351363fada9c4", + "sha256:3b4da28d89527572f0d4a24814e353e1228a7aeda965e5d9265c1435a154b17a", + "sha256:3c4fa90fd91cc2957e66195ce374331bebbc816964864f64b42bd14bda773b53", + "sha256:3e66cfc915f5f7e2c8a0af8a27f87aa857f440de7521fd7f2682e23f082142a1", + "sha256:3f6f29cb134d782685f8eda01d72073c483c7f87b318b5101c7001faef7850f5", + "sha256:43469c22fcf705a7cb59c7e01d6d96975bdbc54c1138900f04d11496489a0054", + "sha256:4ad467524cb6879ce42107cf02a49cdb4a06f07fe0e5f1160d7db865a8d25d4b", + "sha256:4c9c3db90acd17e4231344a23616f33fd79837809584ce30e2450ca312fa47aa", + "sha256:533ba64d67d882286557106a1c5f12b4c2825f11b47a7c209a8c22922ca882be", + "sha256:548257463696daf919d2fdfc53ee4b98e29e3ffc5afddd713d83aa849d1fa178", + "sha256:55f907c4d18a5a40da0ceb339a0beda77c9df47c934adad987793632fb4318c3", + "sha256:5826e7fb443acb49f64f9648a2852efc8d9af2f4c67f6c3dca69dccd9e8e1d15", + "sha256:59a15c2803c20702d7f2077807d9a2b7d9a168034b87fd3f0d8361de60019a1e", + "sha256:59b3aab231c27cd754d6452c43b12498d34e7ab87d69a502bd0220f4b1c090c4", + "sha256:5da83c964aecb6c3f2a6c9a03f3d0fa579e1ad208e2c264ba826cecd19da11fa", + "sha256:60b545806a433cc752b9fa936f1c0a63bf96a3872965b958b35bd0d5d788d411", + "sha256:60fcef5c3144d861b623456d87ca7fff7af59a4a918e1364cdd0687b48285285", + "sha256:617d101b95151d827d5366e9c4225a68c64d56065e41ab9c7ef51bb87f347a8a", + "sha256:68e9add923bda8357e6fe65a568766feae369063cb7210297067675cce65272f", + "sha256:7798b3d662f70cea425637c54da30ef1894d426cab24ee7ffaaccb24a8b17bb8", + "sha256:80a288b21b17e39fb3630cf1d14fd704499bb11d9c8fc110662a0c57758d3d3e", + "sha256:81291006a934052161eae8340e7731ea6b8595b0c27dd4927c4e8a489e1760e2", + "sha256:8527ea0978ed6dc58ccb3935bd2883537b455c97ec44b5d8084677dfa817f96b", + "sha256:87016850c13082747bd120558e6750746177bd492b103b2fca761c8a1c43fba9", + "sha256:88552925fd22320600c59ee80342d6eb06bfa9503c3a402d7327983f5fa999d9", + "sha256:8d7477ebaf5d3621c763702e1ec0daeede8863fb22459c5e26ddfd17e9b1999c", + "sha256:97326d62255203c6026896d4b1ad6b5a0141ba097cae00ed3a508fe454e96baf", + "sha256:a4c7b8c5a3a186b49415af3be18e4b8f93b33d6853216c0a1d7401736b703bce", + "sha256:aff7c778d9229d66f716ad98a701fa91cf97935ae4a32a145ae9e61619906aaa", + "sha256:b280cb303fed94199f0b976595af71ebdcd388fb5e377a8198790f1016a23476", + "sha256:b59233cb8df6b60fff5f3056f6f342a8f5f04107a11936bf49ebff87dd4ace34", + "sha256:bdab2c90665b88faf5cc5e11bf835d548f4b8d8060c89fc70782b6020850aa1c", + "sha256:c00c357a4914f58398503c7f716cf1646b1e36b8176efa35255f5ebfacedfa46", + "sha256:c95a977cfdccb8ddef95ddd77cf586fe9dc327c7c93cf712983cece70cdaa1be", + "sha256:cdd3d2df486c9a8c6d08f78bdfa8ea7cf6191e037fde38c2cf6f5f0559e9d353", + "sha256:d15a0cc48f7a3055e89df1bd6623a907c407d1f58f67ff47064e598d4a550de4", + "sha256:d40cecf4bcb2cb37c59e3c79e5bbc45d47e3f3e07edf24e35fc5775db2570058", + "sha256:d4d3571c8eb21f0fbe9f0b21b49092c24d442f9a295f079949df3551b2886f29", + "sha256:d94a0d25e517c76c9ce9e2e2635d9d1a644b894f466a66a10061f4e599cdc019", + "sha256:dcc5b0d6a94637c071a427dc4469efd0ae4fda8ff384790bc8b5baaf9308dc3e", + "sha256:e00b046000b313ffaa2f6e8d7290b33b08d2005150eff4c8cf3ad74d011888d1", + "sha256:e1b56dac5e86ab52e0443d63b02796357202a8f8c5966b69f8d4c03a94778e98", + "sha256:e30d9a6fd7a7a6a4da6f80d167ce8eda4a993ff24282cbc73f34186c46a498db", + "sha256:f1977c1fe28173f2349d42c59f80f10a97ce34f2bedb7b7f55e2e8a8de9b7dfb", + "sha256:f2bc8a9076ea7add860d57dbee0554a212962ecf2a900344f2fc7c56a02463b0", + "sha256:f311ca33fcb9f8fb060c1fa76238d8d029f33b71a2021bafa5d423cc25965b54", + "sha256:f579a202b90c1110d0894a86b32a89bf550fdb34bdd3f9f550115706be462e19", + "sha256:fa41a427d4f03ec6d6da2fd8a230f4f388f336cd7ca46b46c4d2a1bca3ead85a", + "sha256:fd47362e03acc780aad5a5bc4624d495594261b55a1f79a5b775b6be865a5911" ], - "markers": "python_version >= '3.6'", - "version": "==2022.10.31" + "markers": "python_version >= '3.8'", + "version": "==2023.3.22" }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" ], "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==2.28.1" + "version": "==2.28.2" + }, + "ruff": { + "hashes": [ + "sha256:22e1e35bf5f12072cd644d22afd9203641ccf258bc14ff91aa1c43dc14f6047d", + "sha256:29e2b77b7d5da6a7dd5cf9b738b511355c5734ece56f78e500d4b5bffd58c1a0", + "sha256:38704f151323aa5858370a2f792e122cc25e5d1aabe7d42ceeab83da18f0b456", + "sha256:40ae87f2638484b7e8a7567b04a7af719f1c484c5bf132038b702bb32e1f6577", + "sha256:428507fb321b386dda70d66cd1a8aa0abf51d7c197983d83bb9e4fa5ee60300b", + "sha256:49e903bcda19f6bb0725a962c058eb5d61f40d84ef52ed53b61939b69402ab4e", + "sha256:5b3c1beacf6037e7f0781d4699d9a2dd4ba2462f475be5b1f45cf84c4ba3c69d", + "sha256:71f0ef1985e9a6696fa97da8459917fa34bdaa2c16bd33bd5edead585b7d44f7", + "sha256:79b02fa17ec1fd8d306ae302cb47fb614b71e1f539997858243769bcbe78c6d9", + "sha256:7cfef26619cba184d59aa7fa17b48af5891d51fc0b755a9bc533478a10d4d066", + "sha256:8b56496063ab3bfdf72339a5fbebb8bd46e5c5fee25ef11a9f03b208fa0562ec", + "sha256:aa9449b898287e621942cc71b9327eceb8f0c357e4065fecefb707ef2d978df8", + "sha256:c5fbaea9167f1852757f02133e5daacdb8c75b3431343205395da5b10499927a", + "sha256:d2fb20e89e85d147c85caa807707a1488bccc1f3854dc3d53533e89b52a0c5ff", + "sha256:daaea322e7e85f4c13d82be9536309e1c4b8b9851bb0cbc7eeb15d490fd46bf9", + "sha256:e4f39e18702de69faaaee3969934b92d7467285627f99a5b6ecd55a7d9f5d086", + "sha256:f3938dc45e2a3f818e9cbd53007265c22246fbfded8837b2c563bf0ebde1a226" + ], + "index": "pypi", + "version": "==0.0.259" }, "scipy": { "hashes": [ @@ -2936,11 +3123,11 @@ }, "setuptools": { "hashes": [ - "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", - "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" + "sha256:2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077", + "sha256:b78aaa36f6b90a074c1fa651168723acbf45d14cb1196b6f02c0fd07f17623b2" ], "markers": "python_version >= '3.7'", - "version": "==65.6.3" + "version": "==67.6.0" }, "six": { "hashes": [ @@ -2963,74 +3150,588 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_full_version < '3.11.0a7'", + "markers": "python_version < '3.11'", "version": "==2.0.1" }, "typing-extensions": { "hashes": [ - "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa", - "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e" + "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb", + "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4" ], - "markers": "python_version < '3.10'", - "version": "==4.4.0" + "markers": "python_version >= '3.7'", + "version": "==4.5.0" }, "urllib3": { "hashes": [ - "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", - "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", + "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.13" + "version": "==1.26.15" }, "virtualenv": { "hashes": [ - "sha256:ce3b1684d6e1a20a3e5ed36795a97dfc6af29bc3970ca8dab93e11ac6094b3c4", - "sha256:f8b927684efc6f1cc206c9db297a570ab9ad0e51c16fa9e45487d36d1905c058" + "sha256:31712f8f2a17bd06234fa97fdf19609e789dd4e3e4bf108c3da71d710651adbc", + "sha256:f50e3e60f990a0757c9b68333c9fdaa72d7188caa417f96af9e52407831a3b68" ], - "markers": "python_version >= '3.6'", - "version": "==20.17.1" + "markers": "python_version >= '3.7'", + "version": "==20.21.0" }, "watchdog": { "hashes": [ - "sha256:102a60093090fc3ff76c983367b19849b7cc24ec414a43c0333680106e62aae1", - "sha256:17f1708f7410af92ddf591e94ae71a27a13974559e72f7e9fde3ec174b26ba2e", - "sha256:195ab1d9d611a4c1e5311cbf42273bc541e18ea8c32712f2fb703cfc6ff006f9", - "sha256:4cb5ecc332112017fbdb19ede78d92e29a8165c46b68a0b8ccbd0a154f196d5e", - "sha256:5100eae58133355d3ca6c1083a33b81355c4f452afa474c2633bd2fbbba398b3", - "sha256:61fdb8e9c57baf625e27e1420e7ca17f7d2023929cd0065eb79c83da1dfbeacd", - "sha256:6ccd8d84b9490a82b51b230740468116b8205822ea5fdc700a553d92661253a3", - "sha256:6e01d699cd260d59b84da6bda019dce0a3353e3fcc774408ae767fe88ee096b7", - "sha256:748ca797ff59962e83cc8e4b233f87113f3cf247c23e6be58b8a2885c7337aa3", - "sha256:83a7cead445008e880dbde833cb9e5cc7b9a0958edb697a96b936621975f15b9", - "sha256:8586d98c494690482c963ffb24c49bf9c8c2fe0589cec4dc2f753b78d1ec301d", - "sha256:8b5cde14e5c72b2df5d074774bdff69e9b55da77e102a91f36ef26ca35f9819c", - "sha256:8c28c23972ec9c524967895ccb1954bc6f6d4a557d36e681a36e84368660c4ce", - "sha256:967636031fa4c4955f0f3f22da3c5c418aa65d50908d31b73b3b3ffd66d60640", - "sha256:96cbeb494e6cbe3ae6aacc430e678ce4b4dd3ae5125035f72b6eb4e5e9eb4f4e", - "sha256:978a1aed55de0b807913b7482d09943b23a2d634040b112bdf31811a422f6344", - "sha256:a09483249d25cbdb4c268e020cb861c51baab2d1affd9a6affc68ffe6a231260", - "sha256:a480d122740debf0afac4ddd583c6c0bb519c24f817b42ed6f850e2f6f9d64a8", - "sha256:adaf2ece15f3afa33a6b45f76b333a7da9256e1360003032524d61bdb4c422ae", - "sha256:bc43c1b24d2f86b6e1cc15f68635a959388219426109233e606517ff7d0a5a73", - "sha256:c27d8c1535fd4474e40a4b5e01f4ba6720bac58e6751c667895cbc5c8a7af33c", - "sha256:cdcc23c9528601a8a293eb4369cbd14f6b4f34f07ae8769421252e9c22718b6f", - "sha256:cece1aa596027ff56369f0b50a9de209920e1df9ac6d02c7f9e5d8162eb4f02b", - "sha256:d0f29fd9f3f149a5277929de33b4f121a04cf84bb494634707cfa8ea8ae106a8", - "sha256:d6b87477752bd86ac5392ecb9eeed92b416898c30bd40c7e2dd03c3146105646", - "sha256:e038be858425c4f621900b8ff1a3a1330d9edcfeaa1c0468aeb7e330fb87693e", - "sha256:e618a4863726bc7a3c64f95c218437f3349fb9d909eb9ea3a1ed3b567417c661", - "sha256:f8ac23ff2c2df4471a61af6490f847633024e5aa120567e08d07af5718c9d092" + "sha256:03f342a9432fe08107defbe8e405a2cb922c5d00c4c6c168c68b633c64ce6190", + "sha256:0d9878be36d2b9271e3abaa6f4f051b363ff54dbbe7e7df1af3c920e4311ee43", + "sha256:0e1dd6d449267cc7d6935d7fe27ee0426af6ee16578eed93bacb1be9ff824d2d", + "sha256:2caf77ae137935c1466f8cefd4a3aec7017b6969f425d086e6a528241cba7256", + "sha256:3d2dbcf1acd96e7a9c9aefed201c47c8e311075105d94ce5e899f118155709fd", + "sha256:4109cccf214b7e3462e8403ab1e5b17b302ecce6c103eb2fc3afa534a7f27b96", + "sha256:4cd61f98cb37143206818cb1786d2438626aa78d682a8f2ecee239055a9771d5", + "sha256:53f3e95081280898d9e4fc51c5c69017715929e4eea1ab45801d5e903dd518ad", + "sha256:564e7739abd4bd348aeafbf71cc006b6c0ccda3160c7053c4a53b67d14091d42", + "sha256:5b848c71ef2b15d0ef02f69da8cc120d335cec0ed82a3fa7779e27a5a8527225", + "sha256:5defe4f0918a2a1a4afbe4dbb967f743ac3a93d546ea4674567806375b024adb", + "sha256:6f5d0f7eac86807275eba40b577c671b306f6f335ba63a5c5a348da151aba0fc", + "sha256:7a1876f660e32027a1a46f8a0fa5747ad4fcf86cb451860eae61a26e102c8c79", + "sha256:7a596f9415a378d0339681efc08d2249e48975daae391d58f2e22a3673b977cf", + "sha256:85bf2263290591b7c5fa01140601b64c831be88084de41efbcba6ea289874f44", + "sha256:8a4d484e846dcd75e96b96d80d80445302621be40e293bfdf34a631cab3b33dc", + "sha256:8f2df370cd8e4e18499dd0bfdef476431bcc396108b97195d9448d90924e3131", + "sha256:91fd146d723392b3e6eb1ac21f122fcce149a194a2ba0a82c5e4d0ee29cd954c", + "sha256:95ad708a9454050a46f741ba5e2f3468655ea22da1114e4c40b8cbdaca572565", + "sha256:964fd236cd443933268ae49b59706569c8b741073dbfd7ca705492bae9d39aab", + "sha256:9da7acb9af7e4a272089bd2af0171d23e0d6271385c51d4d9bde91fe918c53ed", + "sha256:a073c91a6ef0dda488087669586768195c3080c66866144880f03445ca23ef16", + "sha256:a74155398434937ac2780fd257c045954de5b11b5c52fc844e2199ce3eecf4cf", + "sha256:aa8b028750b43e80eea9946d01925168eeadb488dfdef1d82be4b1e28067f375", + "sha256:d1f1200d4ec53b88bf04ab636f9133cb703eb19768a39351cee649de21a33697", + "sha256:d9f9ed26ed22a9d331820a8432c3680707ea8b54121ddcc9dc7d9f2ceeb36906", + "sha256:ea5d86d1bcf4a9d24610aa2f6f25492f441960cf04aed2bd9a97db439b643a7b", + "sha256:efe3252137392a471a2174d721e1037a0e6a5da7beb72a021e662b7000a9903f" ], "index": "pypi", - "version": "==2.2.1" + "version": "==2.3.1" }, "zipp": { "hashes": [ - "sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa", - "sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766" + "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b", + "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556" ], "markers": "python_version < '3.10'", - "version": "==3.11.0" + "version": "==3.15.0" + } + }, + "typing-dev": { + "asgiref": { + "hashes": [ + "sha256:71e68008da809b957b7ee4b43dbccff33d1b23519fb8344e33f049897077afac", + "sha256:9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506" + ], + "markers": "python_version >= '3.7'", + "version": "==3.6.0" + }, + "backports.zoneinfo": { + "hashes": [ + "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf", + "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328", + "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546", + "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6", + "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570", + "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9", + "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7", + "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987", + "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722", + "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582", + "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc", + "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b", + "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1", + "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08", + "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac", + "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2" + ], + "markers": "python_version < '3.9'", + "version": "==0.2.1" + }, + "celery-types": { + "hashes": [ + "sha256:397bd3c7fc38c0718220da75ce33087894e5d340c293792de9cfe39b6f686789", + "sha256:ba36dddad281b55c1596a4e0f84952b24158900d0e30c5888bb458c60d7f9b18" + ], + "index": "pypi", + "version": "==0.14.0" + }, + "certifi": { + "hashes": [ + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" + ], + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" + }, + "cffi": { + "hashes": [ + "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", + "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", + "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", + "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", + "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", + "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", + "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", + "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", + "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", + "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", + "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", + "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", + "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", + "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", + "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", + "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", + "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", + "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", + "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", + "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", + "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", + "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", + "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", + "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", + "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", + "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", + "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", + "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", + "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", + "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", + "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", + "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", + "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", + "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", + "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", + "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", + "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", + "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", + "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", + "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", + "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", + "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", + "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", + "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", + "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", + "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", + "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", + "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", + "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", + "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", + "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", + "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", + "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", + "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", + "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", + "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", + "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", + "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", + "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", + "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", + "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", + "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", + "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", + "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" + ], + "version": "==1.15.1" + }, + "charset-normalizer": { + "hashes": [ + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.1.0" + }, + "cryptography": { + "hashes": [ + "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1", + "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7", + "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06", + "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84", + "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915", + "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074", + "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5", + "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3", + "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9", + "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3", + "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011", + "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536", + "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a", + "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f", + "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480", + "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac", + "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0", + "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108", + "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828", + "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354", + "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612", + "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3", + "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97" + ], + "markers": "python_version >= '3.6'", + "version": "==39.0.2" + }, + "django": { + "hashes": [ + "sha256:44f714b81c5f190d9d2ddad01a532fe502fa01c4cb8faf1d081f4264ed15dcd8", + "sha256:f2f431e75adc40039ace496ad3b9f17227022e8b11566f4b363da44c7e44761e" + ], + "index": "pypi", + "version": "==4.1.7" + }, + "django-filter-stubs": { + "hashes": [ + "sha256:2003003bd92cfefa69cd0963b550aac0c2f0de30cb2ff31d753c6d8c3586347a", + "sha256:2955baa061cbbd0e338148323720774c556490065fae56c3e133b6cc9ef912e7" + ], + "index": "pypi", + "version": "==0.1.2" + }, + "django-stubs": { + "extras": [ + "compatible-mypy" + ], + "hashes": [ + "sha256:1bd96207576cd220221a0e615f0259f13d453d515a80f576c1246e0fb547f561", + "sha256:c95f948e2bfc565f3147e969ff361ef033841a0b8a51cac974a6cc6d0486732c" + ], + "index": "pypi", + "version": "==1.16.0" + }, + "django-stubs-ext": { + "hashes": [ + "sha256:9a9ba9e2808737949de96a0fce8b054f12d38e461011d77ebc074ffe8c43dfcb", + "sha256:a454d349d19c26d6c50c4c6dbc1e8af4a9cda4ce1dc4104e3dd4c0330510cc56" + ], + "markers": "python_version >= '3.7'", + "version": "==0.8.0" + }, + "djangorestframework-stubs": { + "extras": [ + "compatible-mypy" + ], + "hashes": [ + "sha256:433edd7f10786914138b300b9be5aba1ebc80c471b5156934664afd7e9df9fd6", + "sha256:69e8a1ea7eb815cbe35155c27eee72522d7c8666d3cbdacb9997ab88c7b4202c" + ], + "index": "pypi", + "version": "==1.10.0" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "markers": "python_version >= '3.5'", + "version": "==3.4" + }, + "mypy": { + "hashes": [ + "sha256:0a28a76785bf57655a8ea5eb0540a15b0e781c807b5aa798bd463779988fa1d5", + "sha256:19ba15f9627a5723e522d007fe708007bae52b93faab00f95d72f03e1afa9598", + "sha256:21b437be1c02712a605591e1ed1d858aba681757a1e55fe678a15c2244cd68a5", + "sha256:26cdd6a22b9b40b2fd71881a8a4f34b4d7914c679f154f43385ca878a8297389", + "sha256:2888ce4fe5aae5a673386fa232473014056967f3904f5abfcf6367b5af1f612a", + "sha256:2b0c373d071593deefbcdd87ec8db91ea13bd8f1328d44947e88beae21e8d5e9", + "sha256:315ac73cc1cce4771c27d426b7ea558fb4e2836f89cb0296cbe056894e3a1f78", + "sha256:39c7119335be05630611ee798cc982623b9e8f0cff04a0b48dfc26100e0b97af", + "sha256:4b398d8b1f4fba0e3c6463e02f8ad3346f71956b92287af22c9b12c3ec965a9f", + "sha256:4e4e8b362cdf99ba00c2b218036002bdcdf1e0de085cdb296a49df03fb31dfc4", + "sha256:59bbd71e5c58eed2e992ce6523180e03c221dcd92b52f0e792f291d67b15a71c", + "sha256:5b5f81b40d94c785f288948c16e1f2da37203c6006546c5d947aab6f90aefef2", + "sha256:5cb14ff9919b7df3538590fc4d4c49a0f84392237cbf5f7a816b4161c061829e", + "sha256:61bf08362e93b6b12fad3eab68c4ea903a077b87c90ac06c11e3d7a09b56b9c1", + "sha256:64cc3afb3e9e71a79d06e3ed24bb508a6d66f782aff7e56f628bf35ba2e0ba51", + "sha256:69b35d1dcb5707382810765ed34da9db47e7f95b3528334a3c999b0c90fe523f", + "sha256:9401e33814cec6aec8c03a9548e9385e0e228fc1b8b0a37b9ea21038e64cdd8a", + "sha256:a380c041db500e1410bb5b16b3c1c35e61e773a5c3517926b81dfdab7582be54", + "sha256:ae9ceae0f5b9059f33dbc62dea087e942c0ccab4b7a003719cb70f9b8abfa32f", + "sha256:b7c7b708fe9a871a96626d61912e3f4ddd365bf7f39128362bc50cbd74a634d5", + "sha256:c1c10fa12df1232c936830839e2e935d090fc9ee315744ac33b8a32216b93707", + "sha256:ce61663faf7a8e5ec6f456857bfbcec2901fbdb3ad958b778403f63b9e606a1b", + "sha256:d64c28e03ce40d5303450f547e07418c64c241669ab20610f273c9e6290b4b0b", + "sha256:d809f88734f44a0d44959d795b1e6f64b2bbe0ea4d9cc4776aa588bb4229fc1c", + "sha256:dbb19c9f662e41e474e0cff502b7064a7edc6764f5262b6cd91d698163196799", + "sha256:ef6a01e563ec6a4940784c574d33f6ac1943864634517984471642908b30b6f7" + ], + "index": "pypi", + "version": "==1.1.1" + }, + "mypy-extensions": { + "hashes": [ + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.0" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "requests": { + "hashes": [ + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" + ], + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.2" + }, + "sqlparse": { + "hashes": [ + "sha256:0323c0ec29cd52bceabc1b4d9d579e311f3e4961b98d174201d5622a23b85e34", + "sha256:69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268" + ], + "markers": "python_version >= '3.5'", + "version": "==0.4.3" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "markers": "python_version >= '3.7'", + "version": "==2.0.1" + }, + "types-backports": { + "hashes": [ + "sha256:dafcd61848081503e738a7768872d1dd6c018401b4d2a1cfb608ea87ec9864b9", + "sha256:f4b7206c073df88d6200891e3d27506185fd60cda66fb289737b2fa92c0010cf" + ], + "index": "pypi", + "version": "==0.1.3" + }, + "types-bleach": { + "hashes": [ + "sha256:43d9129deb9e82918747437edf78f09ff440f2973f4702625b61994f3e698518", + "sha256:440df967254007be80bb0f4d851f026c29c709cc48359bf4935d2b2f3a6f9f90" + ], + "index": "pypi", + "version": "==6.0.0.1" + }, + "types-colorama": { + "hashes": [ + "sha256:7ebcb66eb2c672c4f576fc7445a45860eba5f4f05e459de6cea413fac8ef4d2c", + "sha256:c6bb245aa868c7dd78c3b16bd48484cd366127d61e4efa15676eac23acd82b76" + ], + "index": "pypi", + "version": "==0.4.15.8" + }, + "types-dateparser": { + "hashes": [ + "sha256:16b1855dd02e255a6bac8e58a13f30f9fa585442fd0e4a1430312fad72143a76", + "sha256:b2d674d196076875ace0a800dd6496a6739f3c66f65080759819737bdbad012e" + ], + "index": "pypi", + "version": "==1.1.4.8" + }, + "types-docutils": { + "hashes": [ + "sha256:a334a703a8688910d0869464f1f6f8bd330d75843bdab4f893547bfb29417a01", + "sha256:b7e182f371cbe20828a8750ffb150219968452445946f66f33778b08e81c7d89" + ], + "version": "==0.19.1.6" + }, + "types-humanfriendly": { + "hashes": [ + "sha256:035982e7cdf8883d971d7801265c26c3a6c1cea4152c8adb20bdbbfa95925c7c", + "sha256:3d1da61342df8e54a5fb7af04ce32facb4abd080b72d3e1f6dd3ce6a7c4850c0" + ], + "index": "pypi", + "version": "==10.0.1.8" + }, + "types-markdown": { + "hashes": [ + "sha256:6707853d2478f6ae9e298db497c93c38fe40d8f89e1d90872d992c3934aa76d7", + "sha256:e76a2a07166f7c69aadf5fa51ef954d2baaed35eb8fa30c36f10877d8403fcef" + ], + "index": "pypi", + "version": "==3.4.2.5" + }, + "types-pillow": { + "hashes": [ + "sha256:7f0e871d2d46fbb6bc7deca3e02dc552cf9c1e8b49deb9595509551be3954e49", + "sha256:f8b848a05f17cb4d53d245c59bf560372b9778d4cfaf9705f6245009bf9f65f3" + ], + "index": "pypi", + "version": "==9.4.0.17" + }, + "types-psycopg2": { + "hashes": [ + "sha256:b629440ffcfdebd742fab07f777ff69aefdd19394a138c18e921a1964c3cf5f6", + "sha256:e747fbec6e0e2502b625bc7686d13cc62fc170e8ae920e5ba27fac946778eeb9" + ], + "index": "pypi", + "version": "==2.9.21.8" + }, + "types-pygments": { + "hashes": [ + "sha256:111c2accae3b8f8e0449889b285f5313f54bdb0ccaed5c4742d56988f867ee9e", + "sha256:26b3eb1d69d9e552c4b09060f9663e4245b8290a6fb8a6d6ad637de734347b2b" + ], + "index": "pypi", + "version": "==2.14.0.6" + }, + "types-pyopenssl": { + "hashes": [ + "sha256:8b3550b6e19d51ce78aabd724b0d8ebd962081a5fce95e7f85a592dfcdbc16bf", + "sha256:ad49e15bb8bb2f251b8fc24776f414d877629e44b1b049240063ab013b5a6a7d" + ], + "version": "==23.0.0.4" + }, + "types-python-dateutil": { + "hashes": [ + "sha256:c640f2eb71b4b94a9d3bfda4c04250d29a24e51b8bad6e12fddec0cf6e96f7a3", + "sha256:fbecd02c19cac383bf4a16248d45ffcff17c93a04c0794be5f95d42c6aa5de39" + ], + "index": "pypi", + "version": "==2.8.19.10" + }, + "types-pytz": { + "hashes": [ + "sha256:40ca448a928d566f7d44ddfde0066e384f7ffbd4da2778e42a4570eaca572446", + "sha256:487d3e8e9f4071eec8081746d53fa982bbc05812e719dcbf2ebf3d55a1a4cd28" + ], + "version": "==2022.7.1.2" + }, + "types-pyyaml": { + "hashes": [ + "sha256:19304869a89d49af00be681e7b267414df213f4eb89634c4495fa62e8f942b9f", + "sha256:5314a4b2580999b2ea06b2e5f9a7763d860d6e09cdf21c0e9561daa9cbd60178" + ], + "version": "==6.0.12.8" + }, + "types-redis": { + "hashes": [ + "sha256:7c1d5fdb0a2d5fd92eac37ce382fdb47d99a69889e7d6c2bc4479148ac646c73", + "sha256:f23415e448ca25ec5028c24fdf3717a13f0c905eb1933733e8a8a7d4952f6908" + ], + "index": "pypi", + "version": "==4.5.3.0" + }, + "types-requests": { + "hashes": [ + "sha256:9d4002056df7ebc4ec1f28fd701fba82c5c22549c4477116cb2656aa30ace6db", + "sha256:a86921028335fdcc3aaf676c9d3463f867db6af2303fc65aa309b13ae1e6dd53" + ], + "version": "==2.28.11.16" + }, + "types-setuptools": { + "hashes": [ + "sha256:3a708e66c7bdc620e4d0439f344c750c57a4340c895a4c3ed2d0fc4ae8eb9962", + "sha256:dae5a4a659dbb6dba57773440f6e2dbdd8ef282dc136a174a8a59bd33d949945" + ], + "index": "pypi", + "version": "==67.6.0.5" + }, + "types-tqdm": { + "hashes": [ + "sha256:3377b5e34396b4e1661f8df7390051490918b8be36ae0f7b6864c1d806e95ef5", + "sha256:8707a0dd16a1f2061e316ddc5ef07908d7465193f0d2ed24be75b55e6b9e6cbe" + ], + "index": "pypi", + "version": "==4.65.0.0" + }, + "types-urllib3": { + "hashes": [ + "sha256:95ea847fbf0bf675f50c8ae19a665baedcf07e6b4641662c4c3c72e7b2edf1a9", + "sha256:ecf43c42d8ee439d732a1110b4901e9017a79a38daca26f08e42c8460069392c" + ], + "version": "==1.26.25.8" + }, + "typing-extensions": { + "hashes": [ + "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb", + "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4" + ], + "markers": "python_version >= '3.7'", + "version": "==4.5.0" + }, + "urllib3": { + "hashes": [ + "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", + "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.15" } } } diff --git a/docker/docker-prepare.sh b/docker/docker-prepare.sh index b088cef40..d6eab4281 100755 --- a/docker/docker-prepare.sh +++ b/docker/docker-prepare.sh @@ -80,7 +80,7 @@ django_checks() { search_index() { - local -r index_version=3 + local -r index_version=4 local -r index_version_file=${DATA_DIR}/.index_version if [[ (! -f "${index_version_file}") || $(<"${index_version_file}") != "$index_version" ]]; then diff --git a/docker/supervisord.conf b/docker/supervisord.conf index bfb78330a..69b7879b9 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -28,7 +28,7 @@ stderr_logfile_maxbytes=0 [program:celery] -command = celery --app paperless worker --loglevel INFO +command = celery --app paperless worker --loglevel INFO --without-mingle --without-gossip user=paperless stopasgroup = true stopwaitsecs = 60 diff --git a/docker/wait-for-redis.py b/docker/wait-for-redis.py index 86f35a7cf..cabfb1dc6 100755 --- a/docker/wait-for-redis.py +++ b/docker/wait-for-redis.py @@ -18,7 +18,7 @@ if __name__ == "__main__": REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379") - print(f"Waiting for Redis...", flush=True) + print("Waiting for Redis...", flush=True) attempt = 0 with Redis.from_url(url=REDIS_URL) as client: @@ -37,8 +37,8 @@ if __name__ == "__main__": attempt += 1 if attempt >= MAX_RETRY_COUNT: - print(f"Failed to connect to redis using environment variable PAPERLESS_REDIS.") + print("Failed to connect to redis using environment variable PAPERLESS_REDIS.") sys.exit(os.EX_UNAVAILABLE) else: - print(f"Connected to Redis broker.") + print("Connected to Redis broker.") sys.exit(os.EX_OK) diff --git a/docs/administration.md b/docs/administration.md index 95abd8635..46d6aaaaa 100644 --- a/docs/administration.md +++ b/docs/administration.md @@ -98,7 +98,7 @@ the background. won't automatically update to newer versions. In order to enable updates as described above, either get the new `docker-compose.yml` file from - [here](https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose) + [here](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) or edit the `docker-compose.yml` file, find the line that says ``` @@ -475,12 +475,13 @@ mail_fetcher The command takes no arguments and processes all your mail accounts and rules. -!!! note +!!! tip - As of October 2022 Microsoft no longer supports IMAP authentication - for Exchange servers, thus Exchange is no longer supported until a - solution is implemented in the Python IMAP library used by Paperless. - See [learn.microsoft.com](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online) + To use OAuth access tokens for mail fetching, + select the box to indicate the password is actually + a token when creating or editing a mail account. The + details for creating a token depend on your email + provider. ### Creating archived documents {#archiver} diff --git a/docs/advanced_usage.md b/docs/advanced_usage.md index 61f88cff9..005bdc425 100644 --- a/docs/advanced_usage.md +++ b/docs/advanced_usage.md @@ -9,7 +9,7 @@ Paperless will compare the matching algorithms defined by every tag, correspondent, document type, and storage path in your database to see if they apply to the text in a document. In other words, if you define a tag called `Home Utility` that had a `match` property of `bc hydro` and -a `matching_algorithm` of `literal`, Paperless will automatically tag +a `matching_algorithm` of `Exact`, Paperless will automatically tag your newly-consumed document with your `Home Utility` tag so long as the text `bc hydro` appears in the body of the document somewhere. @@ -25,12 +25,13 @@ documents. The following algorithms are available: +- **None:** No matching will be performed. - **Any:** Looks for any occurrence of any word provided in match in the PDF. If you define the match as `Bank1 Bank2`, it will match documents containing either of these terms. - **All:** Requires that every word provided appears in the PDF, albeit not in the order provided. -- **Literal:** Matches only if the match appears exactly as provided +- **Exact:** Matches only if the match appears exactly as provided (i.e. preserve ordering) in the PDF. - **Regular expression:** Parses the match as a regular expression and tries to find a match within the document. @@ -308,6 +309,8 @@ Paperless provides the following placeholders within filenames: - `{added_month_name_short}`: Month added abbreviated name, as per locale - `{added_day}`: Day added only (number 01-31). +- `{owner_username}`: Username of document owner, if any, or "none" +- `{original_name}`: Document original filename, minus the extension, if any, or "none" Paperless will try to conserve the information from your database as much as possible. However, some characters that you can use in document @@ -414,13 +417,6 @@ Insurances/ # Insurances Defining a storage path is optional. If no storage path is defined for a document, the global `PAPERLESS_FILENAME_FORMAT` is applied. -!!! warning - - If you adjust the format of an existing storage path, old documents - don't get relocated automatically. You need to run the - [document renamer](/administration#renamer) to - adjust their paths. - ## Celery Monitoring {#celery-monitoring} The monitoring tool diff --git a/docs/api.md b/docs/api.md index 2c200dea7..4a24890c8 100644 --- a/docs/api.md +++ b/docs/api.md @@ -14,12 +14,15 @@ The API provides 7 main endpoints: - `/api/document_types/`: Full CRUD support. - `/api/logs/`: Read-Only. - `/api/tags/`: Full CRUD support. +- `/api/tasks/`: Read-only. - `/api/mail_accounts/`: Full CRUD support. - `/api/mail_rules/`: Full CRUD support. +- `/api/users/`: Full CRUD support. +- `/api/groups/`: Full CRUD support. All of these endpoints except for the logging endpoint allow you to -fetch, edit and delete individual objects by appending their primary key -to the path, for example `/api/documents/454/`. +fetch (and edit and delete where appropriate) individual objects by +appending their primary key to the path, e.g. `/api/documents/454/`. The objects served by the document endpoint contain the following fields: @@ -254,11 +257,16 @@ The endpoint supports the following optional form fields: - `document_type`: Similar to correspondent. - `tags`: Similar to correspondent. Specify this multiple times to have multiple tags added to the document. +- `owner`: An optional user ID to set as the owner. +- `archive_serial_number`: An optional archive serial number to set. -The endpoint will immediately return "OK" if the document consumption -process was started successfully. No additional status information about -the consumption process itself is available, since that happens in a -different process. +The endpoint will immediately return HTTP 200 if the document consumption +process was started successfully, with the UUID of the consumption task +as the data. No additional status information about the consumption process +itself is available immediately, since that happens in a different process. +However, querying the tasks endpoint with the returned UUID e.g. +`/api/tasks/?task_id={uuid}` will provide information on the state of the +consumption including the ID of a created document if consumption succeeded. ## API Versioning diff --git a/docs/assets/screenshots/dashboard.png b/docs/assets/screenshots/dashboard.png index 41fe23ffc..eded2135f 100644 Binary files a/docs/assets/screenshots/dashboard.png and b/docs/assets/screenshots/dashboard.png differ diff --git a/docs/configuration.md b/docs/configuration.md index 89ba83f49..bde170e5c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -90,6 +90,36 @@ changed here. Default is `prefer`. +`PAPERLESS_DBSSLROOTCERT=` + +: SSL root certificate path + + See [the official documentation about + sslmode](https://www.postgresql.org/docs/current/libpq-ssl.html). + Changes path of `root.crt`. + + Defaults to unset, using the documented path in the home directory. + +`PAPERLESS_DBSSLCERT=` + +: SSL client certificate path + + See [the official documentation about + sslmode](https://www.postgresql.org/docs/current/libpq-ssl.html). + Changes path of `postgresql.crt`. + + Defaults to unset, using the documented path in the home directory. + +`PAPERLESS_DBSSLKEY=` + +: SSL client key path + + See [the official documentation about + sslmode](https://www.postgresql.org/docs/current/libpq-ssl.html). + Changes path of `postgresql.key`. + + Defaults to unset, using the documented path in the home directory. + `PAPERLESS_DB_TIMEOUT=` : Amount of time for a database connection to wait for the database to @@ -306,6 +336,14 @@ do CORS calls. Set this to your public domain name. Defaults to "". +`PAPERLESS_TRUSTED_PROXIES=` + +: This may be needed to prevent IP address spoofing if you are using e.g. +fail2ban with log entries for failed authorization attempts. Value should be +IP address(es). + + Defaults to empty string. + `PAPERLESS_FORCE_SCRIPT_NAME=` : To host paperless under a subpath url like example.com/paperless you @@ -415,6 +453,33 @@ redirect the user back to the SSO application's logout page. Defaults to None, which disables this feature. +`PAPERLESS_USE_X_FORWARD_HOST=` + +: Configures the Django setting [USE_X_FORWARDED_HOST](https://docs.djangoproject.com/en/4.2/ref/settings/#use-x-forwarded-host) +which may be needed for hosting behind a proxy. + + Defaults to False + +`PAPERLESS_USE_X_FORWARD_PORT=` + +: Configures the Django setting [USE_X_FORWARDED_PORT](https://docs.djangoproject.com/en/4.2/ref/settings/#use-x-forwarded-port) +which may be needed for hosting behind a proxy. + + Defaults to False + +`PAPERLESS_PROXY_SSL_HEADER=` + +: Configures the Django setting [SECURE_PROXY_SSL_HEADER](https://docs.djangoproject.com/en/4.2/ref/settings/#secure-proxy-ssl-header) +which may be needed for hosting behind a proxy. The two values in the list will form the tuple of +HTTP header/value expected by Django, eg `'["HTTP_X_FORWARDED_PROTO", "https"]'`. + + Defaults to None + +!!! warning + + Settings this value has security implications. Read the Django documentation + and be sure you understand its usage before setting it. + ## OCR settings {#ocr} Paperless uses [OCRmyPDF](https://ocrmypdf.readthedocs.io/en/latest/) @@ -450,12 +515,6 @@ modes are available: - `skip`: Paperless skips all pages and will perform ocr only on pages where no text is present. This is the safest option. - - `skip_noarchive`: In addition to skip, paperless won't create - an archived version of your documents when it finds any text in - them. This is useful if you don't want to have two - almost-identical versions of your digital documents in the media - folder. This is the fastest option. - - `redo`: Paperless will OCR all pages of your documents and attempt to replace any existing text layers with new text. This will be useful for documents from scanners that already @@ -478,6 +537,19 @@ modes are available: Read more about this in the [OCRmyPDF documentation](https://ocrmypdf.readthedocs.io/en/latest/advanced.html#when-ocr-is-skipped). +`PAPERLESS_OCR_SKIP_ARCHIVE_FILE=` + +: Specify when you would like paperless to skip creating an archived +version of your documents. This is useful if you don't want to have two +almost-identical versions of your documents in the media folder. + + - `never`: Never skip creating an archived version. + - `with_text`: Skip creating an archived version for documents + that already have embedded text. + - `always`: Always skip creating an archived version. + + The default is `never`. + `PAPERLESS_OCR_CLEAN=` : Tells paperless to use `unpaper` to clean any input document before @@ -811,6 +883,16 @@ or hidden folders some tools use to store data. Defaults to `[".DS_STORE/*", "._*", ".stfolder/*", ".stversions/*", ".localized/*", "desktop.ini", "@eaDir/*"]`. +`PAPERLESS_CONSUMER_BARCODE_SCANNER=` + +: Sets the barcode scanner used for barcode functionality. + + Currently, "PYZBAR" (the default) or "ZXING" might be selected. + If you have problems that your Barcodes/QR-Codes are not detected + (especially with bad scan quality and/or small codes), try the other one. + + zxing is not available on all platforms. + `PAPERLESS_PRE_CONSUME_SCRIPT=` : After some initial validation, Paperless can trigger an arbitrary diff --git a/docs/development.md b/docs/development.md index 0750a8107..82d2d4c16 100644 --- a/docs/development.md +++ b/docs/development.md @@ -256,7 +256,7 @@ these parts have to be translated separately. - The translated strings need to be placed in the `src-ui/src/locale/` folder. - In order to extract added or changed strings from the source files, - call `ng xi18n --ivy`. + call `ng extract-i18n`. Adding new languages requires adding the translated files in the `src-ui/src/locale/` folder and adjusting a couple files. diff --git a/docs/setup.md b/docs/setup.md index e25c3556f..af6abff10 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -43,7 +43,7 @@ steps described in [Docker setup](#docker_hub) automatically. ``` 2. Go to the [/docker/compose directory on the project - page](https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose) + page](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) and download one of the `docker-compose.*.yml` files, depending on which database backend you want to use. Rename this file to `docker-compose.yml`. If you want to enable @@ -160,8 +160,7 @@ steps described in [Docker setup](#docker_hub) automatically. `PAPERLESS_CONSUMER_POLLING`, which will disable inotify. See [here](/configuration#polling). -6. Run `docker-compose pull`, followed by `docker-compose up -d`. This - will pull the image, create and start the necessary containers. +6. Run `docker-compose pull`. This will pull the image. 7. To be able to login, you will need a super user. To create it, execute the following command: @@ -179,7 +178,9 @@ steps described in [Docker setup](#docker_hub) automatically. This will prompt you to set a username, an optional e-mail address and finally a password (at least 8 characters). -8. The default `docker-compose.yml` exports the webserver on your local +8. Run `docker-compose up -d`. This will create and start the necessary containers. + +9. The default `docker-compose.yml` exports the webserver on your local port 8000\. If you did not change this, you should now be able to visit @@ -195,7 +196,7 @@ steps described in [Docker setup](#docker_hub) automatically. git clone https://github.com/paperless-ngx/paperless-ngx ``` - The master branch always reflects the latest stable version. + The main branch always reflects the latest stable version. 2. Copy one of the `docker/compose/docker-compose.*.yml` to `docker-compose.yml` in the root folder, depending on which database @@ -371,6 +372,10 @@ supported. documents are written in. - Set `PAPERLESS_TIME_ZONE` to your local time zone. + !!! warning + + Ensure your Redis instance [is secured](https://redis.io/docs/getting-started/#securing-redis). + 7. Create the following directories if they are missing: - `/opt/paperless/media` @@ -591,7 +596,7 @@ Migration to paperless-ngx is then performed in a few simple steps: 3. Download the latest release of paperless-ngx. You can either go with the docker-compose files from - [here](https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose) + [here](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) or clone the repository to build the image yourself (see [above](#docker_build)). You can either replace your current paperless folder or put paperless-ngx in @@ -824,9 +829,10 @@ performance immensely: other tasks). - Keep `PAPERLESS_OCR_MODE` at its default value `skip` and consider OCR'ing your documents before feeding them into paperless. Some - scanners are able to do this! You might want to even specify - `skip_noarchive` to skip archive file generation for already ocr'ed - documents entirely. + scanners are able to do this! +- Set `PAPERLESS_OCR_SKIP_ARCHIVE_FILE` to `with_text` to skip archive + file generation for already ocr'ed documents, or `always` to skip it + for all documents. - If you want to perform OCR on the device, consider using `PAPERLESS_OCR_CLEAN=none`. This will speed up OCR times and use less memory at the expense of slightly worse OCR results. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 1ff020d4f..63e37a10f 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -332,3 +332,16 @@ change the port gunicorn listens on. To fix this, set `PAPERLESS_PORT` again to your desired port, or the default of 8000. + +## Database Warns about unique constraint "documents_tag_name_uniq + +You may see database log lines like: + +``` +ERROR: duplicate key value violates unique constraint "documents_tag_name_uniq" +DETAIL: Key (name)=(NameF) already exists. +STATEMENT: INSERT INTO "documents_tag" ("owner_id", "name", "match", "matching_algorithm", "is_insensitive", "color", "is_inbox_tag") VALUES (NULL, 'NameF', '', 1, true, '#a6cee3', false) RETURNING "documents_tag"."id" +``` + +This can happen during heavy consumption when using polling. Paperless will handle it correctly and the file +will still be consumed diff --git a/docs/usage.md b/docs/usage.md index 6a0277d45..14adef26b 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -60,8 +60,8 @@ following operations on your documents: This process can be configured to fit your needs. If you don't want paperless to create archived versions for digital documents, you can - configure that by configuring `PAPERLESS_OCR_MODE=skip_noarchive`. - Please read the + configure that by configuring + `PAPERLESS_OCR_SKIP_ARCHIVE_FILE=with_text`. Please read the [relevant section in the documentation](/configuration#ocr). !!! note @@ -202,6 +202,39 @@ configured via `PAPERLESS_EMAIL_TASK_CRON` (see [software tweaks](/configuration You can also submit a document using the REST API, see [POSTing documents](/api#file-uploads) for details. +## Permissions + +As of version 1.13.0 Paperless-ngx added core support for user / group permissions. Permissions is +based around an object 'owner' and 'view' and 'edit' permissions can be granted to other users +or groups. + +Permissions uses the built-in user model of the backend framework, Django. + +!!! note + + After migration to version 1.13.0 all existing documents, tags etc. will have no explicit owner + set which means they will be visible / editable by all users. Once an object has an owner set, + only the owner can explicitly grant / revoke permissions. + +!!! note + + When first migrating to permissions it is recommended to user a 'superuser' account (which + would usually have been setup during installation) to ensure you have full permissions. + + Note that superusers have access to all objects. + +Permissions can be set using the new "Permissions" tab when editing documents, or bulk-applied +in the UI by selecting documents and choosing the "Permissions" button. Owner can also optionally +be set for documents uploaded via the API. Documents consumed via the consumption dir currently +do not have an owner set. + +### Users and Groups + +Paperless-ngx versions after 1.13.0 allow creating and editing users and groups via the 'frontend' UI. +These can be found under Settings > Users & Groups, assuming the user has access. If a user is designated +as a member of a group those permissions will be inherited and this is reflected in the UI. Explicit +permissions can be granted to limit access to certain parts of the UI (and corresponding API endpoints). + ## Best practices {#basic-searching} Paperless offers a couple tools that help you organize your document diff --git a/gunicorn.conf.py b/gunicorn.conf.py index a3ada7a64..e3951ac5f 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -30,7 +30,9 @@ def worker_int(worker): worker.log.info("worker received INT or QUIT signal") ## get traceback info - import threading, sys, traceback + import sys + import threading + import traceback id2name = {th.ident: th.name for th in threading.enumerate()} code = [] diff --git a/paperless.conf.example b/paperless.conf.example index 524d9264e..6bd70697e 100644 --- a/paperless.conf.example +++ b/paperless.conf.example @@ -42,6 +42,7 @@ #PAPERLESS_OCR_LANGUAGE=eng #PAPERLESS_OCR_MODE=skip +#PAPERLESS_OCR_SKIP_ARCHIVE_FILE=never #PAPERLESS_OCR_OUTPUT_TYPE=pdfa #PAPERLESS_OCR_PAGES=1 #PAPERLESS_OCR_IMAGE_DPI=300 diff --git a/src-ui/angular.json b/src-ui/angular.json index 2dcf486be..836b2a290 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -18,6 +18,7 @@ "locales": { "ar-AR": "src/locale/messages.ar_AR.xlf", "be-BY": "src/locale/messages.be_BY.xlf", + "ca-ES": "src/locale/messages.ca_ES.xlf", "cs-CZ": "src/locale/messages.cs_CZ.xlf", "da-DK": "src/locale/messages.da_DK.xlf", "de-DE": "src/locale/messages.de_DE.xlf", diff --git a/src-ui/cypress.config.ts b/src-ui/cypress.config.ts index 1be27d63e..303cbea51 100644 --- a/src-ui/cypress.config.ts +++ b/src-ui/cypress.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from 'cypress' export default defineConfig({ videosFolder: 'cypress/videos', + video: false, screenshotsFolder: 'cypress/screenshots', fixturesFolder: 'cypress/fixtures', e2e: { diff --git a/src-ui/cypress/e2e/auth/auth.cy.ts b/src-ui/cypress/e2e/auth/auth.cy.ts new file mode 100644 index 000000000..717113c76 --- /dev/null +++ b/src-ui/cypress/e2e/auth/auth.cy.ts @@ -0,0 +1,68 @@ +describe('settings', () => { + beforeEach(() => { + // also uses global fixtures from cypress/support/e2e.ts + + // mock restricted permissions + cy.intercept('http://localhost:8000/api/ui_settings/', { + fixture: 'ui_settings/settings_restricted.json', + }) + }) + + it('should not allow user to edit settings', () => { + cy.visit('/dashboard') + cy.contains('Settings').should('not.exist') + cy.visit('/settings').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view documents', () => { + cy.visit('/dashboard') + cy.contains('Documents').should('not.exist') + cy.visit('/documents').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + cy.visit('/documents/1').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view correspondents', () => { + cy.visit('/dashboard') + cy.contains('Correspondents').should('not.exist') + cy.visit('/correspondents').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view tags', () => { + cy.visit('/dashboard') + cy.contains('Tags').should('not.exist') + cy.visit('/tags').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view document types', () => { + cy.visit('/dashboard') + cy.contains('Document Types').should('not.exist') + cy.visit('/documenttypes').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view storage paths', () => { + cy.visit('/dashboard') + cy.contains('Storage Paths').should('not.exist') + cy.visit('/storagepaths').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view logs', () => { + cy.visit('/dashboard') + cy.contains('Logs').should('not.exist') + cy.visit('/logs').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) + + it('should not allow user to view tasks', () => { + cy.visit('/dashboard') + cy.contains('Tasks').should('not.exist') + cy.visit('/tasks').wait(2000) + cy.contains("You don't have permissions to do that").should('exist') + }) +}) diff --git a/src-ui/cypress/e2e/documents/document-detail.cy.ts b/src-ui/cypress/e2e/documents/document-detail.cy.ts index 0cacbd81f..dd5f8fac8 100644 --- a/src-ui/cypress/e2e/documents/document-detail.cy.ts +++ b/src-ui/cypress/e2e/documents/document-detail.cy.ts @@ -17,28 +17,28 @@ describe('document-detail', () => { req.reply({ result: 'OK' }) }).as('saveDoc') - cy.fixture('documents/1/comments.json').then((commentsJson) => { + cy.fixture('documents/1/notes.json').then((notesJson) => { cy.intercept( 'GET', - 'http://localhost:8000/api/documents/1/comments/', + 'http://localhost:8000/api/documents/1/notes/', (req) => { - req.reply(commentsJson.filter((c) => c.id != 10)) // 3 + req.reply(notesJson.filter((c) => c.id != 10)) // 3 } ) cy.intercept( 'DELETE', - 'http://localhost:8000/api/documents/1/comments/?id=9', + 'http://localhost:8000/api/documents/1/notes/?id=9', (req) => { - req.reply(commentsJson.filter((c) => c.id != 9 && c.id != 10)) // 2 + req.reply(notesJson.filter((c) => c.id != 9 && c.id != 10)) // 2 } ) cy.intercept( 'POST', - 'http://localhost:8000/api/documents/1/comments/', + 'http://localhost:8000/api/documents/1/notes/', (req) => { - req.reply(commentsJson) // 4 + req.reply(notesJson) // 4 } ) }) @@ -75,33 +75,40 @@ describe('document-detail', () => { cy.get('pdf-viewer').should('be.visible') }) - it('should show a list of comments', () => { - cy.wait(1000) - .get('a') - .contains('Comments') - .click({ force: true }) - .wait(1000) - cy.get('app-document-comments').find('.card').its('length').should('eq', 3) + it('should show a list of notes', () => { + cy.wait(1000).get('a').contains('Notes').click({ force: true }).wait(1000) + cy.get('app-document-notes').find('.card').its('length').should('eq', 3) }) - it('should support comment deletion', () => { - cy.wait(1000).get('a').contains('Comments').click().wait(1000) - cy.get('app-document-comments') + it('should support note deletion', () => { + cy.wait(1000).get('a').contains('Notes').click().wait(1000) + cy.get('app-document-notes') .find('.card') .first() .find('button') .click({ force: true }) .wait(500) - cy.get('app-document-comments').find('.card').its('length').should('eq', 2) + cy.get('app-document-notes').find('.card').its('length').should('eq', 2) }) - it('should support comment insertion', () => { - cy.wait(1000).get('a').contains('Comments').click().wait(1000) - cy.get('app-document-comments') + it('should support note insertion', () => { + cy.wait(1000).get('a').contains('Notes').click().wait(1000) + cy.get('app-document-notes') .find('form textarea') - .type('Testing new comment') + .type('Testing new note') .wait(500) - cy.get('app-document-comments').find('form button').click().wait(1500) - cy.get('app-document-comments').find('.card').its('length').should('eq', 4) + cy.get('app-document-notes').find('form button').click().wait(1500) + cy.get('app-document-notes').find('.card').its('length').should('eq', 4) + }) + + it('should support navigation to notes tab by url', () => { + cy.visit('/documents/1/notes') + cy.get('app-document-notes').should('exist') + }) + + it('should dynamically update note counts', () => { + cy.visit('/documents/1/notes') + cy.get('app-document-notes').within(() => cy.contains('Delete').click()) + cy.get('ul.nav').find('li').contains('Notes').find('.badge').contains('2') }) }) diff --git a/src-ui/cypress/e2e/documents/documents-list.cy.ts b/src-ui/cypress/e2e/documents/documents-list.cy.ts index 84b396625..5c17ef5d9 100644 --- a/src-ui/cypress/e2e/documents/documents-list.cy.ts +++ b/src-ui/cypress/e2e/documents/documents-list.cy.ts @@ -48,6 +48,26 @@ describe('documents-list', () => { (d.tags as Array).includes(tag_id) ) response.count = response.results.length + } else if (req.query.hasOwnProperty('correspondent__id__in')) { + // filtering e.g. http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&correspondent__id__in=9,14 + const correspondent_ids = req.query['correspondent__id__in'] + .toString() + .split(',') + .map((c) => +c) + response.results = (documentsJson.results as Array).filter((d) => + correspondent_ids.includes(d.correspondent) + ) + response.count = response.results.length + } else if (req.query.hasOwnProperty('correspondent__id__none')) { + // filtering e.g. http://localhost:8000/api/documents/?page=1&page_size=50&ordering=-created&correspondent__id__none=9,14 + const correspondent_ids = req.query['correspondent__id__none'] + .toString() + .split(',') + .map((c) => +c) + response.results = (documentsJson.results as Array).filter( + (d) => !correspondent_ids.includes(d.correspondent) + ) + response.count = response.results.length } req.reply(response) @@ -112,6 +132,27 @@ describe('documents-list', () => { cy.contains('One document') }) + it('should filter including multiple correspondents', () => { + cy.get('app-filter-editor app-filterable-dropdown[title="Correspondent"]') + .click() + .within(() => { + cy.contains('button', 'ABC Test Correspondent').click() + cy.contains('button', 'Corresp 11').click() + }) + cy.contains('3 documents') + }) + + it('should filter excluding multiple correspondents', () => { + cy.get('app-filter-editor app-filterable-dropdown[title="Correspondent"]') + .click() + .within(() => { + cy.contains('button', 'ABC Test Correspondent').click() + cy.contains('button', 'Corresp 11').click() + cy.contains('label', 'Exclude').click() + }) + cy.contains('One document') + }) + it('should apply tags', () => { cy.get('app-document-card-small:first-of-type').click() cy.get('app-bulk-editor app-filterable-dropdown[title="Tags"]').within( diff --git a/src-ui/cypress/e2e/documents/query-params.cy.ts b/src-ui/cypress/e2e/documents/query-params.cy.ts index a31e43c8a..eb160e9de 100644 --- a/src-ui/cypress/e2e/documents/query-params.cy.ts +++ b/src-ui/cypress/e2e/documents/query-params.cy.ts @@ -232,6 +232,11 @@ describe('documents query params', () => { it('should show a list of documents filtered by document type', () => { cy.visit('/documents?sort=created&reverse=true&document_type__id=1') + cy.contains('2 documents') + }) + + it('should show a list of documents filtered by multiple correspondents', () => { + cy.visit('/documents?sort=created&reverse=true&document_type__id__in=1,2') cy.contains('3 documents') }) @@ -245,9 +250,14 @@ describe('documents query params', () => { cy.contains('2 documents') }) + it('should show a list of documents filtered by multiple correspondents', () => { + cy.visit('/documents?sort=created&reverse=true&correspondent__id__in=9,14') + cy.contains('3 documents') + }) + it('should show a list of documents filtered by no correspondent', () => { cy.visit('/documents?sort=created&reverse=true&correspondent__isnull=1') - cy.contains('2 documents') + cy.contains('One document') }) it('should show a list of documents filtered by storage path', () => { diff --git a/src-ui/cypress/e2e/settings/settings.cy.ts b/src-ui/cypress/e2e/settings/settings.cy.ts index 95443bbe2..51a2ae380 100644 --- a/src-ui/cypress/e2e/settings/settings.cy.ts +++ b/src-ui/cypress/e2e/settings/settings.cy.ts @@ -56,8 +56,6 @@ describe('settings', () => { 'GET', 'http://localhost:8000/api/mail_accounts/*', (req) => { - console.log(req, this.newMailAccounts) - let response = { ...mailAccountsJson } if (this.newMailAccounts.length) { response.results = response.results.concat(this.newMailAccounts) @@ -115,7 +113,7 @@ describe('settings', () => { cy.contains('a', 'Dashboard').click() cy.contains('You have unsaved changes') cy.contains('button', 'Cancel').click() - cy.contains('button', 'Save').click().wait('@savedViews').wait(2000) + cy.contains('button', 'Save').click().wait(2000) cy.contains('a', 'Dashboard').click() cy.contains('You have unsaved changes').should('not.exist') }) @@ -142,7 +140,7 @@ describe('settings', () => { cy.get('app-saved-view-widget').contains('Inbox').should('not.exist') }) - it('should show a list of mail accounts & rules & support creation', () => { + it('should show a list of mail accounts & support creation', () => { cy.contains('a', 'Mail').click() cy.get('app-settings .tab-content ul li').its('length').should('eq', 5) // 2 headers, 2 accounts, 1 rule cy.contains('button', 'Add Account').click() @@ -162,6 +160,13 @@ describe('settings', () => { .wait('@getAccounts') cy.contains('Saved account') + cy.get('app-settings .tab-content ul li').its('length').should('eq', 6) + }) + + it('should show a list of mail rules & support creation', () => { + cy.contains('a', 'Mail').click() + cy.get('app-settings .tab-content ul li').its('length').should('eq', 5) // 2 headers, 2 accounts, 1 rule + cy.wait(1000) cy.contains('button', 'Add Rule').click() cy.contains('Create new mail rule') @@ -177,6 +182,6 @@ describe('settings', () => { .wait('@getRules') cy.contains('Saved rule').wait(1000) - cy.get('app-settings .tab-content ul li').its('length').should('eq', 7) + cy.get('app-settings .tab-content ul li').its('length').should('eq', 6) }) }) diff --git a/src-ui/cypress/fixtures/correspondents/correspondents.json b/src-ui/cypress/fixtures/correspondents/correspondents.json index fe9fa1d5f..d43ff6645 100644 --- a/src-ui/cypress/fixtures/correspondents/correspondents.json +++ b/src-ui/cypress/fixtures/correspondents/correspondents.json @@ -1 +1,257 @@ -{"count":27,"next":"http://localhost:8000/api/correspondents/?page=2","previous":null,"results":[{"id":9,"slug":"abc-test-correspondent","name":"ABC Test Correspondent","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":13,"slug":"corresp-10","name":"Corresp 10","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":14,"slug":"corresp-11","name":"Corresp 11","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":15,"slug":"corresp-12","name":"Corresp 12","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":16,"slug":"corresp-13","name":"Corresp 13","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":18,"slug":"corresp-15","name":"Corresp 15","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":19,"slug":"corresp-16","name":"Corresp 16","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":20,"slug":"corresp-17","name":"Corresp 17","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":21,"slug":"corresp-18","name":"Corresp 18","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":22,"slug":"corresp-19","name":"Corresp 19","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":23,"slug":"corresp-20","name":"Corresp 20","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":24,"slug":"corresp-21","name":"Corresp 21","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":25,"slug":"corresp-22","name":"Corresp 22","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":26,"slug":"corresp-23","name":"Corresp 23","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":5,"slug":"corresp-3","name":"Corresp 3","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":6,"slug":"corresp-4","name":"Corresp 4","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":7,"slug":"corresp-5","name":"Corresp 5","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":8,"slug":"corresp-6","name":"Corresp 6","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":10,"slug":"corresp-7","name":"Corresp 7","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":11,"slug":"corresp-8","name":"Corresp 8","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":12,"slug":"corresp-9","name":"Corresp 9","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":17,"slug":"correspondent-14","name":"Correspondent 14","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0,"last_correspondence":null},{"id":2,"slug":"correspondent-2","name":"Correspondent 2","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":7,"last_correspondence":"2021-01-20T23:37:58.204614Z"},{"id":27,"slug":"michael-shamoon","name":"Michael Shamoon","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":1,"last_correspondence":"2022-03-16T03:48:50.089624Z"},{"id":4,"slug":"newest-correspondent","name":"Newest Correspondent","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":1,"last_correspondence":"2021-02-07T08:00:00Z"}]} +{ + "count": 27, + "next": "http://localhost:8000/api/correspondents/?page=2", + "previous": null, + "results": [ + { + "id": 9, + "slug": "abc-test-correspondent", + "name": "ABC Test Correspondent", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 13, + "slug": "corresp-10", + "name": "Corresp 10", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 14, + "slug": "corresp-11", + "name": "Corresp 11", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 15, + "slug": "corresp-12", + "name": "Corresp 12", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 16, + "slug": "corresp-13", + "name": "Corresp 13", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 18, + "slug": "corresp-15", + "name": "Corresp 15", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 19, + "slug": "corresp-16", + "name": "Corresp 16", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 20, + "slug": "corresp-17", + "name": "Corresp 17", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 21, + "slug": "corresp-18", + "name": "Corresp 18", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 22, + "slug": "corresp-19", + "name": "Corresp 19", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 23, + "slug": "corresp-20", + "name": "Corresp 20", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 24, + "slug": "corresp-21", + "name": "Corresp 21", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 25, + "slug": "corresp-22", + "name": "Corresp 22", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 26, + "slug": "corresp-23", + "name": "Corresp 23", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 5, + "slug": "corresp-3", + "name": "Corresp 3", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 6, + "slug": "corresp-4", + "name": "Corresp 4", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 7, + "slug": "corresp-5", + "name": "Corresp 5", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 8, + "slug": "corresp-6", + "name": "Corresp 6", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 10, + "slug": "corresp-7", + "name": "Corresp 7", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 11, + "slug": "corresp-8", + "name": "Corresp 8", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 12, + "slug": "corresp-9", + "name": "Corresp 9", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 17, + "slug": "correspondent-14", + "name": "Correspondent 14", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 0, + "last_correspondence": null + }, + { + "id": 2, + "slug": "correspondent-2", + "name": "Correspondent 2", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 7, + "last_correspondence": "2021-01-20T23:37:58.204614Z" + }, + { + "id": 27, + "slug": "correspondent-slug", + "name": "Correspondent Slug", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 1, + "last_correspondence": "2022-03-16T03:48:50.089624Z" + }, + { + "id": 4, + "slug": "newest-correspondent", + "name": "Newest Correspondent", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 1, + "last_correspondence": "2021-02-07T08:00:00Z" + } + ] +} diff --git a/src-ui/cypress/fixtures/document_types/doctypes.json b/src-ui/cypress/fixtures/document_types/doctypes.json index 36c75f2ff..eb2d74a0e 100644 --- a/src-ui/cypress/fixtures/document_types/doctypes.json +++ b/src-ui/cypress/fixtures/document_types/doctypes.json @@ -1 +1,25 @@ -{"count":1,"next":null,"previous":null,"results":[{"id":1,"slug":"test","name":"Test Doc Type","match":"","matching_algorithm":1,"is_insensitive":true,"document_count":0}]} +{ + "count": 2, + "next": null, + "previous": null, + "results": [ + { + "id": 1, + "slug": "test", + "name": "Test Doc Type", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 1 + }, + { + "id": 2, + "slug": "test2", + "name": "Test Doc Type 2", + "match": "", + "matching_algorithm": 1, + "is_insensitive": true, + "document_count": 1 + } + ] +} diff --git a/src-ui/cypress/fixtures/documents/1/comments.json b/src-ui/cypress/fixtures/documents/1/comments.json deleted file mode 100644 index 73e932187..000000000 --- a/src-ui/cypress/fixtures/documents/1/comments.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "id": 10, - "comment": "Testing new comment", - "created": "2022-08-08T04:24:55.176008Z", - "user": { - "id": 1, - "username": "user2", - "firstname": "", - "lastname": "" - } - }, - { - "id": 9, - "comment": "Testing one more time", - "created": "2022-02-18T04:24:55.176008Z", - "user": { - "id": 2, - "username": "user1", - "firstname": "", - "lastname": "" - } - }, - { - "id": 8, - "comment": "Another comment", - "created": "2021-11-08T04:24:47.925042Z", - "user": { - "id": 2, - "username": "user33", - "firstname": "", - "lastname": "" - } - }, - { - "id": 7, - "comment": "Cupcake ipsum dolor sit amet cheesecake candy cookie tiramisu. Donut chocolate chupa chups macaroon brownie halvah pie cheesecake gummies. Sweet chocolate bar candy donut gummi bears bear claw liquorice bonbon shortbread.\n\nDonut chocolate bar candy wafer wafer tiramisu. Gummies chocolate cake muffin toffee carrot cake macaroon. Toffee toffee jelly beans danish lollipop cake.", - "created": "2021-02-08T02:37:49.724132Z", - "user": { - "id": 3, - "username": "admin", - "firstname": "", - "lastname": "" - } - } -] diff --git a/src-ui/cypress/fixtures/documents/1/notes.json b/src-ui/cypress/fixtures/documents/1/notes.json new file mode 100644 index 000000000..97c8e5ace --- /dev/null +++ b/src-ui/cypress/fixtures/documents/1/notes.json @@ -0,0 +1,26 @@ +[ + { + "id": 10, + "note": "Testing new note", + "created": "2022-08-08T04:24:55.176008Z", + "user": 3 + }, + { + "id": 9, + "note": "Testing one more time", + "created": "2022-02-18T04:24:55.176008Z", + "user": 15 + }, + { + "id": 8, + "note": "Another note", + "created": "2021-11-08T04:24:47.925042Z", + "user": 3 + }, + { + "id": 7, + "note": "Cupcake ipsum dolor sit amet cheesecake candy cookie tiramisu. Donut chocolate chupa chups macaroon brownie halvah pie cheesecake gummies. Sweet chocolate bar candy donut gummi bears bear claw liquorice bonbon shortbread.\n\nDonut chocolate bar candy wafer wafer tiramisu. Gummies chocolate cake muffin toffee carrot cake macaroon. Toffee toffee jelly beans danish lollipop cake.", + "created": "2021-02-08T02:37:49.724132Z", + "user": 3 + } +] diff --git a/src-ui/cypress/fixtures/documents/documents.json b/src-ui/cypress/fixtures/documents/documents.json index bcf122ecc..e3938dba1 100644 --- a/src-ui/cypress/fixtures/documents/documents.json +++ b/src-ui/cypress/fixtures/documents/documents.json @@ -14,11 +14,43 @@ 4 ], "created": "2022-03-22T07:24:18Z", + "created_date": "2022-03-22", "modified": "2022-03-22T07:24:23.264859Z", "added": "2022-03-22T07:24:22.922631Z", "archive_serial_number": null, "original_file_name": "2022-03-22 no latin title.pdf", - "archived_file_name": "2022-03-22 no latin title.pdf" + "archived_file_name": "2022-03-22 no latin title.pdf", + "owner": null, + "permissions": { + "view": { + "users": [], + "groups": [] + }, + "change": { + "users": [], + "groups": [] + } + }, + "notes": [ + { + "id": 9, + "note": "Testing one more time", + "created": "2022-02-18T04:24:55.176008Z", + "user": 15 + }, + { + "id": 8, + "note": "Another note", + "created": "2021-11-08T04:24:47.925042Z", + "user": 3 + }, + { + "id": 7, + "note": "Cupcake ipsum dolor sit amet cheesecake candy cookie tiramisu. Donut chocolate chupa chups macaroon brownie halvah pie cheesecake gummies. Sweet chocolate bar candy donut gummi bears bear claw liquorice bonbon shortbread.\n\nDonut chocolate bar candy wafer wafer tiramisu. Gummies chocolate cake muffin toffee carrot cake macaroon. Toffee toffee jelly beans danish lollipop cake.", + "created": "2021-02-08T02:37:49.724132Z", + "user": 3 + } + ] }, { "id": 2, @@ -29,15 +61,28 @@ "content": "Test document PDF", "tags": [], "created": "2022-03-23T07:24:18Z", + "created_date": "2022-03-23", "modified": "2022-03-23T07:24:23.264859Z", "added": "2022-03-23T07:24:22.922631Z", "archive_serial_number": 12345, "original_file_name": "2022-03-23 lorem ipsum dolor sit amet.pdf", - "archived_file_name": "2022-03-23 llorem ipsum dolor sit amet.pdf" + "archived_file_name": "2022-03-23 llorem ipsum dolor sit amet.pdf", + "owner": null, + "permissions": { + "view": { + "users": [], + "groups": [] + }, + "change": { + "users": [], + "groups": [] + } + }, + "notes": [] }, { "id": 3, - "correspondent": null, + "correspondent": 14, "document_type": 1, "storage_path": null, "title": "dolor", @@ -46,16 +91,29 @@ 2 ], "created": "2022-03-24T07:24:18Z", + "created_date": "2022-03-24", "modified": "2022-03-24T07:24:23.264859Z", "added": "2022-03-24T07:24:22.922631Z", "archive_serial_number": null, "original_file_name": "2022-03-24 dolor.pdf", - "archived_file_name": "2022-03-24 dolor.pdf" + "archived_file_name": "2022-03-24 dolor.pdf", + "owner": null, + "permissions": { + "view": { + "users": [], + "groups": [] + }, + "change": { + "users": [], + "groups": [] + } + }, + "notes": [] }, { "id": 4, "correspondent": 9, - "document_type": 1, + "document_type": 2, "storage_path": null, "title": "sit amet", "content": "Test document PDF", @@ -63,11 +121,24 @@ 4, 5 ], "created": "2022-06-01T07:24:18Z", + "created_date": "2022-06-01", "modified": "2022-06-01T07:24:23.264859Z", "added": "2022-06-01T07:24:22.922631Z", "archive_serial_number": 12347, "original_file_name": "2022-06-01 sit amet.pdf", - "archived_file_name": "2022-06-01 sit amet.pdf" + "archived_file_name": "2022-06-01 sit amet.pdf", + "owner": null, + "permissions": { + "view": { + "users": [], + "groups": [] + }, + "change": { + "users": [], + "groups": [] + } + }, + "notes": [] } ] } diff --git a/src-ui/cypress/fixtures/groups/groups.json b/src-ui/cypress/fixtures/groups/groups.json new file mode 100644 index 000000000..f6051be90 --- /dev/null +++ b/src-ui/cypress/fixtures/groups/groups.json @@ -0,0 +1,119 @@ +{ + "count": 2, + "next": null, + "previous": null, + "results": [ + { + "id": 6, + "name": "Another Group", + "permissions": [ + "add_user", + "change_user", + "delete_user", + "view_user", + "add_note", + "change_note", + "delete_note", + "view_note" + ] + }, + { + "id": 1, + "name": "First Group", + "permissions": [ + "add_group", + "change_group", + "delete_group", + "view_group", + "add_permission", + "change_permission", + "delete_permission", + "view_permission", + "add_token", + "change_token", + "delete_token", + "view_token", + "add_tokenproxy", + "change_tokenproxy", + "delete_tokenproxy", + "view_tokenproxy", + "add_contenttype", + "change_contenttype", + "delete_contenttype", + "view_contenttype", + "add_chordcounter", + "change_chordcounter", + "delete_chordcounter", + "view_chordcounter", + "add_groupresult", + "change_groupresult", + "delete_groupresult", + "view_groupresult", + "add_taskresult", + "change_taskresult", + "delete_taskresult", + "view_taskresult", + "add_failure", + "change_failure", + "delete_failure", + "view_failure", + "add_ormq", + "change_ormq", + "delete_ormq", + "view_ormq", + "add_schedule", + "change_schedule", + "delete_schedule", + "view_schedule", + "add_success", + "change_success", + "delete_success", + "view_success", + "add_task", + "change_task", + "delete_task", + "view_task", + "add_note", + "change_note", + "delete_note", + "view_note", + "add_correspondent", + "change_correspondent", + "delete_correspondent", + "view_correspondent", + "add_document", + "change_document", + "delete_document", + "view_document", + "add_documenttype", + "change_documenttype", + "delete_documenttype", + "view_documenttype", + "add_frontendsettings", + "change_frontendsettings", + "delete_frontendsettings", + "view_frontendsettings", + "add_log", + "change_log", + "delete_log", + "view_log", + "add_savedview", + "change_savedview", + "delete_savedview", + "view_savedview", + "add_savedviewfilterrule", + "change_savedviewfilterrule", + "delete_savedviewfilterrule", + "view_savedviewfilterrule", + "add_taskattributes", + "change_taskattributes", + "delete_taskattributes", + "view_taskattributes", + "add_session", + "change_session", + "delete_session", + "view_session" + ] + } + ] +} diff --git a/src-ui/cypress/fixtures/mail_rules/mail_rules.json b/src-ui/cypress/fixtures/mail_rules/mail_rules.json index 7767940e7..5341b9cfa 100644 --- a/src-ui/cypress/fixtures/mail_rules/mail_rules.json +++ b/src-ui/cypress/fixtures/mail_rules/mail_rules.json @@ -9,6 +9,7 @@ "account": 2, "folder": "INBOX", "filter_from": null, + "filter_to": null, "filter_subject": "[paperless]", "filter_body": null, "filter_attachment_filename": null, diff --git a/src-ui/cypress/fixtures/ui_settings/settings.json b/src-ui/cypress/fixtures/ui_settings/settings.json index 0e844b5e1..b885eeccb 100644 --- a/src-ui/cypress/fixtures/ui_settings/settings.json +++ b/src-ui/cypress/fixtures/ui_settings/settings.json @@ -1,7 +1,10 @@ { - "user_id": 1, - "username": "admin", - "display_name": "Admin", + "user": { + "id": 1, + "username": "admin", + "is_superuser": true, + "groups": [] + }, "settings": { "language": "", "bulk_edit": { @@ -30,5 +33,131 @@ "consumer_failed": true, "consumer_suppress_on_dashboard": true } - } + }, + "permissions": [ + "add_logentry", + "change_logentry", + "delete_logentry", + "view_logentry", + "add_group", + "change_group", + "delete_group", + "view_group", + "add_permission", + "change_permission", + "delete_permission", + "view_permission", + "add_user", + "change_user", + "delete_user", + "view_user", + "add_token", + "change_token", + "delete_token", + "view_token", + "add_tokenproxy", + "change_tokenproxy", + "delete_tokenproxy", + "view_tokenproxy", + "add_contenttype", + "change_contenttype", + "delete_contenttype", + "view_contenttype", + "add_chordcounter", + "change_chordcounter", + "delete_chordcounter", + "view_chordcounter", + "add_groupresult", + "change_groupresult", + "delete_groupresult", + "view_groupresult", + "add_taskresult", + "change_taskresult", + "delete_taskresult", + "view_taskresult", + "add_failure", + "change_failure", + "delete_failure", + "view_failure", + "add_ormq", + "change_ormq", + "delete_ormq", + "view_ormq", + "add_schedule", + "change_schedule", + "delete_schedule", + "view_schedule", + "add_success", + "change_success", + "delete_success", + "view_success", + "add_task", + "change_task", + "delete_task", + "view_task", + "add_note", + "change_note", + "delete_note", + "view_note", + "add_correspondent", + "change_correspondent", + "delete_correspondent", + "view_correspondent", + "add_document", + "change_document", + "delete_document", + "view_document", + "add_documenttype", + "change_documenttype", + "delete_documenttype", + "view_documenttype", + "add_frontendsettings", + "change_frontendsettings", + "delete_frontendsettings", + "view_frontendsettings", + "add_log", + "change_log", + "delete_log", + "view_log", + "add_paperlesstask", + "change_paperlesstask", + "delete_paperlesstask", + "view_paperlesstask", + "add_savedview", + "change_savedview", + "delete_savedview", + "view_savedview", + "add_savedviewfilterrule", + "change_savedviewfilterrule", + "delete_savedviewfilterrule", + "view_savedviewfilterrule", + "add_storagepath", + "change_storagepath", + "delete_storagepath", + "view_storagepath", + "add_tag", + "change_tag", + "delete_tag", + "view_tag", + "add_taskattributes", + "change_taskattributes", + "delete_taskattributes", + "view_taskattributes", + "add_uisettings", + "change_uisettings", + "delete_uisettings", + "view_uisettings", + "add_mailaccount", + "change_mailaccount", + "delete_mailaccount", + "view_mailaccount", + "add_mailrule", + "change_mailrule", + "delete_mailrule", + "view_mailrule", + "add_session", + "change_session", + "delete_session", + "view_session" + ] } diff --git a/src-ui/cypress/fixtures/ui_settings/settings_restricted.json b/src-ui/cypress/fixtures/ui_settings/settings_restricted.json new file mode 100644 index 000000000..1f7f61fdc --- /dev/null +++ b/src-ui/cypress/fixtures/ui_settings/settings_restricted.json @@ -0,0 +1,88 @@ +{ + "user": { + "id": 1, + "username": "admin", + "is_superuser": false, + "groups": [] + }, + "settings": { + "language": "", + "bulk_edit": { + "confirmation_dialogs": true, + "apply_on_close": false + }, + "documentListSize": 50, + "dark_mode": { + "use_system": true, + "enabled": "false", + "thumb_inverted": "true" + }, + "theme": { + "color": "#b198e5" + }, + "document_details": { + "native_pdf_viewer": false + }, + "date_display": { + "date_locale": "", + "date_format": "mediumDate" + }, + "notifications": { + "consumer_new_documents": true, + "consumer_success": true, + "consumer_failed": true, + "consumer_suppress_on_dashboard": true + } + }, + "permissions": [ + "add_token", + "change_token", + "delete_token", + "view_token", + "add_tokenproxy", + "change_tokenproxy", + "delete_tokenproxy", + "view_tokenproxy", + "add_contenttype", + "change_contenttype", + "delete_contenttype", + "view_contenttype", + "add_chordcounter", + "change_chordcounter", + "delete_chordcounter", + "view_chordcounter", + "add_groupresult", + "change_groupresult", + "delete_groupresult", + "view_groupresult", + "add_failure", + "change_failure", + "delete_failure", + "view_failure", + "add_ormq", + "change_ormq", + "delete_ormq", + "view_ormq", + "add_schedule", + "change_schedule", + "delete_schedule", + "view_schedule", + "add_success", + "change_success", + "delete_success", + "view_success", + "add_task", + "change_task", + "delete_task", + "view_task", + "add_note", + "add_frontendsettings", + "change_frontendsettings", + "delete_frontendsettings", + "view_frontendsettings", + "add_session", + "change_session", + "delete_session", + "view_session" + ] +} diff --git a/src-ui/cypress/fixtures/users/users.json b/src-ui/cypress/fixtures/users/users.json new file mode 100644 index 000000000..a69a86b92 --- /dev/null +++ b/src-ui/cypress/fixtures/users/users.json @@ -0,0 +1,459 @@ +{ + "count": 4, + "next": null, + "previous": null, + "results": [ + { + "id": 3, + "username": "admin", + "password": "**********", + "first_name": "", + "last_name": "", + "date_joined": "2022-02-14T23:11:09.103293Z", + "is_staff": true, + "is_active": true, + "is_superuser": true, + "groups": [], + "user_permissions": [], + "inherited_permissions": [ + "auth.delete_permission", + "paperless_mail.change_mailrule", + "django_celery_results.add_taskresult", + "documents.view_taskattributes", + "documents.view_paperlesstask", + "django_q.add_success", + "documents.view_uisettings", + "auth.change_user", + "admin.delete_logentry", + "django_celery_results.change_taskresult", + "django_q.change_schedule", + "django_celery_results.delete_taskresult", + "paperless_mail.add_mailaccount", + "auth.change_group", + "documents.add_note", + "paperless_mail.delete_mailaccount", + "authtoken.delete_tokenproxy", + "guardian.delete_groupobjectpermission", + "contenttypes.delete_contenttype", + "documents.change_correspondent", + "authtoken.delete_token", + "documents.delete_documenttype", + "django_q.change_ormq", + "documents.change_savedviewfilterrule", + "auth.delete_group", + "documents.add_documenttype", + "django_q.change_success", + "documents.delete_tag", + "documents.change_note", + "django_q.delete_task", + "documents.add_savedviewfilterrule", + "django_q.view_task", + "paperless_mail.add_mailrule", + "paperless_mail.view_mailaccount", + "documents.add_frontendsettings", + "sessions.change_session", + "documents.view_savedview", + "authtoken.add_tokenproxy", + "documents.change_tag", + "documents.view_document", + "documents.add_savedview", + "auth.delete_user", + "documents.view_log", + "documents.view_note", + "guardian.change_groupobjectpermission", + "sessions.delete_session", + "django_q.change_failure", + "guardian.change_userobjectpermission", + "documents.change_storagepath", + "documents.delete_document", + "documents.delete_taskattributes", + "django_celery_results.change_groupresult", + "django_q.add_ormq", + "guardian.view_groupobjectpermission", + "admin.change_logentry", + "django_q.delete_schedule", + "documents.delete_paperlesstask", + "django_q.view_ormq", + "documents.change_paperlesstask", + "guardian.delete_userobjectpermission", + "auth.view_permission", + "auth.view_user", + "django_q.add_schedule", + "authtoken.change_token", + "guardian.add_groupobjectpermission", + "documents.view_documenttype", + "documents.change_log", + "paperless_mail.delete_mailrule", + "auth.view_group", + "authtoken.view_token", + "admin.view_logentry", + "django_celery_results.view_chordcounter", + "django_celery_results.view_groupresult", + "documents.view_storagepath", + "documents.add_storagepath", + "django_celery_results.add_groupresult", + "documents.view_tag", + "guardian.view_userobjectpermission", + "documents.delete_correspondent", + "documents.add_tag", + "documents.delete_savedviewfilterrule", + "documents.add_correspondent", + "authtoken.view_tokenproxy", + "documents.delete_frontendsettings", + "django_celery_results.delete_chordcounter", + "django_q.change_task", + "documents.add_taskattributes", + "documents.delete_storagepath", + "sessions.add_session", + "documents.add_uisettings", + "documents.change_taskattributes", + "documents.delete_uisettings", + "django_q.delete_ormq", + "auth.change_permission", + "documents.view_savedviewfilterrule", + "documents.change_frontendsettings", + "documents.change_documenttype", + "documents.view_correspondent", + "auth.add_user", + "paperless_mail.change_mailaccount", + "documents.add_paperlesstask", + "django_q.view_success", + "django_celery_results.delete_groupresult", + "documents.delete_savedview", + "authtoken.change_tokenproxy", + "documents.view_frontendsettings", + "authtoken.add_token", + "django_celery_results.add_chordcounter", + "contenttypes.change_contenttype", + "admin.add_logentry", + "django_q.delete_failure", + "documents.change_uisettings", + "django_q.view_failure", + "documents.add_log", + "documents.change_savedview", + "paperless_mail.view_mailrule", + "django_q.view_schedule", + "documents.change_document", + "django_celery_results.change_chordcounter", + "documents.add_document", + "django_celery_results.view_taskresult", + "contenttypes.add_contenttype", + "django_q.delete_success", + "documents.delete_note", + "django_q.add_failure", + "guardian.add_userobjectpermission", + "sessions.view_session", + "contenttypes.view_contenttype", + "auth.add_permission", + "documents.delete_log", + "django_q.add_task", + "auth.add_group" + ] + }, + { + "id": 15, + "username": "test", + "password": "**********", + "first_name": "", + "last_name": "", + "date_joined": "2022-11-23T08:30:54Z", + "is_staff": true, + "is_active": true, + "is_superuser": false, + "groups": [ + 1 + ], + "user_permissions": [ + "add_group", + "change_group", + "delete_group", + "view_group", + "add_permission", + "change_permission", + "delete_permission", + "view_permission", + "add_token", + "change_token", + "delete_token", + "view_token", + "add_tokenproxy", + "change_tokenproxy", + "delete_tokenproxy", + "view_tokenproxy", + "add_contenttype", + "change_contenttype", + "delete_contenttype", + "view_contenttype", + "add_chordcounter", + "change_chordcounter", + "delete_chordcounter", + "view_chordcounter", + "add_groupresult", + "change_groupresult", + "delete_groupresult", + "view_groupresult", + "add_taskresult", + "change_taskresult", + "delete_taskresult", + "view_taskresult", + "add_failure", + "change_failure", + "delete_failure", + "view_failure", + "add_ormq", + "change_ormq", + "delete_ormq", + "view_ormq", + "add_schedule", + "change_schedule", + "delete_schedule", + "view_schedule", + "add_success", + "change_success", + "delete_success", + "view_success", + "add_task", + "change_task", + "delete_task", + "view_task", + "add_note", + "change_note", + "delete_note", + "view_note", + "add_frontendsettings", + "change_frontendsettings", + "delete_frontendsettings", + "view_frontendsettings", + "add_log", + "change_log", + "delete_log", + "view_log", + "add_savedviewfilterrule", + "change_savedviewfilterrule", + "delete_savedviewfilterrule", + "view_savedviewfilterrule", + "add_taskattributes", + "change_taskattributes", + "delete_taskattributes", + "view_taskattributes", + "add_session", + "change_session", + "delete_session", + "view_session" + ], + "inherited_permissions": [ + "auth.delete_permission", + "django_celery_results.add_taskresult", + "documents.view_taskattributes", + "django_q.add_ormq", + "django_q.add_success", + "django_q.delete_schedule", + "django_q.view_ormq", + "auth.view_permission", + "django_q.add_schedule", + "django_celery_results.change_taskresult", + "django_q.change_schedule", + "django_celery_results.delete_taskresult", + "authtoken.change_token", + "auth.change_group", + "documents.add_note", + "authtoken.delete_tokenproxy", + "documents.view_documenttype", + "contenttypes.delete_contenttype", + "documents.change_correspondent", + "authtoken.delete_token", + "documents.change_log", + "auth.view_group", + "authtoken.view_token", + "django_celery_results.view_chordcounter", + "django_celery_results.view_groupresult", + "documents.delete_documenttype", + "django_q.change_ormq", + "documents.change_savedviewfilterrule", + "django_celery_results.add_groupresult", + "auth.delete_group", + "documents.add_documenttype", + "django_q.change_success", + "auth.add_permission", + "documents.delete_correspondent", + "documents.delete_savedviewfilterrule", + "documents.add_correspondent", + "authtoken.view_tokenproxy", + "documents.delete_frontendsettings", + "django_celery_results.delete_chordcounter", + "documents.add_taskattributes", + "django_q.change_task", + "sessions.add_session", + "documents.change_taskattributes", + "documents.change_note", + "django_q.delete_task", + "django_q.delete_ormq", + "auth.change_permission", + "documents.add_savedviewfilterrule", + "django_q.view_task", + "documents.view_savedviewfilterrule", + "documents.change_frontendsettings", + "documents.change_documenttype", + "documents.view_correspondent", + "django_q.view_success", + "documents.add_frontendsettings", + "django_celery_results.delete_groupresult", + "documents.delete_savedview", + "authtoken.change_tokenproxy", + "documents.view_frontendsettings", + "authtoken.add_token", + "sessions.change_session", + "django_celery_results.add_chordcounter", + "documents.view_savedview", + "contenttypes.change_contenttype", + "django_q.delete_failure", + "authtoken.add_tokenproxy", + "documents.view_document", + "documents.add_savedview", + "django_q.view_failure", + "documents.view_note", + "documents.view_log", + "documents.add_log", + "documents.change_savedview", + "django_q.view_schedule", + "documents.change_document", + "django_celery_results.change_chordcounter", + "documents.add_document", + "sessions.delete_session", + "django_q.change_failure", + "django_celery_results.view_taskresult", + "contenttypes.add_contenttype", + "django_q.delete_success", + "documents.delete_note", + "django_q.add_failure", + "sessions.view_session", + "contenttypes.view_contenttype", + "documents.delete_taskattributes", + "documents.delete_document", + "documents.delete_log", + "django_q.add_task", + "django_celery_results.change_groupresult", + "auth.add_group" + ] + }, + { + "id": 6, + "username": "testuser", + "password": "**********", + "first_name": "", + "last_name": "", + "date_joined": "2022-11-16T04:14:20.484914Z", + "is_staff": false, + "is_active": true, + "is_superuser": false, + "groups": [ + 1, + 6 + ], + "user_permissions": [ + "add_logentry", + "change_logentry", + "delete_logentry", + "view_logentry" + ], + "inherited_permissions": [ + "auth.delete_permission", + "django_celery_results.add_taskresult", + "documents.view_taskattributes", + "django_q.add_ormq", + "django_q.add_success", + "django_q.delete_schedule", + "django_q.view_ormq", + "auth.change_user", + "auth.view_permission", + "auth.view_user", + "django_q.add_schedule", + "django_celery_results.change_taskresult", + "django_q.change_schedule", + "django_celery_results.delete_taskresult", + "authtoken.change_token", + "auth.change_group", + "documents.add_note", + "authtoken.delete_tokenproxy", + "documents.view_documenttype", + "contenttypes.delete_contenttype", + "documents.change_correspondent", + "authtoken.delete_token", + "documents.change_log", + "auth.view_group", + "authtoken.view_token", + "django_celery_results.view_chordcounter", + "django_celery_results.view_groupresult", + "documents.delete_documenttype", + "django_q.change_ormq", + "documents.change_savedviewfilterrule", + "django_celery_results.add_groupresult", + "auth.delete_group", + "documents.add_documenttype", + "django_q.change_success", + "auth.add_permission", + "documents.delete_correspondent", + "documents.delete_savedviewfilterrule", + "documents.add_correspondent", + "authtoken.view_tokenproxy", + "documents.delete_frontendsettings", + "django_celery_results.delete_chordcounter", + "documents.add_taskattributes", + "django_q.change_task", + "sessions.add_session", + "documents.change_taskattributes", + "documents.change_note", + "django_q.delete_task", + "django_q.delete_ormq", + "auth.change_permission", + "documents.add_savedviewfilterrule", + "django_q.view_task", + "documents.view_savedviewfilterrule", + "documents.change_frontendsettings", + "documents.change_documenttype", + "documents.view_correspondent", + "auth.add_user", + "django_q.view_success", + "documents.add_frontendsettings", + "django_celery_results.delete_groupresult", + "documents.delete_savedview", + "authtoken.change_tokenproxy", + "documents.view_frontendsettings", + "authtoken.add_token", + "sessions.change_session", + "django_celery_results.add_chordcounter", + "documents.view_savedview", + "contenttypes.change_contenttype", + "django_q.delete_failure", + "authtoken.add_tokenproxy", + "documents.view_document", + "documents.add_savedview", + "django_q.view_failure", + "documents.view_note", + "documents.view_log", + "auth.delete_user", + "documents.add_log", + "documents.change_savedview", + "django_q.view_schedule", + "documents.change_document", + "django_celery_results.change_chordcounter", + "documents.add_document", + "sessions.delete_session", + "django_q.change_failure", + "django_celery_results.view_taskresult", + "contenttypes.add_contenttype", + "django_q.delete_success", + "documents.delete_note", + "django_q.add_failure", + "sessions.view_session", + "contenttypes.view_contenttype", + "documents.delete_taskattributes", + "documents.delete_document", + "documents.delete_log", + "django_q.add_task", + "django_celery_results.change_groupresult", + "auth.add_group" + ] + } + ] +} diff --git a/src-ui/cypress/support/e2e.ts b/src-ui/cypress/support/e2e.ts index 1d17409c2..1a8ef1710 100644 --- a/src-ui/cypress/support/e2e.ts +++ b/src-ui/cypress/support/e2e.ts @@ -5,6 +5,14 @@ beforeEach(() => { fixture: 'ui_settings/settings.json', }).as('ui-settings') + cy.intercept('http://localhost:8000/api/users/*', { + fixture: 'users/users.json', + }) + + cy.intercept('http://localhost:8000/api/groups/*', { + fixture: 'groups/groups.json', + }) + cy.intercept('http://localhost:8000/api/remote_version/', { fixture: 'remote_version/remote_version.json', }) diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index d154e45aa..91c11de15 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -254,60 +254,68 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Could not add : src/app/app.component.ts - 97 + 116 New document detected src/app/app.component.ts - 112 + 131 Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Prev src/app/app.component.ts - 119 + 138 Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -318,91 +326,91 @@ End src/app/app.component.ts - 121 + 140 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Thank you! 🙏 src/app/app.component.ts - 203 + 229 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Initiating upload... src/app/app.component.ts - 256 + 288 @@ -435,11 +443,11 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html @@ -484,7 +492,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -518,47 +526,47 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -577,29 +585,29 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -610,18 +618,18 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -632,7 +640,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -643,86 +651,86 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 498 + 593 An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 @@ -761,20 +769,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 @@ -823,11 +835,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -839,7 +855,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -887,11 +903,19 @@ src/app/components/manage/settings/settings.component.html - 256 + 257 src/app/components/manage/settings/settings.component.html - 291 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -902,15 +926,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -921,15 +945,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -940,15 +964,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -959,19 +983,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -979,7 +1007,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -998,19 +1034,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1018,11 +1058,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1030,56 +1074,93 @@ src/app/components/manage/settings/settings.component.html - 325 + 415 Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 + + + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 @@ -1109,6 +1190,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Password @@ -1116,47 +1205,129 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html 18 + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 + + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 @@ -1167,7 +1338,7 @@ src/app/components/manage/settings/settings.component.html - 292 + 295 @@ -1233,131 +1404,142 @@ 20 + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1365,7 +1547,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1401,7 +1583,7 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html @@ -1409,148 +1591,149 @@ src/app/components/manage/settings/settings.component.html - 269 + 270 src/app/components/manage/settings/settings.component.html - 304 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 - - - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 + 143 Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 @@ -1561,7 +1744,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 @@ -1582,14 +1765,85 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 + + + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 @@ -1598,6 +1852,14 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1610,25 +1872,39 @@ 18 + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned @@ -1647,28 +1923,224 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 + + + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Add tag src/app/components/common/input/tags/tags.component.html + 12 + + + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html 11 + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Select @@ -1691,49 +2163,18 @@ 20 - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 230 - - - src/app/components/manage/settings/settings.component.html - 316 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 @@ -1755,11 +2196,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1782,11 +2223,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1800,20 +2241,48 @@ 1 - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Upload new documents @@ -1855,32 +2324,32 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget @@ -1926,41 +2395,6 @@ 1 - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Page @@ -1987,7 +2421,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -1995,7 +2429,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 @@ -2013,7 +2447,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 @@ -2035,7 +2469,7 @@ src/app/guards/dirty-saved-view.guard.ts - 34 + 40 @@ -2074,15 +2508,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2097,15 +2531,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2120,15 +2554,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 @@ -2233,6 +2667,13 @@ 145 + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Enter Password @@ -2241,138 +2682,193 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 - - - src/app/components/manage/settings/settings.component.html - 159 + 175,176 Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 + + + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 582 + 688 src/app/components/manage/settings/settings.component.ts - 641 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 584 + 690 src/app/components/manage/settings/settings.component.ts - 643 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 @@ -2381,7 +2877,7 @@ )"/> src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 @@ -2413,40 +2909,40 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2470,11 +2966,19 @@ src/app/components/manage/settings/settings.component.html - 258 + 259 src/app/components/manage/settings/settings.component.html - 293 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2485,28 +2989,28 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 @@ -2515,25 +3019,25 @@ )"/> src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' @@ -2541,7 +3045,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' @@ -2549,14 +3053,14 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 @@ -2565,14 +3069,14 @@ )"/> to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 @@ -2581,7 +3085,7 @@ )"/> from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 @@ -2592,98 +3096,98 @@ )"/> on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 @@ -2694,7 +3198,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 @@ -2705,127 +3209,83 @@ src/app/components/document-list/document-list.component.html - 183 + 199 - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 268 - - - src/app/components/manage/settings/settings.component.html - 303 - - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 @@ -2839,21 +3299,21 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 @@ -2899,68 +3359,139 @@ Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Save as... src/app/components/document-list/document-list.component.html - 76 + 78 {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 + + + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts 18 + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -2971,140 +3502,140 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 @@ -3150,53 +3681,99 @@ 13 + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 @@ -3317,53 +3894,75 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 + + + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 @@ -3372,7 +3971,7 @@ )"/> src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 @@ -3543,8 +4142,8 @@ 135 - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 @@ -3599,8 +4198,8 @@ 155 - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 @@ -3687,98 +4286,126 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 244 + 245 Add Account src/app/components/manage/settings/settings.component.html - 249 + 250 Server src/app/components/manage/settings/settings.component.html - 257 + 258 No mail accounts defined. src/app/components/manage/settings/settings.component.html - 275 + 276 Mail rules src/app/components/manage/settings/settings.component.html - 279 + 282 Add Rule src/app/components/manage/settings/settings.component.html - 284 + 287 No mail rules defined. src/app/components/manage/settings/settings.component.html - 310 + 313 + + + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 385 + 475 Settings saved src/app/components/manage/settings/settings.component.ts - 482 + 577 Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 483 + 578 Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 487 + 582 Reload now src/app/components/manage/settings/settings.component.ts - 488 + 583 Use system language src/app/components/manage/settings/settings.component.ts - 506 + 601 Use date format of display language src/app/components/manage/settings/settings.component.ts - 513 + 608 @@ -3787,133 +4414,224 @@ )"/> src/app/components/manage/settings/settings.component.ts - 533,535 + 628,630 + + + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 Saved account "". src/app/components/manage/settings/settings.component.ts - 560 + 781 Error saving account: . src/app/components/manage/settings/settings.component.ts - 570 + 791 Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 580 + 801 This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 581 + 802 Deleted mail account src/app/components/manage/settings/settings.component.ts - 590 + 811 Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 599 + 820 Saved rule "". src/app/components/manage/settings/settings.component.ts - 618 + 839 Error saving rule: . src/app/components/manage/settings/settings.component.ts - 629 + 850 Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 639 + 860 This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 640 + 861 Deleted mail rule src/app/components/manage/settings/settings.component.ts - 649 + 870 Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 658 + 879 storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 @@ -3923,13 +4641,6 @@ 6 - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - Refresh @@ -3959,74 +4670,74 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 @@ -4036,81 +4747,88 @@ 7 + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Any word src/app/data/matching-model.ts - 14 + 20 Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 All words src/app/data/matching-model.ts - 19 + 25 All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Exact match src/app/data/matching-model.ts - 24 + 30 Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Regular expression src/app/data/matching-model.ts - 29 + 35 Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 @@ -4128,15 +4846,15 @@ src/app/guards/dirty-saved-view.guard.ts - 26 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 @@ -4147,7 +4865,7 @@ src/app/services/open-documents.service.ts - 131 + 132 @@ -4168,21 +4886,28 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 28 + 34 Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 32 + 38 Save and close src/app/guards/dirty-saved-view.guard.ts - 36 + 42 + + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 @@ -4312,35 +5037,35 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Close document src/app/services/open-documents.service.ts - 111 + 112 Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Close documents src/app/services/open-documents.service.ts - 134 + 135 @@ -4354,7 +5079,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query @@ -4362,210 +5087,217 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Arabic src/app/services/settings.service.ts - 151 + 165 Belarusian src/app/services/settings.service.ts - 157 + 171 + + + + Catalan + + src/app/services/settings.service.ts + 177 Czech src/app/services/settings.service.ts - 163 + 183 Danish src/app/services/settings.service.ts - 169 + 189 German src/app/services/settings.service.ts - 175 + 195 English (GB) src/app/services/settings.service.ts - 181 + 201 Spanish src/app/services/settings.service.ts - 187 + 207 French src/app/services/settings.service.ts - 193 + 213 Italian src/app/services/settings.service.ts - 199 + 219 Luxembourgish src/app/services/settings.service.ts - 205 + 225 Dutch src/app/services/settings.service.ts - 211 + 231 Polish src/app/services/settings.service.ts - 217 + 237 Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portuguese src/app/services/settings.service.ts - 229 + 249 Romanian src/app/services/settings.service.ts - 235 + 255 Russian src/app/services/settings.service.ts - 241 + 261 Slovenian src/app/services/settings.service.ts - 247 + 267 Serbian src/app/services/settings.service.ts - 253 + 273 Swedish src/app/services/settings.service.ts - 259 + 279 Turkish src/app/services/settings.service.ts - 265 + 285 Chinese Simplified src/app/services/settings.service.ts - 271 + 291 ISO 8601 src/app/services/settings.service.ts - 288 + 308 Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Information src/app/services/toast.service.ts - 36 + 43 Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 diff --git a/src-ui/package-lock.json b/src-ui/package-lock.json index 31f0022ab..473f6c565 100644 --- a/src-ui/package-lock.json +++ b/src-ui/package-lock.json @@ -8,56 +8,57 @@ "name": "paperless-ui", "version": "0.0.0", "dependencies": { - "@angular/common": "~15.1.2", - "@angular/compiler": "~15.1.2", - "@angular/core": "~15.1.2", - "@angular/forms": "~15.1.2", - "@angular/localize": "~15.1.2", - "@angular/platform-browser": "~15.1.2", - "@angular/platform-browser-dynamic": "~15.1.2", - "@angular/router": "~15.1.2", - "@ng-bootstrap/ng-bootstrap": "^14.0.1", - "@ng-select/ng-select": "^10.0.1", + "@angular/common": "~15.2.7", + "@angular/compiler": "~15.2.7", + "@angular/core": "~15.2.7", + "@angular/forms": "~15.2.7", + "@angular/localize": "~15.2.7", + "@angular/platform-browser": "~15.2.7", + "@angular/platform-browser-dynamic": "~15.2.7", + "@angular/router": "~15.2.7", + "@ng-bootstrap/ng-bootstrap": "^14.1.0", + "@ng-select/ng-select": "^10.0.4", "@ngneat/dirty-check-forms": "^3.0.3", - "@popperjs/core": "^2.11.6", + "@popperjs/core": "^2.11.7", "bootstrap": "^5.2.3", "file-saver": "^2.0.5", - "ng2-pdf-viewer": "^9.1.2", + "mime-names": "^1.0.0", + "ng2-pdf-viewer": "^9.1.5", "ngx-color": "^8.0.3", "ngx-cookie-service": "^15.0.0", - "ngx-file-drop": "^14.0.2", - "ngx-ui-tour-ng-bootstrap": "^12.0.0", + "ngx-file-drop": "^15.0.0", + "ngx-ui-tour-ng-bootstrap": "^12.6.0", "rxjs": "^7.8.0", "tslib": "^2.4.1", "uuid": "^9.0.0", - "zone.js": "~0.11.8" + "zone.js": "^0.13.0" }, "devDependencies": { "@angular-builders/jest": "15.0.0", - "@angular-devkit/build-angular": "~15.1.4", - "@angular-eslint/builder": "15.2.0", - "@angular-eslint/eslint-plugin": "15.2.0", - "@angular-eslint/eslint-plugin-template": "15.2.0", - "@angular-eslint/schematics": "15.2.0", - "@angular-eslint/template-parser": "15.2.0", - "@angular/cli": "~15.1.4", - "@angular/compiler-cli": "~15.1.2", - "@types/jest": "28.1.6", - "@types/node": "^18.7.23", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.50.0", - "concurrently": "7.4.0", - "eslint": "^8.31.0", + "@angular-devkit/build-angular": "~15.2.6", + "@angular-eslint/builder": "15.2.1", + "@angular-eslint/eslint-plugin": "15.2.1", + "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/schematics": "15.2.1", + "@angular-eslint/template-parser": "15.2.1", + "@angular/cli": "~15.2.6", + "@angular/compiler-cli": "~15.2.7", + "@types/jest": "^29.5.0", + "@types/node": "^18.15.11", + "@typescript-eslint/eslint-plugin": "^5.58.0", + "@typescript-eslint/parser": "^5.58.0", + "concurrently": "^8.0.1", + "eslint": "^8.38.0", "jest": "28.1.3", - "jest-environment-jsdom": "^29.2.2", - "jest-preset-angular": "^12.2.3", + "jest-environment-jsdom": "^29.5.0", + "jest-preset-angular": "^12.2.6", "ts-node": "~10.9.1", - "typescript": "~4.8.4", - "wait-on": "~6.0.1" + "typescript": "~4.9.5", + "wait-on": "^7.0.1" }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.9.0" + "cypress": "^12.9.0" } }, "node_modules/@ampproject/remapping": { @@ -305,12 +306,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1501.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.4.tgz", - "integrity": "sha512-PE0CqPaNzcz8yHEuJwqtKxYvXX9hgWWvC6hI2DWKtC+5WgJLAYJNEGofXQRc227Nj+YySEYUUo8Ja8SYl3lDxA==", + "version": "0.1502.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1502.6.tgz", + "integrity": "sha512-n4oJ9vzFWwabf+AfgqqevVzdJhNKNCav7ytefjD/Y01vkNwlXqWnHcvyyHCLkVibJ6WR8J9lK4t77j/HFlDvWQ==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "15.1.4", + "@angular-devkit/core": "15.2.6", "rxjs": "6.6.7" }, "engines": { @@ -338,38 +339,39 @@ "devOptional": true }, "node_modules/@angular-devkit/build-angular": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.1.4.tgz", - "integrity": "sha512-+vubHYyQn8HJ+uJQndr8xFlX6C7y1kdnzTiKgx6QFvA5sd/IhXXzsnDd1wFer1lCrZ+1qgfhG9HI/RL3cBeKrA==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.2.6.tgz", + "integrity": "sha512-OmMcdXXUrAdZNxwxDE8SUx1FMcq9FyMnrSv1PmP9sHPBoxAdBVc/qNdGA9V7C5yHvWHGgzsx7ZK5TDuvifzS5g==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1501.4", - "@angular-devkit/build-webpack": "0.1501.4", - "@angular-devkit/core": "15.1.4", + "@angular-devkit/architect": "0.1502.6", + "@angular-devkit/build-webpack": "0.1502.6", + "@angular-devkit/core": "15.2.6", "@babel/core": "7.20.12", - "@babel/generator": "7.20.7", + "@babel/generator": "7.20.14", "@babel/helper-annotate-as-pure": "7.18.6", + "@babel/helper-split-export-declaration": "7.18.6", "@babel/plugin-proposal-async-generator-functions": "7.20.7", "@babel/plugin-transform-async-to-generator": "7.20.7", "@babel/plugin-transform-runtime": "7.19.6", "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.7", + "@babel/runtime": "7.20.13", "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.1.4", + "@ngtools/webpack": "15.2.6", "ansi-colors": "4.1.3", "autoprefixer": "10.4.13", "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", - "browserslist": "4.21.4", + "browserslist": "4.21.5", "cacache": "17.0.4", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", "css-loader": "6.7.3", - "esbuild-wasm": "0.16.17", - "glob": "8.0.3", + "esbuild-wasm": "0.17.8", + "glob": "8.1.0", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", @@ -378,26 +380,26 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.27.0", + "magic-string": "0.29.0", "mini-css-extract-plugin": "2.7.2", - "open": "8.4.0", + "open": "8.4.1", "ora": "5.4.1", - "parse5-html-rewriting-stream": "6.0.1", + "parse5-html-rewriting-stream": "7.0.0", "piscina": "3.2.0", "postcss": "8.4.21", "postcss-loader": "7.0.2", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.57.1", + "sass": "1.58.1", "sass-loader": "13.2.0", "semver": "7.3.8", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.16.1", + "terser": "5.16.3", "text-table": "0.2.0", "tree-kill": "1.2.2", - "tslib": "2.4.1", - "webpack": "5.75.0", + "tslib": "2.5.0", + "webpack": "5.76.1", "webpack-dev-middleware": "6.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0", @@ -409,7 +411,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.16.17" + "esbuild": "0.17.8" }, "peerDependencies": { "@angular/compiler-cli": "^15.0.0", @@ -446,6 +448,18 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -464,19 +478,13 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1501.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1501.4.tgz", - "integrity": "sha512-rJ7KTBDW0UHgVJjQ23qJfGun+pDX3ZG2z0OtsskdsOI62SAvW1cVLuS50ICTcWW6gtcDO0R/6Q1RLbaV1JHZ5A==", + "version": "0.1502.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1502.6.tgz", + "integrity": "sha512-X7XQ11QDz2Bs5qpJ3a5glIytvI+S74ORQxdzvT6a6KB8ayW0SgZEhTwD+GF7pa5My8draIaXBGzzQR1qmpWK5Q==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1501.4", + "@angular-devkit/architect": "0.1502.6", "rxjs": "6.6.7" }, "engines": { @@ -508,9 +516,9 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.4.tgz", - "integrity": "sha512-PW5MRmd9DHJR4FaXchwQtj9pXnsghSTnwRvfZeCRNYgU2sv0DKyTV+YTSJB+kNXnoPNG1Je6amDEkiXecpspXg==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.2.6.tgz", + "integrity": "sha512-YVTWZ+M+xNKdFX4EnY9QX49PZraawiaA0iTd2CUW8ZoTUvU7yOGMKZLSdz6aokTMRVfm0449wt6YL994ibOo1g==", "devOptional": true, "dependencies": { "ajv": "8.12.0", @@ -552,14 +560,14 @@ "devOptional": true }, "node_modules/@angular-devkit/schematics": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.1.4.tgz", - "integrity": "sha512-jpddxo9Qd2yRQ1t9FLhAx5S+luz6HkyhDytq0LFKbxf9ikf1J4oy9riPBFl4pRmrNARWcHZ6GbD20/Ky8PjmXQ==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.2.6.tgz", + "integrity": "sha512-f7VgnAcok7AwR/DhX0ZWskB0rFBo/KsvtIUA2qZSrpKMf8eFiwu03dv/b2mI0vnf+1FBfIQzJvO0ww45zRp6dA==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "15.1.4", + "@angular-devkit/core": "15.2.6", "jsonc-parser": "3.2.0", - "magic-string": "0.27.0", + "magic-string": "0.29.0", "ora": "5.4.1", "rxjs": "6.6.7" }, @@ -569,6 +577,18 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "devOptional": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -588,9 +608,9 @@ "devOptional": true }, "node_modules/@angular-eslint/builder": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-15.2.0.tgz", - "integrity": "sha512-5xnJub1G7+F9Ra75N90Ln9yn/KFzWnMIHfqDVRRDrlwgja1Zc9ZmqcazLWc/k12yzKyJoO3uwBSycyVwG2fYVg==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-15.2.1.tgz", + "integrity": "sha512-7x2DANebLRl997Mj4DhZrnz5+vnSjavGGveJ0mBuU7CEsL0ZYLftdRqL0e0HtU3ksseS7xpchD6OM08nkNgySw==", "dev": true, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -598,19 +618,19 @@ } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-15.2.0.tgz", - "integrity": "sha512-a0bfXxYyGoWJHrVQ4QER0HdRgselcTtJeyqiFPAxID2ZxF0IBGKLNTtugUTXekEmiLev8yGLX9TqAtthN57fEg==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-15.2.1.tgz", + "integrity": "sha512-LO7Am8eVCr7oh6a0VmKSL7K03CnQEQhFO7Wt/YtbfYOxVjrbwmYLwJn+wZPOT7A02t/BttOD/WXuDrOWtSMQ/Q==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-15.2.0.tgz", - "integrity": "sha512-yJGbmSUU0B0MFJ48ktpkqqEK+zv5k9iwlZSqEHtiQMKvDelfluovnEusihel7uPRo1c1iVlbSgXfGpxpUCfocA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-15.2.1.tgz", + "integrity": "sha512-OM7b1kS4E4CkXjkaWN+lEzawh4VxY6l7FO1Cuk4s7iv3/YpZG3rJxIZBqnFLTixwrBuqw8y4FNBzF3eDgmFAUw==", "dev": true, "dependencies": { - "@angular-eslint/utils": "15.2.0", - "@typescript-eslint/utils": "5.48.1" + "@angular-eslint/utils": "15.2.1", + "@typescript-eslint/utils": "5.48.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -618,15 +638,15 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-15.2.0.tgz", - "integrity": "sha512-aL3czf5Jpv29rKN3UG20tQepX1+V0d6xc0g+1l0zPHZJYjVd6Oy0nIxWiGfl4yanaXiVpmxiV4vUcLlqqaFwbw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-15.2.1.tgz", + "integrity": "sha512-IeiSLk6YxapFdH2z5o/O3R7VwtBd2T6fWmhLFPwDYMDknrwegnOjwswCdBplOccpUp0wqlCeGUx7LTsuzwaz7w==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.0", - "@angular-eslint/utils": "15.2.0", - "@typescript-eslint/type-utils": "5.48.1", - "@typescript-eslint/utils": "5.48.1", + "@angular-eslint/bundled-angular-compiler": "15.2.1", + "@angular-eslint/utils": "15.2.1", + "@typescript-eslint/type-utils": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "aria-query": "5.1.3", "axobject-query": "3.1.1" }, @@ -636,13 +656,13 @@ } }, "node_modules/@angular-eslint/schematics": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-15.2.0.tgz", - "integrity": "sha512-N9tuVu3vL47beppTsV9wAF+v6M9trbJnuNWYQGGsqA3mtCAkFUvJuHyWcXNPdSCNv/cJtR1OOJ7Y922uB5JPJQ==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-15.2.1.tgz", + "integrity": "sha512-0ZfBCejHWIcgy3J5kFs9sS/jqi8i5AptxggOwFySOlCLJ+CzNrktjD4jff1Zy8K/VLzY0Ci0BSZXvgWfP0k9Rg==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "15.2.0", - "@angular-eslint/eslint-plugin-template": "15.2.0", + "@angular-eslint/eslint-plugin": "15.2.1", + "@angular-eslint/eslint-plugin-template": "15.2.1", "ignore": "5.2.4", "strip-json-comments": "3.1.1", "tmp": "0.2.1" @@ -652,12 +672,12 @@ } }, "node_modules/@angular-eslint/template-parser": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-15.2.0.tgz", - "integrity": "sha512-xnnxPfV/G0Ll3B0HGrF1ucsc/DHmNE6UhhmWxYPTERq0McbZGRiATa66hCoOZ/Rdylun4ogBfsRKAG8XxEvlvw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-15.2.1.tgz", + "integrity": "sha512-ViCi79gC2aKJecmYLkOT+QlT5WMRNXeYz0Dr9Pr8qXzIbY0oAWE7nOT5jkXwQ9oUk+ybtGCWHma5JVJWVJsIog==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.0", + "@angular-eslint/bundled-angular-compiler": "15.2.1", "eslint-scope": "^7.0.0" }, "peerDependencies": { @@ -666,13 +686,13 @@ } }, "node_modules/@angular-eslint/utils": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-15.2.0.tgz", - "integrity": "sha512-qfTOKQ+aef/YER679/xN1E+FkZKMd0I73P6txUZAb9k2G1ACVktG+wOUIBfgjIlUVq9Q01AV91LGOWcd+rdEEA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-15.2.1.tgz", + "integrity": "sha512-++FneAJHxJqcSu0igVN6uOkSoHxlzgLoMBswuovYJy3UKwm33/T6WFku8++753Ca/JucIoR1gdUfO7SoSspMDg==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "15.2.0", - "@typescript-eslint/utils": "5.48.1" + "@angular-eslint/bundled-angular-compiler": "15.2.1", + "@typescript-eslint/utils": "5.48.2" }, "peerDependencies": { "eslint": "^7.20.0 || ^8.0.0", @@ -680,15 +700,15 @@ } }, "node_modules/@angular/cli": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.4.tgz", - "integrity": "sha512-ebZiI4arb9wtOUMmTyUvjgDovmwpY8hmGLbkKZiEmAX8+2gbl4e97M+zd0SICZDU8bu5VcpoP6Q3Qb6vVjab9A==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.2.6.tgz", + "integrity": "sha512-wNkQ/qCVbd4pERaGVagKJPifEvjRNY5otwsd4iRVubY/XOcIHcYChUThZwgQdVfNAImfJPMZNrhbGxejuWLA9w==", "devOptional": true, "dependencies": { - "@angular-devkit/architect": "0.1501.4", - "@angular-devkit/core": "15.1.4", - "@angular-devkit/schematics": "15.1.4", - "@schematics/angular": "15.1.4", + "@angular-devkit/architect": "0.1502.6", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", + "@schematics/angular": "15.2.6", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", @@ -696,9 +716,9 @@ "jsonc-parser": "3.2.0", "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", - "open": "8.4.0", + "open": "8.4.1", "ora": "5.4.1", - "pacote": "15.0.8", + "pacote": "15.1.0", "resolve": "1.22.1", "semver": "7.3.8", "symbol-observable": "4.0.0", @@ -714,9 +734,9 @@ } }, "node_modules/@angular/common": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.1.2.tgz", - "integrity": "sha512-1Ra6EoaZjPcdDsGBge3qSajO1ECYceX+2EWHdjvJ9ZEIaXsLNFMQBUMgJnjsnrojs9Gd3bxJ0WHkahij5/8WNA==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.2.7.tgz", + "integrity": "sha512-CbmrQeZ0yChQrF/ab3v+gv6x2uLbv/s1wZNUBSO/p1STz6BZzHRJqObVlfPlQvyBx5btBBy/+I1sUh1yumARDA==", "dependencies": { "tslib": "^2.3.0" }, @@ -724,14 +744,14 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.1.2", + "@angular/core": "15.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.1.2.tgz", - "integrity": "sha512-hKlr1i61a2Gl0h53goSSUbZmzNgdC1zAHu+Ws0+1Qfv9cDgg1aVphFGFMdV0kbjLV+k7LyFjj5EgWU48o5UXww==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.2.7.tgz", + "integrity": "sha512-SesyYI2ExUa13XukXgIsmfg3ar90HbWeWDJTgmzsIfph0M9t6+SaPGpf3FCtdBgNADIpUFp3cieCOJgLESzxYQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -739,7 +759,7 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.1.2" + "@angular/core": "15.2.7" }, "peerDependenciesMeta": { "@angular/core": { @@ -748,9 +768,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.1.2.tgz", - "integrity": "sha512-gAqbQSKI4oeboh0UKsFdaEoST9IBVzqeckJzSTwAGxJeS33IM7Jjo3LViqHuzQyWKXe6srkci0LD4C2Mrj4kfQ==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.2.7.tgz", + "integrity": "sha512-4v51dOaT8GDUzRh6+mCLZOaYuU9FYX6vOHaLod9np3tVWPhcpoF2ZklRSiQDeFqrhr5B4vuCp/Lh9N2wzc22XQ==", "dependencies": { "@babel/core": "7.19.3", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -772,7 +792,7 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.1.2", + "@angular/compiler": "15.2.7", "typescript": ">=4.8.2 <5.0" } }, @@ -814,9 +834,9 @@ } }, "node_modules/@angular/core": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.1.2.tgz", - "integrity": "sha512-K9pz6Bq6RuY/OWhKLZT1JQvk4orvU9wozgXY8cZaOGmNCQQ7sJv5zGkO5csO6o1ON1v/AHowrP/FAF1i8tml5g==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.2.7.tgz", + "integrity": "sha512-iS7JCJubRFqdndoUdAnvNkQRT3tY5tNFupBQS/sytkwxVrdBg+Is5jpdgk741n824vTMsE+CnuY0SETar8rN6g==", "dependencies": { "tslib": "^2.3.0" }, @@ -825,13 +845,13 @@ }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.11.4 || ~0.12.0" + "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0" } }, "node_modules/@angular/forms": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.1.2.tgz", - "integrity": "sha512-ZL3EkCQ2SDrv9hdyPX54WPiTf9SQpkKz4bn/Gxe6lySLy0oHR5Te68DPMljWBeHYa+cNTCDdPN81AKLIDjRQtA==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.2.7.tgz", + "integrity": "sha512-rzrebDIrtxxOeMcBzRBxqaOBZ+T1DJrysG/6YWZy428W/Z3MfPxUarPxgfx/oZI+x5uUsDaZmyoRdhVPJ2KhZg==", "dependencies": { "tslib": "^2.3.0" }, @@ -839,16 +859,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.2", - "@angular/core": "15.1.2", - "@angular/platform-browser": "15.1.2", + "@angular/common": "15.2.7", + "@angular/core": "15.2.7", + "@angular/platform-browser": "15.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-15.1.2.tgz", - "integrity": "sha512-wnNgq8tn5W1u2B/G2Q08XiHKucJidNE+U5OuYk+qjf2M5M5DVwBhF/mxJxWoDKSuLg/JIJ8FUiKjEhJ5iUJ4lg==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-15.2.7.tgz", + "integrity": "sha512-ySuy35QKApWH9sW3PfnAAnZjLl3NT+SacvlEWigrTeCqfBEuDPUG57ugvc1/Lzuo09UOh3HQkrQBbdWAILd8JA==", "dependencies": { "@babel/core": "7.19.3", "glob": "8.1.0", @@ -863,8 +883,8 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.1.2", - "@angular/compiler-cli": "15.1.2" + "@angular/compiler": "15.2.7", + "@angular/compiler-cli": "15.2.7" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -896,43 +916,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@angular/localize/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@angular/localize/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@angular/localize/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/localize/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -942,9 +925,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.2.tgz", - "integrity": "sha512-eWyfUOFZ05vB0UfPUTPK7pPJZjFtbGZlJOea3IUqEohuyRqq3CqYCrv7SVXGKQVOx1qRA0Ckr9FOB8/qYbTq1A==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.2.7.tgz", + "integrity": "sha512-aCbd7xyuP7c2eDITkOTDO2mqP550WHCBN8U6VnjysqtB5ocbJtR6z/MIRItN/Zx+xj3piiaKei//XIkb3Q5fXQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -952,9 +935,9 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "15.1.2", - "@angular/common": "15.1.2", - "@angular/core": "15.1.2" + "@angular/animations": "15.2.7", + "@angular/common": "15.2.7", + "@angular/core": "15.2.7" }, "peerDependenciesMeta": { "@angular/animations": { @@ -963,9 +946,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.2.tgz", - "integrity": "sha512-JBSRYeaW+Vb/lKXwxgrU8m42Avxjwmx8vGRp/krJfhh4KL9CJ84zf7Ldxb0sCv06kGdu6vbOUasNGDdgIQfdOQ==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.2.7.tgz", + "integrity": "sha512-t1Nf7hgbcYvhmxuzgUtsV47jrI5CXUBqrtz5I0ilWG92zZTig5qvfd1/2Ub8NHz87uHNrnggyZpL2+4MJ26nyQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -973,16 +956,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.2", - "@angular/compiler": "15.1.2", - "@angular/core": "15.1.2", - "@angular/platform-browser": "15.1.2" + "@angular/common": "15.2.7", + "@angular/compiler": "15.2.7", + "@angular/core": "15.2.7", + "@angular/platform-browser": "15.2.7" } }, "node_modules/@angular/router": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.1.2.tgz", - "integrity": "sha512-p2tTHYvBsMaayJNWAZMBqrL7jwxs6NQaEDImBtMwnOnQr/M+LwQdAeNFfpky20ODZw0JwTW84q04l8klExq0kw==", + "version": "15.2.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.2.7.tgz", + "integrity": "sha512-Wkk+oJSUrVafJjmv9uE1SoY4wDE9bjX7ald+UXePz+QyM/PFoLkm/CzLYjFBkJnsOkOVxw1VmvacoUjWN6BCTQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -990,9 +973,9 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.1.2", - "@angular/core": "15.1.2", - "@angular/platform-browser": "15.1.2", + "@angular/common": "15.2.7", + "@angular/core": "15.2.7", + "@angular/platform-browser": "15.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -1059,9 +1042,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dependencies": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -2612,9 +2595,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", - "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.11" @@ -2813,9 +2796,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", - "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.8.tgz", + "integrity": "sha512-0/rb91GYKhrtbeglJXOhAv9RuYimgI8h623TplY2X+vA4EXnk3Zj1fXZreJ0J3OJJu1bwmb0W7g+2cT/d8/l/w==", "cpu": [ "arm" ], @@ -2829,9 +2812,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", - "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.8.tgz", + "integrity": "sha512-oa/N5j6v1svZQs7EIRPqR8f+Bf8g6HBDjD/xHC02radE/NjKHK7oQmtmLxPs1iVwYyvE+Kolo6lbpfEQ9xnhxQ==", "cpu": [ "arm64" ], @@ -2845,9 +2828,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", - "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.8.tgz", + "integrity": "sha512-bTliMLqD7pTOoPg4zZkXqCDuzIUguEWLpeqkNfC41ODBHwoUgZ2w5JBeYimv4oP6TDVocoYmEhZrCLQTrH89bg==", "cpu": [ "x64" ], @@ -2861,9 +2844,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", - "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.8.tgz", + "integrity": "sha512-ghAbV3ia2zybEefXRRm7+lx8J/rnupZT0gp9CaGy/3iolEXkJ6LYRq4IpQVI9zR97ID80KJVoUlo3LSeA/sMAg==", "cpu": [ "arm64" ], @@ -2877,9 +2860,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", - "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.8.tgz", + "integrity": "sha512-n5WOpyvZ9TIdv2V1K3/iIkkJeKmUpKaCTdun9buhGRWfH//osmUjlv4Z5mmWdPWind/VGcVxTHtLfLCOohsOXw==", "cpu": [ "x64" ], @@ -2893,9 +2876,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", - "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.8.tgz", + "integrity": "sha512-a/SATTaOhPIPFWvHZDoZYgxaZRVHn0/LX1fHLGfZ6C13JqFUZ3K6SMD6/HCtwOQ8HnsNaEeokdiDSFLuizqv5A==", "cpu": [ "arm64" ], @@ -2909,9 +2892,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", - "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.8.tgz", + "integrity": "sha512-xpFJb08dfXr5+rZc4E+ooZmayBW6R3q59daCpKZ/cDU96/kvDM+vkYzNeTJCGd8rtO6fHWMq5Rcv/1cY6p6/0Q==", "cpu": [ "x64" ], @@ -2925,9 +2908,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", - "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.8.tgz", + "integrity": "sha512-6Ij8gfuGszcEwZpi5jQIJCVIACLS8Tz2chnEBfYjlmMzVsfqBP1iGmHQPp7JSnZg5xxK9tjCc+pJ2WtAmPRFVA==", "cpu": [ "arm" ], @@ -2941,9 +2924,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", - "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.8.tgz", + "integrity": "sha512-v3iwDQuDljLTxpsqQDl3fl/yihjPAyOguxuloON9kFHYwopeJEf1BkDXODzYyXEI19gisEsQlG1bM65YqKSIww==", "cpu": [ "arm64" ], @@ -2957,9 +2940,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", - "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.8.tgz", + "integrity": "sha512-8svILYKhE5XetuFk/B6raFYIyIqydQi+GngEXJgdPdI7OMKUbSd7uzR02wSY4kb53xBrClLkhH4Xs8P61Q2BaA==", "cpu": [ "ia32" ], @@ -2973,9 +2956,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", - "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.8.tgz", + "integrity": "sha512-B6FyMeRJeV0NpyEOYlm5qtQfxbdlgmiGdD+QsipzKfFky0K5HW5Td6dyK3L3ypu1eY4kOmo7wW0o94SBqlqBSA==", "cpu": [ "loong64" ], @@ -2989,9 +2972,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", - "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.8.tgz", + "integrity": "sha512-CCb67RKahNobjm/eeEqeD/oJfJlrWyw29fgiyB6vcgyq97YAf3gCOuP6qMShYSPXgnlZe/i4a8WFHBw6N8bYAA==", "cpu": [ "mips64el" ], @@ -3005,9 +2988,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", - "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.8.tgz", + "integrity": "sha512-bytLJOi55y55+mGSdgwZ5qBm0K9WOCh0rx+vavVPx+gqLLhxtSFU0XbeYy/dsAAD6xECGEv4IQeFILaSS2auXw==", "cpu": [ "ppc64" ], @@ -3021,9 +3004,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", - "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.8.tgz", + "integrity": "sha512-2YpRyQJmKVBEHSBLa8kBAtbhucaclb6ex4wchfY0Tj3Kg39kpjeJ9vhRU7x4mUpq8ISLXRXH1L0dBYjAeqzZAw==", "cpu": [ "riscv64" ], @@ -3037,9 +3020,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", - "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.8.tgz", + "integrity": "sha512-QgbNY/V3IFXvNf11SS6exkpVcX0LJcob+0RWCgV9OiDAmVElnxciHIisoSix9uzYzScPmS6dJFbZULdSAEkQVw==", "cpu": [ "s390x" ], @@ -3053,9 +3036,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", - "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.8.tgz", + "integrity": "sha512-mM/9S0SbAFDBc4OPoyP6SEOo5324LpUxdpeIUUSrSTOfhHU9hEfqRngmKgqILqwx/0DVJBzeNW7HmLEWp9vcOA==", "cpu": [ "x64" ], @@ -3069,9 +3052,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", - "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.8.tgz", + "integrity": "sha512-eKUYcWaWTaYr9zbj8GertdVtlt1DTS1gNBWov+iQfWuWyuu59YN6gSEJvFzC5ESJ4kMcKR0uqWThKUn5o8We6Q==", "cpu": [ "x64" ], @@ -3085,9 +3068,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", - "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.8.tgz", + "integrity": "sha512-Vc9J4dXOboDyMXKD0eCeW0SIeEzr8K9oTHJU+Ci1mZc5njPfhKAqkRt3B/fUNU7dP+mRyralPu8QUkiaQn7iIg==", "cpu": [ "x64" ], @@ -3101,9 +3084,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", - "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.8.tgz", + "integrity": "sha512-0xvOTNuPXI7ft1LYUgiaXtpCEjp90RuBBYovdd2lqAFxje4sEucurg30M1WIm03+3jxByd3mfo+VUmPtRSVuOw==", "cpu": [ "x64" ], @@ -3117,9 +3100,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", - "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.8.tgz", + "integrity": "sha512-G0JQwUI5WdEFEnYNKzklxtBheCPkuDdu1YrtRrjuQv30WsYbkkoixKxLLv8qhJmNI+ATEWquZe/N0d0rpr55Mg==", "cpu": [ "arm64" ], @@ -3133,9 +3116,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", - "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.8.tgz", + "integrity": "sha512-Fqy63515xl20OHGFykjJsMnoIWS+38fqfg88ClvPXyDbLtgXal2DTlhb1TfTX34qWi3u4I7Cq563QcHpqgLx8w==", "cpu": [ "ia32" ], @@ -3149,9 +3132,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", - "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.8.tgz", + "integrity": "sha512-1iuezdyDNngPnz8rLRDO2C/ZZ/emJLb72OsZeqQ6gL6Avko/XCXZw+NuxBSNhBAP13Hie418V7VMt9et1FMvpg==", "cpu": [ "x64" ], @@ -3164,15 +3147,39 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.4.0", + "espree": "^9.5.1", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -3254,6 +3261,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -4055,9 +4071,9 @@ "dev": true }, "node_modules/@ng-bootstrap/ng-bootstrap": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-14.0.1.tgz", - "integrity": "sha512-JF4U4IIix+g6VBFfG8stf0Un5K//ypoN+pTuRs6kjUhsHBsa2m7yKE6bCe3fMhatFZFr2fcSswDzRUnAUiHhWg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-14.1.0.tgz", + "integrity": "sha512-vFJ9SLpALrkUjnhdOONrABojmPFZDkP5DYVZbuel4ug045DKi7bBNvSfBOEG1tvpxP1mPmbKg5REPAMsxHmShQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -4071,9 +4087,9 @@ } }, "node_modules/@ng-select/ng-select": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-10.0.3.tgz", - "integrity": "sha512-Ma8pzKMI5TWnsKgOiONQLGeUeTko9gI6AtqpMMOVhrCktjtUSo9h5N17WomHRGtba9D7QviTZcR7UBhKOPwZ7g==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/@ng-select/ng-select/-/ng-select-10.0.4.tgz", + "integrity": "sha512-Vc/JIgcFkSgf47cX7+pQQo9HYhDktfqrY7o/ZPGMvu63P7E9d1MibVipqmcLbgms6Ac9lu621CDZPGHdxag7hA==", "dependencies": { "tslib": "^2.3.1" }, @@ -4103,9 +4119,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.4.tgz", - "integrity": "sha512-IvKXK8AvPlLkP99Uf0RL1EHlcsXNQd86II9HsLjupUtmFC/pPuDWrRFMP9bjWUMh2ZeYpgUeEAbcCH3doSrdIA==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.2.6.tgz", + "integrity": "sha512-I+kekKItfsCLdX+ZjjmsWqd0AyoYGTQPjlbQAiPtmdH73/rfPOF4Q/3AU4tzTdn0n0GXqZWv6VOs91w99ydi0A==", "dev": true, "engines": { "node": "^14.20.0 || ^16.13.0 || >=18.10.0", @@ -4186,9 +4202,9 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", "devOptional": true, "engines": { "node": ">=12" @@ -4210,9 +4226,9 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.1.tgz", - "integrity": "sha512-GIykAFdOVK31Q1/zAtT5MbxqQL2vyl9mvFJv+OGu01zxbhL3p0xc8gJjdNGX1mWmUT43aEKVO2L6V/2j4TOsAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "devOptional": true, "dependencies": { "npm-bundled": "^3.0.0", @@ -4307,22 +4323,22 @@ } }, "node_modules/@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "version": "2.11.7", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz", + "integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, "node_modules/@schematics/angular": { - "version": "15.1.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.1.4.tgz", - "integrity": "sha512-4SV8dDGZeSvts01b8y2W6FmpDD0dQhBlGMhMJKC/tUnhfNKfYCs2VKtMBsIc3ZiGP2yoA3+nUiMmtS6hEkXYHw==", + "version": "15.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.2.6.tgz", + "integrity": "sha512-OcBUvVAxZEMBX+fi0ytybeAdmStra+GwtlvipS70yOxcAgJ84ZrnZGN7a072cCVQcq7AgqUfssnyqCx1wu+yCg==", "devOptional": true, "dependencies": { - "@angular-devkit/core": "15.1.4", - "@angular-devkit/schematics": "15.1.4", + "@angular-devkit/core": "15.2.6", + "@angular-devkit/schematics": "15.2.6", "jsonc-parser": "3.2.0" }, "engines": { @@ -4515,13 +4531,13 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.16.tgz", - "integrity": "sha512-LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } @@ -4547,9 +4563,9 @@ } }, "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", "dev": true, "dependencies": { "@types/node": "*" @@ -4580,13 +4596,257 @@ } }, "node_modules/@types/jest": { - "version": "28.1.6", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.6.tgz", - "integrity": "sha512-0RbGAFMfcBJKOmqRazM8L98uokwuwD5F8rHrv/ZMbrZBwVOWZUyPG6VFNscjYr/vjM3Vu4fRrCPbOs42AfemaQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.0.tgz", + "integrity": "sha512-3Emr5VOl/aoBwnWcH/EFQvlSAmjV+XtV9GGu5mwdYew5vhQh0IUZx/60x0TzHDu09Bi7HMx10t/namdJw5QIcg==", "dev": true, "dependencies": { - "jest-matcher-utils": "^28.0.0", - "pretty-format": "^28.0.0" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/expect-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", + "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "dev": true + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", + "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", + "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", + "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@types/jsdom": { @@ -4637,9 +4897,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", - "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", "devOptional": true }, "node_modules/@types/parse-json": { @@ -4694,9 +4954,9 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", "dev": true, "dependencies": { "@types/mime": "*", @@ -4770,19 +5030,19 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz", - "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.58.0.tgz", + "integrity": "sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/type-utils": "5.50.0", - "@typescript-eslint/utils": "5.50.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/type-utils": "5.58.0", + "@typescript-eslint/utils": "5.58.0", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", - "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" }, @@ -4804,13 +5064,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz", - "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.58.0.tgz", + "integrity": "sha512-FF5vP/SKAFJ+LmR9PENql7fQVVgGDOS+dq3j+cKl9iW/9VuZC/8CFmzIP0DLKXfWKpRHawJiG70rVH+xZZbp8w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.50.0", - "@typescript-eslint/utils": "5.50.0", + "@typescript-eslint/typescript-estree": "5.58.0", + "@typescript-eslint/utils": "5.58.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4831,18 +5091,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz", - "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.58.0.tgz", + "integrity": "sha512-gAmLOTFXMXOC+zP1fsqm3VceKSBQJNzV385Ok3+yzlavNHZoedajjS4UyS21gabJYcobuigQPs/z71A9MdJFqQ==", "dev": true, "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/typescript-estree": "5.50.0", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", "semver": "^7.3.7" }, "engines": { @@ -4879,14 +5139,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz", - "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.58.0.tgz", + "integrity": "sha512-ixaM3gRtlfrKzP8N6lRhBbjTow1t6ztfBvQNGuRM8qH1bjFFXIJ35XY+FC0RRBKn3C6cT+7VW1y8tNm7DwPHDQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.50.0", - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/typescript-estree": "5.50.0", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", "debug": "^4.3.4" }, "engines": { @@ -4906,13 +5166,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz", - "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.58.0.tgz", + "integrity": "sha512-b+w8ypN5CFvrXWQb9Ow9T4/6LC2MikNf1viLkYTiTbkQl46CnR69w7lajz1icW0TBsYmlpg+mRzFJ4LEJ8X9NA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/visitor-keys": "5.50.0" + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4923,13 +5183,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.1.tgz", - "integrity": "sha512-Hyr8HU8Alcuva1ppmqSYtM/Gp0q4JOp1F+/JH5D1IZm/bUBrV0edoewQZiEc1r6I8L4JL21broddxK8HAcZiqQ==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", + "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.1", - "@typescript-eslint/utils": "5.48.1", + "@typescript-eslint/typescript-estree": "5.48.2", + "@typescript-eslint/utils": "5.48.2", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4950,9 +5210,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.1.tgz", - "integrity": "sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", + "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4963,13 +5223,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz", - "integrity": "sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", + "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.1", - "@typescript-eslint/visitor-keys": "5.48.1", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4990,12 +5250,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz", - "integrity": "sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.1", + "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5007,9 +5267,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz", - "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.58.0.tgz", + "integrity": "sha512-JYV4eITHPzVQMnHZcYJXl2ZloC7thuUHrcUmxtzvItyKPvQ50kb9QXBkgNAt90OYMqwaodQh2kHutWZl1fc+1g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5020,13 +5280,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz", - "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.58.0.tgz", + "integrity": "sha512-cRACvGTodA+UxnYM2uwA2KCwRL7VAzo45syNysqlMyNyjw0Z35Icc9ihPJZjIYuA5bXJYiJ2YGUB59BqlOZT1Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.50.0", - "@typescript-eslint/visitor-keys": "5.50.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5047,16 +5307,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.1.tgz", - "integrity": "sha512-SmQuSrCGUOdmGMwivW14Z0Lj8dxG1mOFZ7soeJ0TQZEJcs3n5Ndgkg0A4bcMFzBELqLJ6GTHnEU+iIoaD6hFGA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", + "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.1", - "@typescript-eslint/types": "5.48.1", - "@typescript-eslint/typescript-estree": "5.48.1", + "@typescript-eslint/scope-manager": "5.48.2", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/typescript-estree": "5.48.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -5073,13 +5333,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.1.tgz", - "integrity": "sha512-S035ueRrbxRMKvSTv9vJKIWgr86BD8s3RqoRZmsSh/s8HhIs90g6UlK8ZabUSjUZQkhVxt7nmZ63VJ9dcZhtDQ==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", + "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.1", - "@typescript-eslint/visitor-keys": "5.48.1" + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5090,9 +5350,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.1.tgz", - "integrity": "sha512-xHyDLU6MSuEEdIlzrrAerCGS3T7AA/L8Hggd0RCYBi0w3JMvGYxlLlXHeg50JI9Tfg5MrtsfuNxbS/3zF1/ATg==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", + "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5103,13 +5363,13 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.1.tgz", - "integrity": "sha512-Hut+Osk5FYr+sgFh8J/FHjqX6HFcDzTlWLrFqGoK5kVUN3VBHF/QzZmAsIXCQ8T/W9nQNBTqalxi1P3LSqWnRA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", + "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.1", - "@typescript-eslint/visitor-keys": "5.48.1", + "@typescript-eslint/types": "5.48.2", + "@typescript-eslint/visitor-keys": "5.48.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5130,12 +5390,12 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.1.tgz", - "integrity": "sha512-Ns0XBwmfuX7ZknznfXozgnydyR8F6ev/KEGePP4i74uL3ArsKbEhJ7raeKr1JSa997DBDwol/4a0Y+At82c9dA==", + "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.1", + "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5169,12 +5429,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz", - "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==", + "version": "5.58.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.58.0.tgz", + "integrity": "sha512-/fBraTlPj0jwdyTwLyrRTxv/3lnU2H96pNTVM6z3esTWLtA5MZ9ghSMJ7Rb+TtUAdtEw9EyJzJ0EydIMKxQ9gA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/types": "5.58.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5788,12 +6048,27 @@ "optional": true }, "node_modules/axios": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", - "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.14.7" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, "node_modules/axobject-query": { @@ -6184,9 +6459,9 @@ } }, "node_modules/bonjour-service": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", - "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -6247,9 +6522,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "funding": [ { "type": "opencollective", @@ -6261,10 +6536,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" }, "bin": { "browserslist": "cli.js" @@ -6794,27 +7069,27 @@ "devOptional": true }, "node_modules/concurrently": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", - "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.0.1.tgz", + "integrity": "sha512-Sh8bGQMEL0TAmAm2meAXMjcASHZa7V0xXQVDBLknCPa9TPtkY9yYs+0cnGGgfdkW0SV1Mlg+hVGfXcoI8d3MJA==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.29.1", + "chalk": "^4.1.2", + "date-fns": "^2.29.3", "lodash": "^4.17.21", - "rxjs": "^7.0.0", - "shell-quote": "^1.7.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", + "rxjs": "^7.8.0", + "shell-quote": "^1.8.0", + "spawn-command": "0.0.2-1", + "supports-color": "^8.1.1", "tree-kill": "^1.2.2", - "yargs": "^17.3.1" + "yargs": "^17.7.1" }, "bin": { "conc": "dist/bin/concurrently.js", "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": "^12.20.0 || ^14.13.0 || >=16.0.0" + "node": "^14.13.0 || >=16.0.0" }, "funding": { "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" @@ -6905,6 +7180,24 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/concurrently/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", @@ -7270,9 +7563,9 @@ "dev": true }, "node_modules/cypress": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.9.0.tgz", - "integrity": "sha512-MjIWrRpc+bQM9U4kSSdATZWZ2hUqHGFEQTF7dfeZRa4MnalMtc88FIE49USWP2ZVtfy5WPBcgfBX+YorFqGElA==", + "version": "12.9.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-12.9.0.tgz", + "integrity": "sha512-Ofe09LbHKgSqX89Iy1xen2WvpgbvNxDzsWx3mgU1mfILouELeXYGwIib3ItCwoRrRifoQwcBFmY54Vs0zw7QCg==", "hasInstallScript": true, "optional": true, "dependencies": { @@ -7293,7 +7586,7 @@ "commander": "^5.1.0", "common-tags": "^1.8.0", "dayjs": "^1.10.4", - "debug": "^4.3.2", + "debug": "^4.3.4", "enquirer": "^2.3.6", "eventemitter2": "6.4.7", "execa": "4.1.0", @@ -7323,7 +7616,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": ">=12.0.0" + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" } }, "node_modules/cypress/node_modules/@types/node": { @@ -7720,9 +8013,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.5.0.tgz", + "integrity": "sha512-USawdAUzRkV6xrqTjiAEp6M9YagZEzWcSUaZTcIFAiyQWW1SoI6KyId8y2+/71wbgHKQAKd+iupLv4YvEwYWvA==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -7999,9 +8292,9 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", - "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.8.tgz", + "integrity": "sha512-g24ybC3fWhZddZK6R3uD2iF/RIPnRpwJAqLov6ouX3hMbY4+tKolP0VMF3zuIYCaXun+yHwS5IPQ91N2BT191g==", "dev": true, "hasInstallScript": true, "optional": true, @@ -8012,34 +8305,34 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.16.17", - "@esbuild/android-arm64": "0.16.17", - "@esbuild/android-x64": "0.16.17", - "@esbuild/darwin-arm64": "0.16.17", - "@esbuild/darwin-x64": "0.16.17", - "@esbuild/freebsd-arm64": "0.16.17", - "@esbuild/freebsd-x64": "0.16.17", - "@esbuild/linux-arm": "0.16.17", - "@esbuild/linux-arm64": "0.16.17", - "@esbuild/linux-ia32": "0.16.17", - "@esbuild/linux-loong64": "0.16.17", - "@esbuild/linux-mips64el": "0.16.17", - "@esbuild/linux-ppc64": "0.16.17", - "@esbuild/linux-riscv64": "0.16.17", - "@esbuild/linux-s390x": "0.16.17", - "@esbuild/linux-x64": "0.16.17", - "@esbuild/netbsd-x64": "0.16.17", - "@esbuild/openbsd-x64": "0.16.17", - "@esbuild/sunos-x64": "0.16.17", - "@esbuild/win32-arm64": "0.16.17", - "@esbuild/win32-ia32": "0.16.17", - "@esbuild/win32-x64": "0.16.17" + "@esbuild/android-arm": "0.17.8", + "@esbuild/android-arm64": "0.17.8", + "@esbuild/android-x64": "0.17.8", + "@esbuild/darwin-arm64": "0.17.8", + "@esbuild/darwin-x64": "0.17.8", + "@esbuild/freebsd-arm64": "0.17.8", + "@esbuild/freebsd-x64": "0.17.8", + "@esbuild/linux-arm": "0.17.8", + "@esbuild/linux-arm64": "0.17.8", + "@esbuild/linux-ia32": "0.17.8", + "@esbuild/linux-loong64": "0.17.8", + "@esbuild/linux-mips64el": "0.17.8", + "@esbuild/linux-ppc64": "0.17.8", + "@esbuild/linux-riscv64": "0.17.8", + "@esbuild/linux-s390x": "0.17.8", + "@esbuild/linux-x64": "0.17.8", + "@esbuild/netbsd-x64": "0.17.8", + "@esbuild/openbsd-x64": "0.17.8", + "@esbuild/sunos-x64": "0.17.8", + "@esbuild/win32-arm64": "0.17.8", + "@esbuild/win32-ia32": "0.17.8", + "@esbuild/win32-x64": "0.17.8" } }, "node_modules/esbuild-wasm": { - "version": "0.16.17", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.16.17.tgz", - "integrity": "sha512-Tn7NuMqRcM+T/qCOxbQRq0qrwWl1sUWp6ARfJRakE8Bepew6zata4qrKgH2YqovNC5e/2fcTa7o+VL/FAOZC1Q==", + "version": "0.17.8", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.17.8.tgz", + "integrity": "sha512-zCmpxv95E0FuCmvdw1K836UHnj4EdiQnFfjTby35y3LAjRPtXMj3sbHDRHjbD8Mqg5lTwq3knacr/1qIFU51CQ==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -8154,12 +8447,15 @@ } }, "node_modules/eslint": { - "version": "8.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", - "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.4.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -8170,10 +8466,9 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", @@ -8194,7 +8489,6 @@ "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" @@ -8250,12 +8544,15 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/ajv": { @@ -8466,14 +8763,14 @@ } }, "node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -8496,9 +8793,9 @@ } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -9220,10 +9517,9 @@ } }, "node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "devOptional": true, + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9259,7 +9555,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "devOptional": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -9268,7 +9563,6 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "devOptional": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9462,9 +9756,9 @@ } }, "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", "devOptional": true, "engines": { "node": ">=12" @@ -9489,9 +9783,9 @@ "dev": true }, "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -9736,12 +10030,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", - "integrity": "sha512-bTf9UWe/UP1yxG3QUrj/KOvEhTAUWPcv+WvbFZ28LcqznXabp7Xu6o9y1JEC18+oqODuS7VhTpekV5XvFwsxJg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", + "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", "devOptional": true, "dependencies": { - "minimatch": "^5.0.1" + "minimatch": "^6.1.6" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9757,15 +10051,18 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", + "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", "devOptional": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/image-size": { @@ -11176,18 +11473,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.4.1.tgz", - "integrity": "sha512-+KfYmRTl5CBHQst9hIz77TiiriHYvuWoLjMT855gx2AMxhHxpk1vtKvag1DQfyWCPVTWV/AG7SIqVh5WI1O/uw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz", + "integrity": "sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==", "dev": true, "dependencies": { - "@jest/environment": "^29.4.1", - "@jest/fake-timers": "^29.4.1", - "@jest/types": "^29.4.1", + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.4.1", - "jest-util": "^29.4.1", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0", "jsdom": "^20.0.0" }, "engines": { @@ -11203,41 +11500,41 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@jest/environment": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.4.1.tgz", - "integrity": "sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", + "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.4.1", - "@jest/types": "^29.4.1", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-mock": "^29.4.1" + "jest-mock": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom/node_modules/@jest/fake-timers": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.4.1.tgz", - "integrity": "sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", + "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", "dev": true, "dependencies": { - "@jest/types": "^29.4.1", + "@jest/types": "^29.5.0", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.4.1", - "jest-mock": "^29.4.1", - "jest-util": "^29.4.1" + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom/node_modules/@jest/schemas": { - "version": "29.4.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.0.tgz", - "integrity": "sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", + "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", "dev": true, "dependencies": { "@sinclair/typebox": "^0.25.16" @@ -11247,12 +11544,12 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@jest/types": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.4.1.tgz", - "integrity": "sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", + "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.0", + "@jest/schemas": "^29.4.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -11264,9 +11561,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/@sinclair/typebox": { - "version": "0.25.21", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.21.tgz", - "integrity": "sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==", + "version": "0.25.24", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", + "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", "dev": true }, "node_modules/jest-environment-jsdom/node_modules/@sinonjs/commons": { @@ -11346,18 +11643,18 @@ } }, "node_modules/jest-environment-jsdom/node_modules/jest-message-util": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.4.1.tgz", - "integrity": "sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", + "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.4.1", + "@jest/types": "^29.5.0", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.4.1", + "pretty-format": "^29.5.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -11366,26 +11663,26 @@ } }, "node_modules/jest-environment-jsdom/node_modules/jest-mock": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.4.1.tgz", - "integrity": "sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", + "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", "dev": true, "dependencies": { - "@jest/types": "^29.4.1", + "@jest/types": "^29.5.0", "@types/node": "*", - "jest-util": "^29.4.1" + "jest-util": "^29.5.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-jsdom/node_modules/jest-util": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.4.1.tgz", - "integrity": "sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", + "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", "dev": true, "dependencies": { - "@jest/types": "^29.4.1", + "@jest/types": "^29.5.0", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -11397,12 +11694,12 @@ } }, "node_modules/jest-environment-jsdom/node_modules/pretty-format": { - "version": "29.4.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.4.1.tgz", - "integrity": "sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", + "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", "dev": true, "dependencies": { - "@jest/schemas": "^29.4.0", + "@jest/schemas": "^29.4.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -13549,9 +13846,9 @@ } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", "devOptional": true, "engines": { "node": ">=12" @@ -13710,6 +14007,11 @@ "node": ">= 0.6" } }, + "node_modules/mime-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mime-names/-/mime-names-1.0.0.tgz", + "integrity": "sha512-vLNEfYU63fz34panv/L3Lh3eW3+v0BlOB+bSGFdntv/gBNnokCbSsaNuHR9vH/NS5oWbL0HqMQf/3we4fRJyIQ==" + }, "node_modules/mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", @@ -14117,9 +14419,9 @@ "dev": true }, "node_modules/ng2-pdf-viewer": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.3.tgz", - "integrity": "sha512-t2Gez92xPWPfY3qzzs+iLey5NUCYwJXIzv+dU4prY96aYdacsxuOpFjORW1+a330ryMkxYEJvEQ+mgbBJr77xw==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.1.5.tgz", + "integrity": "sha512-vg+ByLcAiV9aouj6XdZKsGfZljOP1IO2VGVEZtbqW83wKfFD3UzrplZH6fImIG3O7LVxH9jFZpHE7QnqmhrYtg==", "dependencies": { "pdfjs-dist": "~2.14.305", "tslib": "^2.3.1" @@ -14155,9 +14457,9 @@ } }, "node_modules/ngx-file-drop": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-14.0.2.tgz", - "integrity": "sha512-tIW+Ymd2IOjUQTqMb2NiuupeRPWwKe19kHmb13gf4Iw8rkvrO6PlqqZ3EqSGPIEJOmV836FZHpM4B1xXjVQLfA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/ngx-file-drop/-/ngx-file-drop-15.0.0.tgz", + "integrity": "sha512-P1BRa9w+l6CFCQFEHRaUcQy8DvrgwMnWZUWwndcXQ+Qqqa3BOXfrN26uDd+px9FD/P5OkKidhglI7VRX6qmLwg==", "dependencies": { "tslib": "^2.3.0" }, @@ -14171,9 +14473,9 @@ } }, "node_modules/ngx-ui-tour-core": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ngx-ui-tour-core/-/ngx-ui-tour-core-10.1.0.tgz", - "integrity": "sha512-fuVdvSj0N9nRTP88ZiAW6kK40hKOFgzTxmCB0dVCbXU9KZQZhaorY4GOvw0LRlePXDpp60Sl9+lCeY5jTz9m7Q==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/ngx-ui-tour-core/-/ngx-ui-tour-core-10.6.0.tgz", + "integrity": "sha512-L8M9aHQsWrxJhoUKssOXeCFvHJhpyfQ1AyNwmWGVG3ba1Dv05d0mSBQopvBreKfrJvUJD/E1pVAPjXwd6f9c7A==", "dependencies": { "tslib": "^2.0.0" }, @@ -14186,11 +14488,11 @@ } }, "node_modules/ngx-ui-tour-ng-bootstrap": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/ngx-ui-tour-ng-bootstrap/-/ngx-ui-tour-ng-bootstrap-12.1.0.tgz", - "integrity": "sha512-Ut45ExzyERDJKiWRDNXYTSVjnybtLMAjg7YA/SHuSbMAbEMHpz44nsbYTNKdi2tXW6uxCtMdeq3MMBZ3ONc7UQ==", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/ngx-ui-tour-ng-bootstrap/-/ngx-ui-tour-ng-bootstrap-12.6.0.tgz", + "integrity": "sha512-ItcIizFUk1EUB6ZH23HkK/Sp+asQyRDPPrJMIwUUqv1LKkdhkxaqizTytoSmoee2AigXAcdLJHeCYd7ivKd9Mg==", "dependencies": { - "ngx-ui-tour-core": "10.1.0", + "ngx-ui-tour-core": "10.6.0", "tslib": "^2.0.0" }, "peerDependencies": { @@ -14439,29 +14741,28 @@ } }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", "devOptional": true, "engines": { "node": ">=12" } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.2.tgz", - "integrity": "sha512-5n/Pq41w/uZghpdlXAY5kIM85RgJThtTH/NYBRAZ9VUOBWV90USaQjwGrw76fZP3Lj5hl/VZjpVvOaRBMoL/2w==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", "devOptional": true, "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.0", + "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", "minipass": "^4.0.0", - "minipass-collect": "^1.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -14639,9 +14940,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", "devOptional": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -14869,9 +15170,9 @@ } }, "node_modules/pacote": { - "version": "15.0.8", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.8.tgz", - "integrity": "sha512-UlcumB/XS6xyyIMwg/WwMAyUmga+RivB5KgkRwA1hZNtrx+0Bt41KxHCvg1kr0pZ/ZeD8qjhW4fph6VaYRCbLw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.1.0.tgz", + "integrity": "sha512-FFcjtIl+BQNfeliSm7MZz5cpdohvUV1yjGnqgVM4UnVF7JslRY0ImXAygdaCDV0jjUADEWu4y5xsDV8brtrTLg==", "devOptional": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -14889,6 +15190,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^6.0.0", "read-package-json-fast": "^3.0.0", + "sigstore": "^1.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -14951,13 +15253,41 @@ "dev": true }, "node_modules/parse5-html-rewriting-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", - "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, "dependencies": { - "parse5": "^6.0.1", - "parse5-sax-parser": "^6.0.1" + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5-htmlparser2-tree-adapter": { @@ -14970,12 +15300,39 @@ } }, "node_modules/parse5-sax-parser": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", - "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, "dependencies": { - "parse5": "^6.0.1" + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parse5-sax-parser/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parseurl": { @@ -15624,18 +15981,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", @@ -15938,9 +16283,9 @@ "devOptional": true }, "node_modules/sass": { - "version": "1.57.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", - "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", + "version": "1.58.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.1.tgz", + "integrity": "sha512-bnINi6nPXbP1XNRaranMFEBZWUfdW/AF16Ql5+ypRxfTvCRTTKrLsMIakyDcayUt2t/RZotmL4kgJwNH5xO+bg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -16299,6 +16644,74 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "devOptional": true }, + "node_modules/sigstore": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.0.0.tgz", + "integrity": "sha512-e+qfbn/zf1+rCza/BhIA//Awmf0v1pa5HQS8Xk8iXrn9bgytytVLqYD0P7NSqZ6IELTgq+tcDvLPkQjNHyWLNg==", + "devOptional": true, + "dependencies": { + "make-fetch-happen": "^11.0.1", + "tuf-js": "^1.0.0" + }, + "bin": { + "sigstore": "bin/sigstore.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/lru-cache": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", + "devOptional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/sigstore/node_modules/make-fetch-happen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "devOptional": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/sigstore/node_modules/minipass-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "devOptional": true, + "dependencies": { + "minipass": "^4.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -16863,9 +17276,9 @@ } }, "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "version": "5.16.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", + "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -17280,6 +17693,95 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/tuf-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.0.0.tgz", + "integrity": "sha512-1dxsQwESDzACJjTdYHQ4wJ1f/of7jALWKfJEHSBWUQB/5UTJUx9SW6GHXp4mZ1KvdBRJCpGjssoPFGi4hvw8/A==", + "devOptional": true, + "dependencies": { + "make-fetch-happen": "^11.0.1", + "minimatch": "^6.1.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/tuf-js/node_modules/lru-cache": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.1.tgz", + "integrity": "sha512-8/HcIENyQnfUTCDizRu9rrDyG6XG/21M4X7/YEGZeD76ZJilFPAUVb/2zysFf7VVO1LEjCDFyHp8pMMvozIrvg==", + "devOptional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/tuf-js/node_modules/make-fetch-happen": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", + "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "devOptional": true, + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^17.0.0", + "http-cache-semantics": "^4.1.1", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^4.0.0", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/tuf-js/node_modules/minimatch": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", + "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tuf-js/node_modules/minipass-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "devOptional": true, + "dependencies": { + "minipass": "^4.0.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -17351,9 +17853,9 @@ "dev": true }, "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17608,22 +18110,22 @@ } }, "node_modules/wait-on": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", - "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz", + "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==", "dev": true, "dependencies": { - "axios": "^0.25.0", - "joi": "^17.6.0", + "axios": "^0.27.2", + "joi": "^17.7.0", "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.5.4" + "minimist": "^1.2.7", + "rxjs": "^7.8.0" }, "bin": { "wait-on": "bin/wait-on" }, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" } }, "node_modules/walker": { @@ -17684,9 +18186,9 @@ } }, "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.76.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", + "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -18283,9 +18785,9 @@ } }, "node_modules/zone.js": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.8.tgz", - "integrity": "sha512-82bctBg2hKcEJ21humWIkXRlLBBmrc3nN7DFh5LGGhcyycO2S7FN8NmdvlcKaGFDNVL4/9kFLmwmInTavdJERA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.13.0.tgz", + "integrity": "sha512-7m3hNNyswsdoDobCkYNAy5WiUulkMd3+fWaGT9ij6iq3Zr/IwJo4RMCYPSDjT+r7tnPErmY9sZpKhWQ8S5k6XQ==", "dependencies": { "tslib": "^2.3.0" } diff --git a/src-ui/package.json b/src-ui/package.json index c12a93394..a156d63a3 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -13,55 +13,56 @@ }, "private": true, "dependencies": { - "@angular/common": "~15.1.2", - "@angular/compiler": "~15.1.2", - "@angular/core": "~15.1.2", - "@angular/forms": "~15.1.2", - "@angular/localize": "~15.1.2", - "@angular/platform-browser": "~15.1.2", - "@angular/platform-browser-dynamic": "~15.1.2", - "@angular/router": "~15.1.2", - "@ng-bootstrap/ng-bootstrap": "^14.0.1", - "@ng-select/ng-select": "^10.0.1", + "@angular/common": "~15.2.7", + "@angular/compiler": "~15.2.7", + "@angular/core": "~15.2.7", + "@angular/forms": "~15.2.7", + "@angular/localize": "~15.2.7", + "@angular/platform-browser": "~15.2.7", + "@angular/platform-browser-dynamic": "~15.2.7", + "@angular/router": "~15.2.7", + "@ng-bootstrap/ng-bootstrap": "^14.1.0", + "@ng-select/ng-select": "^10.0.4", "@ngneat/dirty-check-forms": "^3.0.3", - "@popperjs/core": "^2.11.6", + "@popperjs/core": "^2.11.7", "bootstrap": "^5.2.3", "file-saver": "^2.0.5", - "ng2-pdf-viewer": "^9.1.2", + "mime-names": "^1.0.0", + "ng2-pdf-viewer": "^9.1.5", "ngx-color": "^8.0.3", "ngx-cookie-service": "^15.0.0", - "ngx-file-drop": "^14.0.2", - "ngx-ui-tour-ng-bootstrap": "^12.0.0", + "ngx-file-drop": "^15.0.0", + "ngx-ui-tour-ng-bootstrap": "^12.6.0", "rxjs": "^7.8.0", "tslib": "^2.4.1", "uuid": "^9.0.0", - "zone.js": "~0.11.8" + "zone.js": "^0.13.0" }, "devDependencies": { "@angular-builders/jest": "15.0.0", - "@angular-devkit/build-angular": "~15.1.4", - "@angular-eslint/builder": "15.2.0", - "@angular-eslint/eslint-plugin": "15.2.0", - "@angular-eslint/eslint-plugin-template": "15.2.0", - "@angular-eslint/schematics": "15.2.0", - "@angular-eslint/template-parser": "15.2.0", - "@angular/cli": "~15.1.4", - "@angular/compiler-cli": "~15.1.2", - "@types/jest": "28.1.6", - "@types/node": "^18.7.23", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.50.0", - "concurrently": "7.4.0", - "eslint": "^8.31.0", + "@angular-devkit/build-angular": "~15.2.6", + "@angular-eslint/builder": "15.2.1", + "@angular-eslint/eslint-plugin": "15.2.1", + "@angular-eslint/eslint-plugin-template": "15.2.1", + "@angular-eslint/schematics": "15.2.1", + "@angular-eslint/template-parser": "15.2.1", + "@angular/cli": "~15.2.6", + "@angular/compiler-cli": "~15.2.7", + "@types/jest": "^29.5.0", + "@types/node": "^18.15.11", + "@typescript-eslint/eslint-plugin": "^5.58.0", + "@typescript-eslint/parser": "^5.58.0", + "concurrently": "^8.0.1", + "eslint": "^8.38.0", "jest": "28.1.3", - "jest-environment-jsdom": "^29.2.2", - "jest-preset-angular": "^12.2.3", + "jest-environment-jsdom": "^29.5.0", + "jest-preset-angular": "^12.2.6", "ts-node": "~10.9.1", - "typescript": "~4.8.4", - "wait-on": "~6.0.1" + "typescript": "~4.9.5", + "wait-on": "^7.0.1" }, "optionalDependencies": { "@cypress/schematic": "^2.1.1", - "cypress": "~10.9.0" + "cypress": "^12.9.0" } } diff --git a/src-ui/src/app/app-routing.module.ts b/src-ui/src/app/app-routing.module.ts index a3da2894c..4d12ee4f3 100644 --- a/src-ui/src/app/app-routing.module.ts +++ b/src-ui/src/app/app-routing.module.ts @@ -14,8 +14,13 @@ import { DocumentAsnComponent } from './components/document-asn/document-asn.com import { DirtyFormGuard } from './guards/dirty-form.guard' import { StoragePathListComponent } from './components/manage/storage-path-list/storage-path-list.component' import { TasksComponent } from './components/manage/tasks/tasks.component' +import { PermissionsGuard } from './guards/permissions.guard' import { DirtyDocGuard } from './guards/dirty-doc.guard' import { DirtySavedViewGuard } from './guards/dirty-saved-view.guard' +import { + PermissionAction, + PermissionType, +} from './services/permissions.service' const routes: Routes = [ { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, @@ -29,28 +34,153 @@ const routes: Routes = [ path: 'documents', component: DocumentListComponent, canDeactivate: [DirtySavedViewGuard], + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Document, + }, + }, }, { path: 'view/:id', component: DocumentListComponent, canDeactivate: [DirtySavedViewGuard], + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.SavedView, + }, + }, + }, + { + path: 'documents/:id', + component: DocumentDetailComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Document, + }, + }, + }, + { + path: 'documents/:id/:section', + component: DocumentDetailComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Document, + }, + }, + }, + { + path: 'asn/:id', + component: DocumentAsnComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Document, + }, + }, + }, + { + path: 'tags', + component: TagListComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Tag, + }, + }, + }, + { + path: 'documenttypes', + component: DocumentTypeListComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.DocumentType, + }, + }, + }, + { + path: 'correspondents', + component: CorrespondentListComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Correspondent, + }, + }, + }, + { + path: 'storagepaths', + component: StoragePathListComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.StoragePath, + }, + }, + }, + { + path: 'logs', + component: LogsComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.Admin, + }, + }, }, - { path: 'documents/:id', component: DocumentDetailComponent }, - { path: 'asn/:id', component: DocumentAsnComponent }, - { path: 'tags', component: TagListComponent }, - { path: 'documenttypes', component: DocumentTypeListComponent }, - { path: 'correspondents', component: CorrespondentListComponent }, - { path: 'storagepaths', component: StoragePathListComponent }, - { path: 'logs', component: LogsComponent }, { path: 'settings', component: SettingsComponent, canDeactivate: [DirtyFormGuard], + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.UISettings, + }, + }, }, { path: 'settings/:section', component: SettingsComponent, canDeactivate: [DirtyFormGuard], + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.UISettings, + }, + }, + }, + { + path: 'settings/:section', + component: SettingsComponent, + canDeactivate: [DirtyFormGuard], + }, + { + path: 'tasks', + component: TasksComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.View, + type: PermissionType.PaperlessTask, + }, + }, }, { path: 'tasks', component: TasksComponent }, ], diff --git a/src-ui/src/app/app.component.ts b/src-ui/src/app/app.component.ts index 9a6962ccf..e22098496 100644 --- a/src-ui/src/app/app.component.ts +++ b/src-ui/src/app/app.component.ts @@ -9,6 +9,11 @@ import { NgxFileDropEntry } from 'ngx-file-drop' import { UploadDocumentsService } from './services/upload-documents.service' import { TasksService } from './services/tasks.service' import { TourService } from 'ngx-ui-tour-ng-bootstrap' +import { + PermissionAction, + PermissionsService, + PermissionType, +} from './services/permissions.service' @Component({ selector: 'app-root', @@ -32,7 +37,8 @@ export class AppComponent implements OnInit, OnDestroy { private uploadDocumentsService: UploadDocumentsService, private tasksService: TasksService, public tourService: TourService, - private renderer: Renderer2 + private renderer: Renderer2, + private permissionsService: PermissionsService ) { let anyWindow = window as any anyWindow.pdfWorkerSrc = 'assets/js/pdf.worker.min.js' @@ -74,15 +80,28 @@ export class AppComponent implements OnInit, OnDestroy { if ( this.showNotification(SETTINGS_KEYS.NOTIFICATIONS_CONSUMER_SUCCESS) ) { - this.toastService.show({ - title: $localize`Document added`, - delay: 10000, - content: $localize`Document ${status.filename} was added to paperless.`, - actionName: $localize`Open document`, - action: () => { - this.router.navigate(['documents', status.documentId]) - }, - }) + if ( + this.permissionsService.currentUserCan( + PermissionAction.View, + PermissionType.Document + ) + ) { + this.toastService.show({ + title: $localize`Document added`, + delay: 10000, + content: $localize`Document ${status.filename} was added to paperless.`, + actionName: $localize`Open document`, + action: () => { + this.router.navigate(['documents', status.documentId]) + }, + }) + } else { + this.toastService.show({ + title: $localize`Document added`, + delay: 10000, + content: $localize`Document ${status.filename} was added to paperless.`, + }) + } } }) @@ -136,6 +155,7 @@ export class AppComponent implements OnInit, OnDestroy { content: $localize`Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms.`, route: '/dashboard', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -148,6 +168,7 @@ export class AppComponent implements OnInit, OnDestroy { placement: 'bottom', enableBackdrop: true, disableScrollToAnchor: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -158,6 +179,7 @@ export class AppComponent implements OnInit, OnDestroy { route: '/documents?sort=created&reverse=1&page=1', placement: 'bottom', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -167,6 +189,7 @@ export class AppComponent implements OnInit, OnDestroy { content: $localize`Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar.`, route: '/documents?sort=created&reverse=1&page=1', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -176,6 +199,7 @@ export class AppComponent implements OnInit, OnDestroy { content: $localize`Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view.`, route: '/tags', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -185,6 +209,7 @@ export class AppComponent implements OnInit, OnDestroy { content: $localize`File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.`, route: '/tasks', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -194,6 +219,7 @@ export class AppComponent implements OnInit, OnDestroy { content: $localize`Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking.`, route: '/settings', enableBackdrop: true, + isOptional: true, prevBtnTitle, nextBtnTitle, endBtnTitle, @@ -225,7 +251,13 @@ export class AppComponent implements OnInit, OnDestroy { } public get dragDropEnabled(): boolean { - return !this.router.url.includes('dashboard') + return ( + !this.router.url.includes('dashboard') && + this.permissionsService.currentUserCan( + PermissionAction.Add, + PermissionType.Document + ) + ) } public fileOver() { diff --git a/src-ui/src/app/app.module.ts b/src-ui/src/app/app.module.ts index 16924729e..51204ad7e 100644 --- a/src-ui/src/app/app.module.ts +++ b/src-ui/src/app/app.module.ts @@ -42,6 +42,7 @@ import { CheckComponent } from './components/common/input/check/check.component' import { PasswordComponent } from './components/common/input/password/password.component' import { SaveViewConfigDialogComponent } from './components/document-list/save-view-config-dialog/save-view-config-dialog.component' import { TagsComponent } from './components/common/input/tags/tags.component' +import { IfPermissionsDirective } from './directives/if-permissions.directive' import { SortableDirective } from './directives/sortable.directive' import { CookieService } from 'ngx-cookie-service' import { CsrfInterceptor } from './interceptors/csrf.interceptor' @@ -69,7 +70,8 @@ import { ApiVersionInterceptor } from './interceptors/api-version.interceptor' import { ColorSliderModule } from 'ngx-color/slider' import { ColorComponent } from './components/common/input/color/color.component' import { DocumentAsnComponent } from './components/document-asn/document-asn.component' -import { DocumentCommentsComponent } from './components/document-comments/document-comments.component' +import { DocumentNotesComponent } from './components/document-notes/document-notes.component' +import { PermissionsGuard } from './guards/permissions.guard' import { DirtyDocGuard } from './guards/dirty-doc.guard' import { DirtySavedViewGuard } from './guards/dirty-saved-view.guard' import { StoragePathListComponent } from './components/manage/storage-path-list/storage-path-list.component' @@ -77,11 +79,19 @@ import { StoragePathEditDialogComponent } from './components/common/edit-dialog/ import { SettingsService } from './services/settings.service' import { TasksComponent } from './components/manage/tasks/tasks.component' import { TourNgBootstrapModule } from 'ngx-ui-tour-ng-bootstrap' +import { UserEditDialogComponent } from './components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component' +import { GroupEditDialogComponent } from './components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component' +import { PermissionsSelectComponent } from './components/common/permissions-select/permissions-select.component' import { MailAccountEditDialogComponent } from './components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component' import { MailRuleEditDialogComponent } from './components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component' +import { PermissionsUserComponent } from './components/common/input/permissions/permissions-user/permissions-user.component' +import { PermissionsGroupComponent } from './components/common/input/permissions/permissions-group/permissions-group.component' +import { IfOwnerDirective } from './directives/if-owner.directive' +import { IfObjectPermissionsDirective } from './directives/if-object-permissions.directive' import localeAr from '@angular/common/locales/ar' import localeBe from '@angular/common/locales/be' +import localeCa from '@angular/common/locales/ca' import localeCs from '@angular/common/locales/cs' import localeDa from '@angular/common/locales/da' import localeDe from '@angular/common/locales/de' @@ -100,9 +110,12 @@ import localeSr from '@angular/common/locales/sr' import localeSv from '@angular/common/locales/sv' import localeTr from '@angular/common/locales/tr' import localeZh from '@angular/common/locales/zh' +import { PermissionsDialogComponent } from './components/common/permissions-dialog/permissions-dialog.component' +import { PermissionsFormComponent } from './components/common/input/permissions/permissions-form/permissions-form.component' registerLocaleData(localeAr) registerLocaleData(localeBe) +registerLocaleData(localeCa) registerLocaleData(localeCs) registerLocaleData(localeDa) registerLocaleData(localeDe) @@ -165,6 +178,7 @@ function initializeApp(settings: SettingsService) { PasswordComponent, SaveViewConfigDialogComponent, TagsComponent, + IfPermissionsDirective, SortableDirective, SavedViewWidgetComponent, StatisticsWidgetComponent, @@ -184,10 +198,19 @@ function initializeApp(settings: SettingsService) { DateComponent, ColorComponent, DocumentAsnComponent, - DocumentCommentsComponent, + DocumentNotesComponent, TasksComponent, + UserEditDialogComponent, + GroupEditDialogComponent, + PermissionsSelectComponent, MailAccountEditDialogComponent, MailRuleEditDialogComponent, + PermissionsUserComponent, + PermissionsGroupComponent, + IfOwnerDirective, + IfObjectPermissionsDirective, + PermissionsDialogComponent, + PermissionsFormComponent, ], imports: [ BrowserModule, @@ -225,6 +248,7 @@ function initializeApp(settings: SettingsService) { DocumentTitlePipe, { provide: NgbDateAdapter, useClass: ISODateAdapter }, { provide: NgbDateParserFormatter, useClass: LocalizedDateParserFormatter }, + PermissionsGuard, DirtyDocGuard, DirtySavedViewGuard, ], diff --git a/src-ui/src/app/components/app-frame/app-frame.component.html b/src-ui/src/app/components/app-frame/app-frame.component.html index 5115303d7..90e75be58 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.html +++ b/src-ui/src/app/components/app-frame/app-frame.component.html @@ -10,7 +10,7 @@ Paperless-ngx -
+
@@ -39,7 +39,7 @@

Logged in as {{this.settingsService.displayName}}

- + Settings @@ -72,7 +72,7 @@  Dashboard - +
+ + +
- - - - - +
- + diff --git a/src-ui/src/app/components/manage/settings/settings.component.ts b/src-ui/src/app/components/manage/settings/settings.component.ts index e1575a831..d795d7f0e 100644 --- a/src-ui/src/app/components/manage/settings/settings.component.ts +++ b/src-ui/src/app/components/manage/settings/settings.component.ts @@ -29,15 +29,21 @@ import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings' import { ActivatedRoute, Router } from '@angular/router' import { ViewportScroller } from '@angular/common' import { TourService } from 'ngx-ui-tour-ng-bootstrap' +import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component' +import { NgbModal, NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap' +import { UserService } from 'src/app/services/rest/user.service' +import { GroupService } from 'src/app/services/rest/group.service' +import { PaperlessUser } from 'src/app/data/paperless-user' +import { PaperlessGroup } from 'src/app/data/paperless-group' +import { UserEditDialogComponent } from '../../common/edit-dialog/user-edit-dialog/user-edit-dialog.component' +import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component' +import { GroupEditDialogComponent } from '../../common/edit-dialog/group-edit-dialog/group-edit-dialog.component' import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account' import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule' import { MailAccountService } from 'src/app/services/rest/mail-account.service' import { MailRuleService } from 'src/app/services/rest/mail-rule.service' -import { NgbModal } from '@ng-bootstrap/ng-bootstrap' import { MailAccountEditDialogComponent } from '../../common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component' import { MailRuleEditDialogComponent } from '../../common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component' -import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component' -import { NgbNavChangeEvent } from '@ng-bootstrap/ng-bootstrap' enum SettingsNavIDs { General = 1, @@ -53,12 +59,15 @@ enum SettingsNavIDs { styleUrls: ['./settings.component.scss'], }) export class SettingsComponent + extends ComponentWithPermissions implements OnInit, AfterViewInit, OnDestroy, DirtyComponent { SettingsNavIDs = SettingsNavIDs activeNavID: number savedViewGroup = new FormGroup({}) + usersGroup = new FormGroup({}) + groupsGroup = new FormGroup({}) mailAccountGroup = new FormGroup({}) mailRuleGroup = new FormGroup({}) @@ -76,13 +85,15 @@ export class SettingsComponent displayLanguage: new FormControl(null), dateLocale: new FormControl(null), dateFormat: new FormControl(null), - commentsEnabled: new FormControl(null), + notesEnabled: new FormControl(null), updateCheckingEnabled: new FormControl(null), notificationsConsumerNewDocument: new FormControl(null), notificationsConsumerSuccess: new FormControl(null), notificationsConsumerFailed: new FormControl(null), notificationsConsumerSuppressOnDashboard: new FormControl(null), + usersGroup: this.usersGroup, + groupsGroup: this.groupsGroup, savedViewsWarnOnUnsavedChange: new FormControl(null), savedViews: this.savedViewGroup, @@ -103,6 +114,9 @@ export class SettingsComponent unsubscribeNotifier: Subject = new Subject() savePending: boolean = false + users: PaperlessUser[] + groups: PaperlessGroup[] + get computedDateLocale(): string { return ( this.settingsForm.value.dateLocale || @@ -121,10 +135,13 @@ export class SettingsComponent @Inject(LOCALE_ID) public currentLocale: string, private viewportScroller: ViewportScroller, private activatedRoute: ActivatedRoute, - private router: Router, public readonly tourService: TourService, + private usersService: UserService, + private groupsService: GroupService, + private router: Router, private modalService: NgbModal ) { + super() this.settings.settingsSaved.subscribe(() => { if (!this.savePending) this.initialize() }) @@ -179,7 +196,7 @@ export class SettingsComponent displayLanguage: this.settings.getLanguage(), dateLocale: this.settings.get(SETTINGS_KEYS.DATE_LOCALE), dateFormat: this.settings.get(SETTINGS_KEYS.DATE_FORMAT), - commentsEnabled: this.settings.get(SETTINGS_KEYS.COMMENTS_ENABLED), + notesEnabled: this.settings.get(SETTINGS_KEYS.NOTES_ENABLED), updateCheckingEnabled: this.settings.get( SETTINGS_KEYS.UPDATE_CHECKING_ENABLED ), @@ -198,6 +215,8 @@ export class SettingsComponent savedViewsWarnOnUnsavedChange: this.settings.get( SETTINGS_KEYS.SAVED_VIEWS_WARN_ON_UNSAVED_CHANGE ), + usersGroup: {}, + groupsGroup: {}, savedViews: {}, mailAccounts: {}, mailRules: {}, @@ -229,6 +248,17 @@ export class SettingsComponent this.savedViews = r.results this.initialize(false) }) + } else if ( + navID == SettingsNavIDs.UsersGroups && + (!this.users || !this.groups) + ) { + this.usersService.listAll().subscribe((r) => { + this.users = r.results + this.groupsService.listAll().subscribe((r) => { + this.groups = r.results + this.initialize(false) + }) + }) } else if ( navID == SettingsNavIDs.Mail && (!this.mailAccounts || !this.mailRules) @@ -252,6 +282,8 @@ export class SettingsComponent let storeData = this.getCurrentSettings() if (this.savedViews) { + this.emptyGroup(this.savedViewGroup) + for (let view of this.savedViews) { storeData.savedViews[view.id.toString()] = { id: view.id, @@ -271,7 +303,57 @@ export class SettingsComponent } } + if (this.users && this.groups) { + this.emptyGroup(this.usersGroup) + this.emptyGroup(this.groupsGroup) + + for (let user of this.users) { + storeData.usersGroup[user.id.toString()] = { + id: user.id, + username: user.username, + first_name: user.first_name, + last_name: user.last_name, + is_active: user.is_active, + is_superuser: user.is_superuser, + groups: user.groups, + user_permissions: user.user_permissions, + } + this.usersGroup.addControl( + user.id.toString(), + new FormGroup({ + id: new FormControl(null), + username: new FormControl(null), + first_name: new FormControl(null), + last_name: new FormControl(null), + is_active: new FormControl(null), + is_superuser: new FormControl(null), + groups: new FormControl(null), + user_permissions: new FormControl(null), + }) + ) + } + + for (let group of this.groups) { + storeData.groupsGroup[group.id.toString()] = { + id: group.id, + name: group.name, + permissions: group.permissions, + } + this.groupsGroup.addControl( + group.id.toString(), + new FormGroup({ + id: new FormControl(null), + name: new FormControl(null), + permissions: new FormControl(null), + }) + ) + } + } + if (this.mailAccounts && this.mailRules) { + this.emptyGroup(this.mailAccountGroup) + this.emptyGroup(this.mailRuleGroup) + for (let account of this.mailAccounts) { storeData.mailAccounts[account.id.toString()] = { id: account.id, @@ -304,6 +386,7 @@ export class SettingsComponent account: rule.account, folder: rule.folder, filter_from: rule.filter_from, + filter_to: rule.filter_to, filter_subject: rule.filter_subject, filter_body: rule.filter_body, filter_attachment_filename: rule.filter_attachment_filename, @@ -324,6 +407,7 @@ export class SettingsComponent account: new FormControl(null), folder: new FormControl(null), filter_from: new FormControl(null), + filter_to: new FormControl(null), filter_subject: new FormControl(null), filter_body: new FormControl(null), filter_attachment_filename: new FormControl(null), @@ -374,6 +458,10 @@ export class SettingsComponent } } + private emptyGroup(group: FormGroup) { + Object.keys(group.controls).forEach((key) => group.removeControl(key)) + } + ngOnDestroy() { if (this.isDirty) this.settings.updateAppearanceSettings() // in case user changed appearance but didnt save this.storeSub && this.storeSub.unsubscribe() @@ -386,6 +474,11 @@ export class SettingsComponent this.toastService.showInfo( $localize`Saved view "${savedView.name}" deleted.` ) + this.savedViewService.clearCache() + this.savedViewService.listAll().subscribe((r) => { + this.savedViews = r.results + this.initialize(true) + }) }) } @@ -459,8 +552,8 @@ export class SettingsComponent this.settingsForm.value.notificationsConsumerSuppressOnDashboard ) this.settings.set( - SETTINGS_KEYS.COMMENTS_ENABLED, - this.settingsForm.value.commentsEnabled + SETTINGS_KEYS.NOTES_ENABLED, + this.settingsForm.value.notesEnabled ) this.settings.set( SETTINGS_KEYS.UPDATE_CHECKING_ENABLED, @@ -483,7 +576,7 @@ export class SettingsComponent let savedToast: Toast = { title: $localize`Settings saved`, content: $localize`Settings were saved successfully.`, - delay: 500000, + delay: 5000, } if (reloadRequired) { ;(savedToast.content = $localize`Settings were saved successfully. Reload is required to apply some changes.`), @@ -547,6 +640,132 @@ export class SettingsComponent this.settingsForm.get('themeColor').patchValue('') } + editUser(user: PaperlessUser) { + var modal = this.modalService.open(UserEditDialogComponent, { + backdrop: 'static', + size: 'xl', + }) + modal.componentInstance.dialogMode = user ? 'edit' : 'create' + modal.componentInstance.object = user + modal.componentInstance.succeeded + .pipe(takeUntil(this.unsubscribeNotifier)) + .subscribe({ + next: (newUser: PaperlessUser) => { + if ( + newUser.id === this.settings.currentUser.id && + (modal.componentInstance as UserEditDialogComponent).passwordIsSet + ) { + this.toastService.showInfo( + $localize`Password has been changed, you will be logged out momentarily.` + ) + setTimeout(() => { + window.location.href = `${window.location.origin}/accounts/logout/?next=/accounts/login/` + }, 2500) + } else { + this.toastService.showInfo( + $localize`Saved user "${newUser.username}".` + ) + this.usersService.listAll().subscribe((r) => { + this.users = r.results + this.initialize() + }) + } + }, + error: (e) => { + this.toastService.showError( + $localize`Error saving user: ${e.toString()}.` + ) + }, + }) + } + + deleteUser(user: PaperlessUser) { + let modal = this.modalService.open(ConfirmDialogComponent, { + backdrop: 'static', + }) + modal.componentInstance.title = $localize`Confirm delete user account` + modal.componentInstance.messageBold = $localize`This operation will permanently delete this user account.` + modal.componentInstance.message = $localize`This operation cannot be undone.` + modal.componentInstance.btnClass = 'btn-danger' + modal.componentInstance.btnCaption = $localize`Proceed` + modal.componentInstance.confirmClicked.subscribe(() => { + modal.componentInstance.buttonsEnabled = false + this.usersService.delete(user).subscribe({ + next: () => { + modal.close() + this.toastService.showInfo($localize`Deleted user`) + this.usersService.listAll().subscribe((r) => { + this.users = r.results + this.initialize(true) + }) + }, + error: (e) => { + this.toastService.showError( + $localize`Error deleting user: ${e.toString()}.` + ) + }, + }) + }) + } + + editGroup(group: PaperlessGroup) { + var modal = this.modalService.open(GroupEditDialogComponent, { + backdrop: 'static', + size: 'lg', + }) + modal.componentInstance.dialogMode = group ? 'edit' : 'create' + modal.componentInstance.object = group + modal.componentInstance.succeeded + .pipe(takeUntil(this.unsubscribeNotifier)) + .subscribe({ + next: (newGroup) => { + this.toastService.showInfo($localize`Saved group "${newGroup.name}".`) + this.groupsService.listAll().subscribe((r) => { + this.groups = r.results + this.initialize() + }) + }, + error: (e) => { + this.toastService.showError( + $localize`Error saving group: ${e.toString()}.` + ) + }, + }) + } + + deleteGroup(group: PaperlessGroup) { + let modal = this.modalService.open(ConfirmDialogComponent, { + backdrop: 'static', + }) + modal.componentInstance.title = $localize`Confirm delete user group` + modal.componentInstance.messageBold = $localize`This operation will permanently delete this user group.` + modal.componentInstance.message = $localize`This operation cannot be undone.` + modal.componentInstance.btnClass = 'btn-danger' + modal.componentInstance.btnCaption = $localize`Proceed` + modal.componentInstance.confirmClicked.subscribe(() => { + modal.componentInstance.buttonsEnabled = false + this.groupsService.delete(group).subscribe({ + next: () => { + modal.close() + this.toastService.showInfo($localize`Deleted group`) + this.groupsService.listAll().subscribe((r) => { + this.groups = r.results + this.initialize(true) + }) + }, + error: (e) => { + this.toastService.showError( + $localize`Error deleting group: ${e.toString()}.` + ) + }, + }) + }) + } + + getGroupName(id: number): string { + return this.groups?.find((g) => g.id === id)?.name ?? '' + } + editMailAccount(account: PaperlessMailAccount) { const modal = this.modalService.open(MailAccountEditDialogComponent, { backdrop: 'static', @@ -593,7 +812,7 @@ export class SettingsComponent this.mailAccountService.clearCache() this.mailAccountService.listAll().subscribe((r) => { this.mailAccounts = r.results - this.initialize() + this.initialize(true) }) }, error: (e) => { @@ -623,7 +842,7 @@ export class SettingsComponent this.mailRuleService.listAll().subscribe((r) => { this.mailRules = r.results - this.initialize() + this.initialize(true) }) }, error: (e) => { @@ -652,7 +871,7 @@ export class SettingsComponent this.mailRuleService.clearCache() this.mailRuleService.listAll().subscribe((r) => { this.mailRules = r.results - this.initialize() + this.initialize(true) }) }, error: (e) => { diff --git a/src-ui/src/app/components/manage/storage-path-list/storage-path-list.component.ts b/src-ui/src/app/components/manage/storage-path-list/storage-path-list.component.ts index 1d7b726a0..043a9ad41 100644 --- a/src-ui/src/app/components/manage/storage-path-list/storage-path-list.component.ts +++ b/src-ui/src/app/components/manage/storage-path-list/storage-path-list.component.ts @@ -1,8 +1,12 @@ import { Component } from '@angular/core' import { NgbModal } from '@ng-bootstrap/ng-bootstrap' -import { FILTER_STORAGE_PATH } from 'src/app/data/filter-rule-type' +import { FILTER_HAS_STORAGE_PATH_ANY } from 'src/app/data/filter-rule-type' import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path' import { DocumentListViewService } from 'src/app/services/document-list-view.service' +import { + PermissionsService, + PermissionType, +} from 'src/app/services/permissions.service' import { StoragePathService } from 'src/app/services/rest/storage-path.service' import { ToastService } from 'src/app/services/toast.service' import { StoragePathEditDialogComponent } from '../../common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component' @@ -18,7 +22,8 @@ export class StoragePathListComponent extends ManagementListComponent { tagService: TagService, modalService: NgbModal, toastService: ToastService, - documentListViewService: DocumentListViewService + documentListViewService: DocumentListViewService, + permissionsService: PermissionsService ) { super( tagService, @@ -26,9 +31,11 @@ export class TagListComponent extends ManagementListComponent { TagEditDialogComponent, toastService, documentListViewService, + permissionsService, FILTER_HAS_TAGS_ALL, $localize`tag`, $localize`tags`, + PermissionType.Tag, [ { key: 'color', diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.html b/src-ui/src/app/components/manage/tasks/tasks.component.html index f6b09333d..4ffc5e672 100644 --- a/src-ui/src/app/components/manage/tasks/tasks.component.html +++ b/src-ui/src/app/components/manage/tasks/tasks.component.html @@ -5,7 +5,7 @@  Clear selection - - + + + diff --git a/src-ui/src/app/components/manage/tasks/tasks.component.ts b/src-ui/src/app/components/manage/tasks/tasks.component.ts index a2601dd8b..ab6d3015e 100644 --- a/src-ui/src/app/components/manage/tasks/tasks.component.ts +++ b/src-ui/src/app/components/manage/tasks/tasks.component.ts @@ -5,13 +5,17 @@ import { Subject, first } from 'rxjs' import { PaperlessTask } from 'src/app/data/paperless-task' import { TasksService } from 'src/app/services/tasks.service' import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component' +import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component' @Component({ selector: 'app-tasks', templateUrl: './tasks.component.html', styleUrls: ['./tasks.component.scss'], }) -export class TasksComponent implements OnInit, OnDestroy { +export class TasksComponent + extends ComponentWithPermissions + implements OnInit, OnDestroy +{ public activeTab: string public selectedTasks: Set = new Set() private unsubscribeNotifer = new Subject() @@ -27,7 +31,9 @@ export class TasksComponent implements OnInit, OnDestroy { public tasksService: TasksService, private modalService: NgbModal, private readonly router: Router - ) {} + ) { + super() + } ngOnInit() { this.tasksService.reload() diff --git a/src-ui/src/app/components/with-permissions/with-permissions.component.ts b/src-ui/src/app/components/with-permissions/with-permissions.component.ts new file mode 100644 index 000000000..db8071a8e --- /dev/null +++ b/src-ui/src/app/components/with-permissions/with-permissions.component.ts @@ -0,0 +1,9 @@ +import { + PermissionAction, + PermissionType, +} from 'src/app/services/permissions.service' + +export class ComponentWithPermissions { + public readonly PermissionAction = PermissionAction + public readonly PermissionType = PermissionType +} diff --git a/src-ui/src/app/data/filter-rule-type.ts b/src-ui/src/app/data/filter-rule-type.ts index 3c115e772..50b80b13b 100644 --- a/src-ui/src/app/data/filter-rule-type.ts +++ b/src-ui/src/app/data/filter-rule-type.ts @@ -8,8 +8,12 @@ export const FILTER_ASN_GT = 23 export const FILTER_ASN_LT = 24 export const FILTER_CORRESPONDENT = 3 +export const FILTER_HAS_CORRESPONDENT_ANY = 26 +export const FILTER_DOES_NOT_HAVE_CORRESPONDENT = 27 export const FILTER_DOCUMENT_TYPE = 4 +export const FILTER_HAS_DOCUMENT_TYPE_ANY = 28 +export const FILTER_DOES_NOT_HAVE_DOCUMENT_TYPE = 29 export const FILTER_IS_IN_INBOX = 5 export const FILTER_HAS_TAGS_ALL = 6 @@ -18,6 +22,8 @@ export const FILTER_DOES_NOT_HAVE_TAG = 17 export const FILTER_HAS_TAGS_ANY = 22 export const FILTER_STORAGE_PATH = 25 +export const FILTER_HAS_STORAGE_PATH_ANY = 30 +export const FILTER_DOES_NOT_HAVE_STORAGE_PATH = 31 export const FILTER_CREATED_BEFORE = 8 export const FILTER_CREATED_AFTER = 9 @@ -63,6 +69,18 @@ export const FILTER_RULE_TYPES: FilterRuleType[] = [ datatype: 'correspondent', multi: false, }, + { + id: FILTER_HAS_CORRESPONDENT_ANY, + filtervar: 'correspondent__id__in', + datatype: 'correspondent', + multi: true, + }, + { + id: FILTER_DOES_NOT_HAVE_CORRESPONDENT, + filtervar: 'correspondent__id__none', + datatype: 'correspondent', + multi: true, + }, { id: FILTER_STORAGE_PATH, filtervar: 'storage_path__id', @@ -70,6 +88,18 @@ export const FILTER_RULE_TYPES: FilterRuleType[] = [ datatype: 'storage_path', multi: false, }, + { + id: FILTER_HAS_STORAGE_PATH_ANY, + filtervar: 'storage_path__id__in', + datatype: 'storage_path', + multi: true, + }, + { + id: FILTER_DOES_NOT_HAVE_STORAGE_PATH, + filtervar: 'storage_path__id__none', + datatype: 'storage_path', + multi: true, + }, { id: FILTER_DOCUMENT_TYPE, filtervar: 'document_type__id', @@ -77,6 +107,18 @@ export const FILTER_RULE_TYPES: FilterRuleType[] = [ datatype: 'document_type', multi: false, }, + { + id: FILTER_HAS_DOCUMENT_TYPE_ANY, + filtervar: 'document_type__id__in', + datatype: 'document_type', + multi: true, + }, + { + id: FILTER_DOES_NOT_HAVE_DOCUMENT_TYPE, + filtervar: 'document_type__id__none', + datatype: 'document_type', + multi: true, + }, { id: FILTER_IS_IN_INBOX, filtervar: 'is_in_inbox', diff --git a/src-ui/src/app/data/matching-model.ts b/src-ui/src/app/data/matching-model.ts index 8ce05528e..a65cb9956 100644 --- a/src-ui/src/app/data/matching-model.ts +++ b/src-ui/src/app/data/matching-model.ts @@ -1,5 +1,6 @@ import { ObjectWithId } from './object-with-id' +export const MATCH_NONE = 0 export const MATCH_ANY = 1 export const MATCH_ALL = 2 export const MATCH_LITERAL = 3 @@ -9,6 +10,11 @@ export const MATCH_AUTO = 6 export const DEFAULT_MATCHING_ALGORITHM = MATCH_AUTO export const MATCHING_ALGORITHMS = [ + { + id: MATCH_AUTO, + shortName: $localize`Automatic`, + name: $localize`Auto: Learn matching automatically`, + }, { id: MATCH_ANY, shortName: $localize`Any word`, @@ -35,9 +41,9 @@ export const MATCHING_ALGORITHMS = [ name: $localize`Fuzzy: Document contains a word similar to this word`, }, { - id: MATCH_AUTO, - shortName: $localize`Automatic`, - name: $localize`Auto: Learn matching automatically`, + id: MATCH_NONE, + shortName: $localize`None`, + name: $localize`None: Disable matching`, }, ] diff --git a/src-ui/src/app/data/object-with-permissions.ts b/src-ui/src/app/data/object-with-permissions.ts new file mode 100644 index 000000000..86f5f7394 --- /dev/null +++ b/src-ui/src/app/data/object-with-permissions.ts @@ -0,0 +1,19 @@ +import { ObjectWithId } from './object-with-id' +import { PaperlessUser } from './paperless-user' + +export interface PermissionsObject { + view: { + users: Array + groups: Array + } + change: { + users: Array + groups: Array + } +} + +export interface ObjectWithPermissions extends ObjectWithId { + owner?: number + + permissions?: PermissionsObject +} diff --git a/src-ui/src/app/data/paperless-document-comment.ts b/src-ui/src/app/data/paperless-document-comment.ts deleted file mode 100644 index 14085cf32..000000000 --- a/src-ui/src/app/data/paperless-document-comment.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ObjectWithId } from './object-with-id' -import { User } from './user' - -export interface PaperlessDocumentComment extends ObjectWithId { - created?: Date - comment?: string - user?: User -} diff --git a/src-ui/src/app/data/paperless-document-note.ts b/src-ui/src/app/data/paperless-document-note.ts new file mode 100644 index 000000000..569b49448 --- /dev/null +++ b/src-ui/src/app/data/paperless-document-note.ts @@ -0,0 +1,7 @@ +import { ObjectWithId } from './object-with-id' + +export interface PaperlessDocumentNote extends ObjectWithId { + created?: Date + note?: string + user?: number // PaperlessUser +} diff --git a/src-ui/src/app/data/paperless-document.ts b/src-ui/src/app/data/paperless-document.ts index cdee624af..755d44f6a 100644 --- a/src-ui/src/app/data/paperless-document.ts +++ b/src-ui/src/app/data/paperless-document.ts @@ -1,19 +1,20 @@ import { PaperlessCorrespondent } from './paperless-correspondent' -import { ObjectWithId } from './object-with-id' import { PaperlessTag } from './paperless-tag' import { PaperlessDocumentType } from './paperless-document-type' import { Observable } from 'rxjs' import { PaperlessStoragePath } from './paperless-storage-path' +import { ObjectWithPermissions } from './object-with-permissions' +import { PaperlessDocumentNote } from './paperless-document-note' export interface SearchHit { score?: number rank?: number highlights?: string - comment_highlights?: string + note_highlights?: string } -export interface PaperlessDocument extends ObjectWithId { +export interface PaperlessDocument extends ObjectWithPermissions { correspondent$?: Observable correspondent?: number @@ -54,5 +55,7 @@ export interface PaperlessDocument extends ObjectWithId { archive_serial_number?: number + notes?: PaperlessDocumentNote[] + __search_hit__?: SearchHit } diff --git a/src-ui/src/app/data/paperless-group.ts b/src-ui/src/app/data/paperless-group.ts new file mode 100644 index 000000000..b78efeb5a --- /dev/null +++ b/src-ui/src/app/data/paperless-group.ts @@ -0,0 +1,9 @@ +import { ObjectWithId } from './object-with-id' + +export interface PaperlessGroup extends ObjectWithId { + name?: string + + user_count?: number // not implemented yet + + permissions?: string[] +} diff --git a/src-ui/src/app/data/paperless-mail-account.ts b/src-ui/src/app/data/paperless-mail-account.ts index 9f875e783..484997213 100644 --- a/src-ui/src/app/data/paperless-mail-account.ts +++ b/src-ui/src/app/data/paperless-mail-account.ts @@ -20,4 +20,6 @@ export interface PaperlessMailAccount extends ObjectWithId { password: string character_set?: string + + is_token: boolean } diff --git a/src-ui/src/app/data/paperless-mail-rule.ts b/src-ui/src/app/data/paperless-mail-rule.ts index a9159e005..859fafc49 100644 --- a/src-ui/src/app/data/paperless-mail-rule.ts +++ b/src-ui/src/app/data/paperless-mail-rule.ts @@ -42,6 +42,8 @@ export interface PaperlessMailRule extends ObjectWithId { filter_from: string + filter_to: string + filter_subject: string filter_body: string diff --git a/src-ui/src/app/data/paperless-uisettings.ts b/src-ui/src/app/data/paperless-uisettings.ts index 07ce00c78..4701a4300 100644 --- a/src-ui/src/app/data/paperless-uisettings.ts +++ b/src-ui/src/app/data/paperless-uisettings.ts @@ -1,11 +1,9 @@ +import { PaperlessUser } from './paperless-user' + export interface PaperlessUiSettings { - user_id: number - - username: string - - display_name: string - + user: PaperlessUser settings: Object + permissions: string[] } export interface PaperlessUiSetting { @@ -36,7 +34,7 @@ export const SETTINGS_KEYS = { 'general-settings:notifications:consumer-failed', NOTIFICATIONS_CONSUMER_SUPPRESS_ON_DASHBOARD: 'general-settings:notifications:consumer-suppress-on-dashboard', - COMMENTS_ENABLED: 'general-settings:comments-enabled', + NOTES_ENABLED: 'general-settings:notes-enabled', SLIM_SIDEBAR: 'general-settings:slim-sidebar', UPDATE_CHECKING_ENABLED: 'general-settings:update-checking:enabled', UPDATE_CHECKING_BACKEND_SETTING: @@ -127,7 +125,7 @@ export const SETTINGS: PaperlessUiSetting[] = [ default: true, }, { - key: SETTINGS_KEYS.COMMENTS_ENABLED, + key: SETTINGS_KEYS.NOTES_ENABLED, type: 'boolean', default: true, }, diff --git a/src-ui/src/app/data/paperless-user.ts b/src-ui/src/app/data/paperless-user.ts new file mode 100644 index 000000000..1cd64ebf9 --- /dev/null +++ b/src-ui/src/app/data/paperless-user.ts @@ -0,0 +1,15 @@ +import { PaperlessGroup } from 'src/app/data/paperless-group' +import { ObjectWithId } from './object-with-id' + +export interface PaperlessUser extends ObjectWithId { + username?: string + first_name?: string + last_name?: string + date_joined?: Date + is_staff?: boolean + is_active?: boolean + is_superuser?: boolean + groups?: number[] // PaperlessGroup[] + user_permissions?: string[] + inherited_permissions?: string[] +} diff --git a/src-ui/src/app/data/user.ts b/src-ui/src/app/data/user.ts deleted file mode 100644 index adf00e86b..000000000 --- a/src-ui/src/app/data/user.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ObjectWithId } from './object-with-id' - -export interface User extends ObjectWithId { - username: string - firstname: string - lastname: string -} diff --git a/src-ui/src/app/directives/if-object-permissions.directive.ts b/src-ui/src/app/directives/if-object-permissions.directive.ts new file mode 100644 index 000000000..3f4f565e9 --- /dev/null +++ b/src-ui/src/app/directives/if-object-permissions.directive.ts @@ -0,0 +1,60 @@ +import { + Directive, + EmbeddedViewRef, + Input, + OnChanges, + OnInit, + TemplateRef, + ViewContainerRef, +} from '@angular/core' +import { ObjectWithPermissions } from '../data/object-with-permissions' +import { + PermissionAction, + PermissionsService, +} from '../services/permissions.service' + +@Directive({ + selector: '[appIfObjectPermissions]', +}) +export class IfObjectPermissionsDirective implements OnInit, OnChanges { + // The role the user must have + @Input() + appIfObjectPermissions: { + object: ObjectWithPermissions + action: PermissionAction + } + + createdView: EmbeddedViewRef + + /** + * @param {ViewContainerRef} viewContainerRef -- The location where we need to render the templateRef + * @param {TemplateRef} templateRef -- The templateRef to be potentially rendered + * @param {PermissionsService} permissionsService -- Will give us access to the permissions a user has + */ + constructor( + private viewContainerRef: ViewContainerRef, + private templateRef: TemplateRef, + private permissionsService: PermissionsService + ) {} + + public ngOnInit(): void { + if ( + !this.appIfObjectPermissions?.object || + this.permissionsService.currentUserHasObjectPermissions( + this.appIfObjectPermissions.action, + this.appIfObjectPermissions.object + ) + ) { + if (!this.createdView) + this.createdView = this.viewContainerRef.createEmbeddedView( + this.templateRef + ) + } else { + this.viewContainerRef.clear() + } + } + + public ngOnChanges(): void { + this.ngOnInit() + } +} diff --git a/src-ui/src/app/directives/if-owner.directive.ts b/src-ui/src/app/directives/if-owner.directive.ts new file mode 100644 index 000000000..7b2efa927 --- /dev/null +++ b/src-ui/src/app/directives/if-owner.directive.ts @@ -0,0 +1,48 @@ +import { + Directive, + EmbeddedViewRef, + Input, + OnChanges, + OnInit, + TemplateRef, + ViewContainerRef, +} from '@angular/core' +import { ObjectWithPermissions } from '../data/object-with-permissions' +import { PermissionsService } from '../services/permissions.service' + +@Directive({ + selector: '[appIfOwner]', +}) +export class IfOwnerDirective implements OnInit, OnChanges { + // The role the user must have + @Input() + appIfOwner: ObjectWithPermissions + + createdView: EmbeddedViewRef + + /** + * @param {ViewContainerRef} viewContainerRef -- The location where we need to render the templateRef + * @param {TemplateRef} templateRef -- The templateRef to be potentially rendered + * @param {PermissionsService} permissionsService -- Will give us access to the permissions a user has + */ + constructor( + private viewContainerRef: ViewContainerRef, + private templateRef: TemplateRef, + private permissionsService: PermissionsService + ) {} + + public ngOnInit(): void { + if (this.permissionsService.currentUserOwnsObject(this.appIfOwner)) { + if (!this.createdView) + this.createdView = this.viewContainerRef.createEmbeddedView( + this.templateRef + ) + } else { + this.viewContainerRef.clear() + } + } + + public ngOnChanges(): void { + this.ngOnInit() + } +} diff --git a/src-ui/src/app/directives/if-permissions.directive.ts b/src-ui/src/app/directives/if-permissions.directive.ts new file mode 100644 index 000000000..9251185e2 --- /dev/null +++ b/src-ui/src/app/directives/if-permissions.directive.ts @@ -0,0 +1,47 @@ +import { + Input, + OnInit, + Directive, + ViewContainerRef, + TemplateRef, +} from '@angular/core' +import { + PermissionAction, + PermissionsService, + PermissionType, +} from '../services/permissions.service' + +@Directive({ + selector: '[appIfPermissions]', +}) +export class IfPermissionsDirective implements OnInit { + @Input() + appIfPermissions: + | Array<{ action: PermissionAction; type: PermissionType }> + | { action: PermissionAction; type: PermissionType } + + /** + * @param {ViewContainerRef} viewContainerRef -- The location where we need to render the templateRef + * @param {TemplateRef} templateRef -- The templateRef to be potentially rendered + * @param {PermissionsService} permissionsService -- Will give us access to the permissions a user has + */ + constructor( + private viewContainerRef: ViewContainerRef, + private templateRef: TemplateRef, + private permissionsService: PermissionsService + ) {} + + public ngOnInit(): void { + if ( + [] + .concat(this.appIfPermissions) + .every((perm: { action: PermissionAction; type: PermissionType }) => + this.permissionsService.currentUserCan(perm.action, perm.type) + ) + ) { + this.viewContainerRef.createEmbeddedView(this.templateRef) + } else { + this.viewContainerRef.clear() + } + } +} diff --git a/src-ui/src/app/directives/sortable.directive.spec.ts b/src-ui/src/app/directives/sortable.directive.spec.ts deleted file mode 100644 index 03f6d8c71..000000000 --- a/src-ui/src/app/directives/sortable.directive.spec.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { SortableDirective } from './sortable.directive' - -describe('SortableDirective', () => { - it('should create an instance', () => { - const directive = new SortableDirective() - expect(directive).toBeTruthy() - }) -}) diff --git a/src-ui/src/app/guards/permissions.guard.ts b/src-ui/src/app/guards/permissions.guard.ts new file mode 100644 index 000000000..7c9b7287d --- /dev/null +++ b/src-ui/src/app/guards/permissions.guard.ts @@ -0,0 +1,43 @@ +import { + CanActivate, + ActivatedRouteSnapshot, + RouterStateSnapshot, + UrlTree, + Router, +} from '@angular/router' +import { Injectable } from '@angular/core' +import { PermissionsService } from '../services/permissions.service' +import { ToastService } from '../services/toast.service' +import { TourService } from 'ngx-ui-tour-ng-bootstrap' + +@Injectable() +export class PermissionsGuard implements CanActivate { + constructor( + private permissionsService: PermissionsService, + private router: Router, + private toastService: ToastService, + private tourService: TourService + ) {} + + canActivate( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): boolean | UrlTree { + if ( + !this.permissionsService.currentUserCan( + route.data.requiredPermission.action, + route.data.requiredPermission.type + ) + ) { + // Check if tour is running 1 = TourState.ON + if (this.tourService.getStatus() !== 1) { + this.toastService.showError( + $localize`You don't have permissions to do that` + ) + } + return this.router.parseUrl('/dashboard') + } else { + return true + } + } +} diff --git a/src-ui/src/app/services/document-list-view.service.ts b/src-ui/src/app/services/document-list-view.service.ts index 3c5dbca21..906e36a0f 100644 --- a/src-ui/src/app/services/document-list-view.service.ts +++ b/src-ui/src/app/services/document-list-view.service.ts @@ -12,7 +12,11 @@ import { PaperlessSavedView } from '../data/paperless-saved-view' import { SETTINGS_KEYS } from '../data/paperless-uisettings' import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys' import { paramsFromViewState, paramsToViewState } from '../utils/query-params' -import { DocumentService, DOCUMENT_SORT_FIELDS } from './rest/document.service' +import { + DocumentService, + DOCUMENT_SORT_FIELDS, + SelectionData, +} from './rest/document.service' import { SettingsService } from './settings.service' /** @@ -74,6 +78,8 @@ export class DocumentListViewService { rangeSelectionAnchorIndex: number lastRangeSelectionToIndex: number + selectionData?: SelectionData + currentPageSize: number = this.settings.get(SETTINGS_KEYS.DOCUMENT_LIST_SIZE) private listViewStates: Map = new Map() @@ -222,6 +228,18 @@ export class DocumentListViewService { this.isReloading = false activeListViewState.collectionSize = result.count activeListViewState.documents = result.results + + this.documentService + .getSelectionData(result.results.map((d) => d.id)) + .subscribe({ + next: (selectionData) => { + this.selectionData = selectionData + }, + error: () => { + this.selectionData = null + }, + }) + if (updateQueryParams && !this._activeSavedViewId) { let base = ['/documents'] this.router.navigate(base, { @@ -247,6 +265,7 @@ export class DocumentListViewService { activeListViewState.currentPage = 1 this.reload() } else { + this.selectionData = null let errorMessage if ( typeof error.error !== 'string' && @@ -354,6 +373,7 @@ export class DocumentListViewService { } quickFilter(filterRules: FilterRule[]) { + this._activeSavedViewId = null this.filterRules = filterRules } diff --git a/src-ui/src/app/services/open-documents.service.ts b/src-ui/src/app/services/open-documents.service.ts index a21523458..17be66428 100644 --- a/src-ui/src/app/services/open-documents.service.ts +++ b/src-ui/src/app/services/open-documents.service.ts @@ -35,15 +35,16 @@ export class OpenDocumentsService { refreshDocument(id: number) { let index = this.openDocuments.findIndex((doc) => doc.id == id) if (index > -1) { - this.documentService.get(id).subscribe( - (doc) => { + this.documentService.get(id).subscribe({ + next: (doc) => { this.openDocuments[index] = doc + this.save() }, - (error) => { + error: () => { this.openDocuments.splice(index, 1) this.save() - } - ) + }, + }) } } diff --git a/src-ui/src/app/services/permissions.service.ts b/src-ui/src/app/services/permissions.service.ts new file mode 100644 index 000000000..c19a4ee94 --- /dev/null +++ b/src-ui/src/app/services/permissions.service.ts @@ -0,0 +1,106 @@ +import { Injectable } from '@angular/core' +import { ObjectWithPermissions } from '../data/object-with-permissions' +import { PaperlessUser } from '../data/paperless-user' + +export enum PermissionAction { + Add = 'add', + View = 'view', + Change = 'change', + Delete = 'delete', +} + +export enum PermissionType { + Document = '%s_document', + Tag = '%s_tag', + Correspondent = '%s_correspondent', + DocumentType = '%s_documenttype', + StoragePath = '%s_storagepath', + SavedView = '%s_savedview', + PaperlessTask = '%s_paperlesstask', + UISettings = '%s_uisettings', + Note = '%s_note', + MailAccount = '%s_mailaccount', + MailRule = '%s_mailrule', + User = '%s_user', + Group = '%s_group', + Admin = '%s_logentry', +} + +@Injectable({ + providedIn: 'root', +}) +export class PermissionsService { + private permissions: string[] + private currentUser: PaperlessUser + + public initialize(permissions: string[], currentUser: PaperlessUser) { + this.permissions = permissions + this.currentUser = currentUser + } + + public currentUserCan( + action: PermissionAction, + type: PermissionType + ): boolean { + return this.permissions.includes(this.getPermissionCode(action, type)) + } + + public currentUserOwnsObject(object: ObjectWithPermissions): boolean { + return ( + !object || + !object.owner || + this.currentUser.is_superuser || + object.owner === this.currentUser.id + ) + } + + public currentUserHasObjectPermissions( + action: string, + object: ObjectWithPermissions + ): boolean { + let actionObject = null + if (action === PermissionAction.View) actionObject = object.permissions.view + else if (action === PermissionAction.Change) + actionObject = object.permissions.change + if (!actionObject) return false + return ( + this.currentUserOwnsObject(object) || + actionObject.users.includes(this.currentUser.id) || + actionObject.groups.filter((g) => this.currentUser.groups.includes(g)) + .length > 0 + ) + } + + public getPermissionCode( + action: PermissionAction, + type: PermissionType + ): string { + return type.replace('%s', action) + } + + public getPermissionKeys(permissionStr: string): { + actionKey: string + typeKey: string + } { + const matches = permissionStr.match(/(.+)_/) + let typeKey + let actionKey + if (matches?.length > 0) { + const action = matches[1] + const actionIndex = Object.values(PermissionAction).indexOf( + action as PermissionAction + ) + if (actionIndex > -1) { + actionKey = Object.keys(PermissionAction)[actionIndex] + } + const typeIndex = Object.values(PermissionType).indexOf( + permissionStr.replace(action, '%s') as PermissionType + ) + if (typeIndex > -1) { + typeKey = Object.keys(PermissionType)[typeIndex] + } + } + + return { actionKey, typeKey } + } +} diff --git a/src-ui/src/app/services/rest/document-comments.service.ts b/src-ui/src/app/services/rest/document-comments.service.ts deleted file mode 100644 index a697c0e93..000000000 --- a/src-ui/src/app/services/rest/document-comments.service.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Injectable } from '@angular/core' -import { HttpClient, HttpParams } from '@angular/common/http' -import { PaperlessDocumentComment } from 'src/app/data/paperless-document-comment' -import { AbstractPaperlessService } from './abstract-paperless-service' -import { Observable } from 'rxjs' - -@Injectable({ - providedIn: 'root', -}) -export class DocumentCommentsService extends AbstractPaperlessService { - constructor(http: HttpClient) { - super(http, 'documents') - } - - getComments(documentId: number): Observable { - return this.http.get( - this.getResourceUrl(documentId, 'comments') - ) - } - - addComment(id: number, comment): Observable { - return this.http.post( - this.getResourceUrl(id, 'comments'), - { comment: comment } - ) - } - - deleteComment( - documentId: number, - commentId: number - ): Observable { - return this.http.delete( - this.getResourceUrl(documentId, 'comments'), - { params: new HttpParams({ fromString: `id=${commentId}` }) } - ) - } -} diff --git a/src-ui/src/app/services/rest/document-notes.service.ts b/src-ui/src/app/services/rest/document-notes.service.ts new file mode 100644 index 000000000..11bbde447 --- /dev/null +++ b/src-ui/src/app/services/rest/document-notes.service.ts @@ -0,0 +1,37 @@ +import { Injectable } from '@angular/core' +import { HttpClient, HttpParams } from '@angular/common/http' +import { PaperlessDocumentNote } from 'src/app/data/paperless-document-note' +import { AbstractPaperlessService } from './abstract-paperless-service' +import { Observable } from 'rxjs' + +@Injectable({ + providedIn: 'root', +}) +export class DocumentNotesService extends AbstractPaperlessService { + constructor(http: HttpClient) { + super(http, 'documents') + } + + getNotes(documentId: number): Observable { + return this.http.get( + this.getResourceUrl(documentId, 'notes') + ) + } + + addNote(id: number, note: string): Observable { + return this.http.post( + this.getResourceUrl(id, 'notes'), + { note: note } + ) + } + + deleteNote( + documentId: number, + noteId: number + ): Observable { + return this.http.delete( + this.getResourceUrl(documentId, 'notes'), + { params: new HttpParams({ fromString: `id=${noteId}` }) } + ) + } +} diff --git a/src-ui/src/app/services/rest/document.service.ts b/src-ui/src/app/services/rest/document.service.ts index 4e7e97110..63b447b9a 100644 --- a/src-ui/src/app/services/rest/document.service.ts +++ b/src-ui/src/app/services/rest/document.service.ts @@ -22,6 +22,7 @@ export const DOCUMENT_SORT_FIELDS = [ { field: 'created', name: $localize`Created` }, { field: 'added', name: $localize`Added` }, { field: 'modified', name: $localize`Modified` }, + { field: 'num_notes', name: $localize`Notes` }, ] export const DOCUMENT_SORT_FIELDS_FULLTEXT = [ diff --git a/src-ui/src/app/services/rest/group.service.ts b/src-ui/src/app/services/rest/group.service.ts new file mode 100644 index 000000000..800c3c71b --- /dev/null +++ b/src-ui/src/app/services/rest/group.service.ts @@ -0,0 +1,31 @@ +import { HttpClient } from '@angular/common/http' +import { Injectable } from '@angular/core' +import { Observable, switchMap } from 'rxjs' +import { PaperlessGroup } from 'src/app/data/paperless-group' +import { PermissionsService } from '../permissions.service' +import { AbstractNameFilterService } from './abstract-name-filter-service' + +@Injectable({ + providedIn: 'root', +}) +export class GroupService extends AbstractNameFilterService { + constructor(http: HttpClient, private permissionService: PermissionsService) { + super(http, 'groups') + } + + update(o: PaperlessGroup): Observable { + return this.getCached(o.id).pipe( + switchMap((initialGroup) => { + initialGroup.permissions?.forEach((perm) => { + const { typeKey, actionKey } = + this.permissionService.getPermissionKeys(perm) + if (!typeKey || !actionKey) { + // dont lose permissions the UI doesnt use + o.permissions.push(perm) + } + }) + return super.update(o) + }) + ) + } +} diff --git a/src-ui/src/app/services/rest/mail-account.service.ts b/src-ui/src/app/services/rest/mail-account.service.ts index 438aa8c90..33ec182d5 100644 --- a/src-ui/src/app/services/rest/mail-account.service.ts +++ b/src-ui/src/app/services/rest/mail-account.service.ts @@ -48,4 +48,8 @@ export class MailAccountService extends AbstractPaperlessService this.reload())) } + + test(o: PaperlessMailAccount) { + return this.http.post(this.getResourceUrl() + 'test/', o) + } } diff --git a/src-ui/src/app/services/rest/saved-view.service.ts b/src-ui/src/app/services/rest/saved-view.service.ts index 46df5e72c..307eaae10 100644 --- a/src-ui/src/app/services/rest/saved-view.service.ts +++ b/src-ui/src/app/services/rest/saved-view.service.ts @@ -3,6 +3,7 @@ import { Injectable } from '@angular/core' import { combineLatest, Observable } from 'rxjs' import { tap } from 'rxjs/operators' import { PaperlessSavedView } from 'src/app/data/paperless-saved-view' +import { PermissionsService } from '../permissions.service' import { AbstractPaperlessService } from './abstract-paperless-service' @Injectable({ @@ -11,8 +12,11 @@ import { AbstractPaperlessService } from './abstract-paperless-service' export class SavedViewService extends AbstractPaperlessService { loading: boolean - constructor(http: HttpClient) { + constructor(http: HttpClient, permissionService: PermissionsService) { super(http, 'saved_views') + } + + public initialize() { this.reload() } diff --git a/src-ui/src/app/services/rest/user.service.ts b/src-ui/src/app/services/rest/user.service.ts new file mode 100644 index 000000000..125a35ce6 --- /dev/null +++ b/src-ui/src/app/services/rest/user.service.ts @@ -0,0 +1,31 @@ +import { HttpClient } from '@angular/common/http' +import { Injectable } from '@angular/core' +import { Observable, switchMap } from 'rxjs' +import { PaperlessUser } from 'src/app/data/paperless-user' +import { PermissionsService } from '../permissions.service' +import { AbstractNameFilterService } from './abstract-name-filter-service' + +@Injectable({ + providedIn: 'root', +}) +export class UserService extends AbstractNameFilterService { + constructor(http: HttpClient, private permissionService: PermissionsService) { + super(http, 'users') + } + + update(o: PaperlessUser): Observable { + return this.getCached(o.id).pipe( + switchMap((initialUser) => { + initialUser.user_permissions?.forEach((perm) => { + const { typeKey, actionKey } = + this.permissionService.getPermissionKeys(perm) + if (!typeKey || !actionKey) { + // dont lose permissions the UI doesnt use + o.user_permissions.push(perm) + } + }) + return super.update(o) + }) + ) + } +} diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index d111acd76..1361d5cad 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -23,6 +23,8 @@ import { SETTINGS, SETTINGS_KEYS, } from '../data/paperless-uisettings' +import { PaperlessUser } from '../data/paperless-user' +import { PermissionsService } from './permissions.service' import { SavedViewService } from './rest/saved-view.service' import { ToastService } from './toast.service' @@ -45,8 +47,7 @@ export class SettingsService { protected baseUrl: string = environment.apiBaseUrl + 'ui_settings/' private settings: Object = {} - - public displayName: string + currentUser: PaperlessUser public settingsSaved: EventEmitter = new EventEmitter() @@ -58,7 +59,8 @@ export class SettingsService { @Inject(LOCALE_ID) private localeId: string, protected http: HttpClient, private toastService: ToastService, - private savedViewService: SavedViewService + private savedViewService: SavedViewService, + private permissionsService: PermissionsService ) { this.renderer = rendererFactory.createRenderer(null, null) } @@ -73,11 +75,23 @@ export class SettingsService { // to update lang cookie if (this.settings['language']?.length) this.setLanguage(this.settings['language']) - this.displayName = uisettings.display_name.trim() + this.currentUser = uisettings.user + this.permissionsService.initialize( + uisettings.permissions, + this.currentUser + ) }) ) } + get displayName(): string { + return ( + this.currentUser.first_name ?? + this.currentUser.username ?? + '' + ).trim() + } + public updateAppearanceSettings( darkModeUseSystem = null, darkModeEnabled = null, @@ -158,6 +172,12 @@ export class SettingsService { englishName: 'Belarusian', dateInputFormat: 'dd.mm.yyyy', }, + { + code: 'ca-es', + name: $localize`Catalan`, + englishName: 'Catalan', + dateInputFormat: 'dd/mm/yyyy', + }, { code: 'cs-cz', name: $localize`Czech`, diff --git a/src-ui/src/app/services/toast.service.ts b/src-ui/src/app/services/toast.service.ts index 7c35b624c..6bd1158bc 100644 --- a/src-ui/src/app/services/toast.service.ts +++ b/src-ui/src/app/services/toast.service.ts @@ -11,6 +11,8 @@ export interface Toast { action?: any actionName?: string + + classname?: string } @Injectable({ @@ -29,7 +31,12 @@ export class ToastService { } showError(content: string, delay: number = 10000) { - this.show({ title: $localize`Error`, content: content, delay: delay }) + this.show({ + title: $localize`Error`, + content: content, + delay: delay, + classname: 'error', + }) } showInfo(content: string, delay: number = 5000) { diff --git a/src-ui/src/app/services/upload-documents.service.ts b/src-ui/src/app/services/upload-documents.service.ts index 5e7ef7fbe..f214a3cb5 100644 --- a/src-ui/src/app/services/upload-documents.service.ts +++ b/src-ui/src/app/services/upload-documents.service.ts @@ -7,6 +7,7 @@ import { } from './consumer-status.service' import { DocumentService } from './rest/document.service' import { Subscription } from 'rxjs' +import { SettingsService } from './settings.service' @Injectable({ providedIn: 'root', @@ -16,7 +17,8 @@ export class UploadDocumentsService { constructor( private documentService: DocumentService, - private consumerStatusService: ConsumerStatusService + private consumerStatusService: ConsumerStatusService, + private settings: SettingsService ) {} uploadFiles(files: NgxFileDropEntry[]) { diff --git a/src-ui/src/app/utils/query-params.ts b/src-ui/src/app/utils/query-params.ts index 9694442be..b98801f7b 100644 --- a/src-ui/src/app/utils/query-params.ts +++ b/src-ui/src/app/utils/query-params.ts @@ -86,12 +86,12 @@ export function queryParamsFromFilterRules(filterRules: FilterRule[]): Params { let params = {} for (let rule of filterRules) { let ruleType = FILTER_RULE_TYPES.find((t) => t.id == rule.rule_type) - if (ruleType.multi) { + if (ruleType.isnull_filtervar && rule.value == null) { + params[ruleType.isnull_filtervar] = 1 + } else if (ruleType.multi) { params[ruleType.filtervar] = params[ruleType.filtervar] ? params[ruleType.filtervar] + ',' + rule.value : rule.value - } else if (ruleType.isnull_filtervar && rule.value == null) { - params[ruleType.isnull_filtervar] = 1 } else { params[ruleType.filtervar] = rule.value if (ruleType.datatype == 'boolean') diff --git a/src-ui/src/assets/bootstrap-icons.svg b/src-ui/src/assets/bootstrap-icons.svg index e94852cbd..61f2720db 100644 --- a/src-ui/src/assets/bootstrap-icons.svg +++ b/src-ui/src/assets/bootstrap-icons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src-ui/src/environments/environment.prod.ts b/src-ui/src/environments/environment.prod.ts index 14284634f..f779851c0 100644 --- a/src-ui/src/environments/environment.prod.ts +++ b/src-ui/src/environments/environment.prod.ts @@ -5,7 +5,7 @@ export const environment = { apiBaseUrl: document.baseURI + 'api/', apiVersion: '2', appTitle: 'Paperless-ngx', - version: '1.13.0', + version: '1.14.0-beta.rc1', webSocketHost: window.location.host, webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:', webSocketBaseUrl: base_url.pathname + 'ws/', diff --git a/src-ui/src/locale/messages.ar_AR.xlf b/src-ui/src/locale/messages.ar_AR.xlf index fe11fcdf1..ac326eed1 100644 --- a/src-ui/src/locale/messages.ar_AR.xlf +++ b/src-ui/src/locale/messages.ar_AR.xlf @@ -74,7 +74,7 @@ 13 Currently selected slide number read by screen reader - Slide of + شريحة من
Hours @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 أُضيف المستند @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 أضيف المستند إلى paperless.
@@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 فتح مستند
@@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 تعذّر إضافة :
@@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 عُثر على مستند جديد
@@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 المستند يتم معالجته من paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 السابق @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 النهاية @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 يمكن استخدام لوحة التحكم لعرض العروض المحفوظة، مثل 'علبة الوارد'. بواسطة الإعدادات يمكنك تفعيلها > المشاهدات المحفوظة بمجرد إنشاء بعضها. @@ -378,15 +386,15 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 - سحب وإسقاط المستندات هنا للبدء في تحميلها أو وضعها في المجلد المستهلك. يمكنك أيضًا سحب وإسقاط المستندات في أي مكان على جميع الصفحات الأخرى من تطبيق الويب. بمجرد ذلك، سيبدأ Paperless-ngx في تدريب خوارزميات تعلم الآلات. + سحب وإسقاط المستندات هنا للبدء في تحميلها أو وضعها في المجلد المستهلك. يمكنك أيضًا سحب وإسقاط المستندات في أي مكان على جميع الصفحات الأخرى من تطبيق الويب. بمجرد ذلك، سيبدأ هذا التطبيق في تدريب خوارزميات تعلم الآلات. The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 تظهر قائمة المستندات جميع مستنداتك وتسمح بالتصفية والتحرير بالجملة. وهناك ثلاث أنماط مختلفة للعرض: القائمة والبطاقات الصغيرة والبطاقات الكبيرة، وفي الشريط الجانبي قائمة بالمستندات المفتوحة حاليا للتحرير. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 أدوات التصفية تسمح لك بالعثور بسرعة على المستندات باستخدام مختلف عمليات البحث والتواريخ والعلامات وما إلى ذلك. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 يمكن حفظ أي مزيج من التصفيات مثل "عرض" يمكنك عرضه بعد ذلك على لوحة التحكم / أو الشريط الجانبي. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 يمكن إدارة جميع العلامات والمراسلين وأنواع الوثائق ومسارات التخزين باستخدام هذه الصفحات. ويمكن أيضا إنشاؤها من تعديل عرض المستند. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 ملف المهام يظهر لك المستندات المستهلكة، أو تنتظر أن تكون، أو يكون أخفق في أثناء العملية. @@ -426,15 +434,15 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 - تحقق من إعدادات التعديلات المختلفة على تطبيق الويب، أو تبديل إعدادات العروض المحفوظة أو إعداد التحقق من البريد الإلكتروني. + التحقق من إعدادات التعديلات المختلفة على تطبيق الويب، أو تبديل إعدادات العروض المحفوظة أو إعداد التحقق من البريد الإلكتروني. Thank you! 🙏 src/app/app.component.ts - 203 + 229 شكراً لك! 🙏 @@ -442,15 +450,15 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 - هناك <em>أطنان</em> المزيد من الميزات والمعلومات التي لم نغطيها هنا، ولكن يجب يكون هذا كافيا لك للبداية. تحقق من المستندات أو زيارة المشروع على GitHub لمعرفة المزيد أو للإبلاغ عن المشكلات. + هناك <em>أطنان</em> المزيد من الميزات والمعلومات التي لم نغطيها هنا، ولكن يجب يكون هذا كافيا لك للبداية. يرجى مراجعة المستندات أو زيارة المشروع على GitHub لمعرفة المزيد أو للإبلاغ عن المشكلات. Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 أخيرا، بالنيابة عن كل مساهم في هذا المشروع المدعوم من المجتمع، شكرا لك على استخدام Paperless-ngx! @@ -458,9 +466,9 @@ Initiating upload... src/app/app.component.ts - 256 + 288 - بدء التحميل... + بَدْء التحميل... Paperless-ngx @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + الإعدادات @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 فتح المستندات @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 إغلاق الكل @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 إدارة @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 مراسلون @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 أنواع المستندات @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 مسارات التخزين @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 ملف المهام @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 الوثائق @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 Github @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 اقترح فكرة @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 متوفر. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 انقر للعرض. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx يتحقق تلقائياً من وجود تحديثات @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 كيف يعمل هذا؟ @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 يتوفر تحديث @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 حدث خطأ في أثناء حفظ الإعدادات. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 حدث خطأ في أثناء حفظ إعدادات التحقق من التحديث. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 أكّد @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 حفظ @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 إنشاء مراسل جديد @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 تعديل المراسل @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 إنشاء نوع مستند جديد @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 تحرير نوع المستند @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 إنشاء عنصر جديد @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 تعديل عنصر @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 تعذر حفظ العنصر: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + الصلاحيات + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + إنشاء مجموعة مستخدم جديدة + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + تحرير مجموعة المستخدم + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + اسم المستخدم @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + كلمة المرور + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + كلمة السر هي رمز التحقق + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + تحقق مما إذا كانت كلمة المرور أعلاه هي الرمز المستخدم للتحقق + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 نوع ترميز المحارف + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + تحميل... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + تجربة + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 دون تشفير @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 إنشاء حساب بريد جديد @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 تعديل حساب البريد + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + تم الاتصال بخادم البريد بنجاح + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + تعذر الاتصال بخادم البريد + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 الحساب @@ -1341,7 +1525,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 16 - Rule order + ترتيب القاعدة Paperless will only process mails that match all of the filters specified below. @@ -1359,11 +1543,19 @@ تصفية من + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + تصفية إلى + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 تصفية الموضوع @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 تصفية الجسم @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 تصفية اسم الملف المرفق @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 فقط المستندات التي تتطابق تماما مع اسم هذا الملف إذا تم تحديدها. المحارف البديلة مثل *.pdf أو *الفواتير* مسموح بها. لأنها غير حساسة. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 إجراء @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 الإجراء المطبق على البريد. ينفذ هذا الإجراء فقط عندما تستهلك المستندات من البريد. ستبقى البُرٌد التي لا تحتوي على مرفقات ستبقى كما هي. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 إجراء المعامل @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 تعيين العنوان من @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 تعيين نوع المستند @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 تعيين مراسل من @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 تعيين مراسل @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 خطأ @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 معالجة المرفقات فقط @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 معالجة جميع الملفات، بما في ذلك المرفقات 'داخل الخط' @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 معالجة الرسالة كـ .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 معالجة الرسالة ك.eml والمرفقات بشكل منفصل @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 حذف @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 نقل إلى مجلد محدد @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 وضع علامة كمقروءة، لا تعالج الرسائل المقروءة @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 علم الرسالة، لا تعالج الرسائل المعلمة @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 علم الرسالة بعلامة محددة، لا تعالج الرسائل المُعلمة @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 استخدم الموضوع كعنوان @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 استخدم اسم الملف المرفق كعنوان @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 لا تعيّن مراسل @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 استخدم عنوان البريد @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 استخدم الاسم (أو عنوان البريد إذا لم يكن متاحا) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 استخدم المراسل المحدد أدناه @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 إنشاء قاعدة بريد جديدة @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 تعديل قاعدة البريد - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - لاحظ أن تحرير مسار لا يطبق التغييرات على الملفات المخزنة حتى تقوم بتشغيل أداة 'document_renamer'. انظر إلى المستندات. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 مسار @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 مثال. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 أو استخدم الخطوط المائلة لإضافة مجلدات مثل. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 راجع المستندات <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling"></a> للاطلاع على القائمة الكاملة. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 إنشاء مسار تخزين جديد @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 تعديل مسار التخزين @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 لون @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 إنشاء علامة جديدة @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 تعديل العلامة + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + البريد الإلكتروني + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + الإسم الأول + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + الاسم الأخير + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + نشط + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + مستخدم متميز + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (يخول بجميع الصلاحيات ويمكنه عرض الكائنات) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + مجموعات + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + إنشاء حساب مستخدم جديد + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + تعديل حساب المستخدم + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ أي + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + تضمين + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + استبعاد + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 تطبيق @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 انقر مرة أخرى لاستبعاد العناصر. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned غير معين @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 الاقتراحات: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + تعديل الصلاحيات + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + المالك: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + الكائنات بدون مالك يمكن مشاهدتها وتعديلها من قبل جميع المستخدمين + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + عرض + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + المستخدمين: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + المجموعات: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + تحرير + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + تعديل الصلاحيات كما يمنح أيضا صلاحيات العرض + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths إضافة عنصر + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + شخصي + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 إضافة علامة + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + اختيار الصلاحيّات + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + لاحظ أن الصلاحيات المحددة هنا ستتجاوز أي صلاحيات موجودة + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + اكتب + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + أضِف + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + تغيير + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + من + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + مأخوذ من المجموعة + Select @@ -1869,43 +2383,11 @@ الرجاء تحديد كائن - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - تحميل... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 أهلا , مرحبا بك في Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 مرحبا بك في Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ الإحصائيات - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - المستندات في علبة الواردة: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - إجمالي المستندات: + اذهب الى الوارد + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + المستندات في الوارد + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + اذهب الى المستندات + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + اجمالي المستندات + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + اجمالي الحروف + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + أخرى Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 المعالجة: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 فشل: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 أضيف: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ البحث عن المستند باستخدام asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - أدخل تعليق - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - الرجاء إدخال تعليق. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - إضافة تعليق - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - خطأ في حفظ التعليق: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - خطأ في حذف التعليق: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 تحميل @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 إعادة OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 إغلاق @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 مسار التخزين @@ -2468,6 +2942,14 @@ بيانات التعريف للمستند الأصلي + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + معاينة + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 أدخل كلمة المرور - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - التعليقات + الملاحظات Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 تجاهل @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 حفظ & التالي + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + حدث خطأ في تحميل المحتوى + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + خطأ في استرجاع البيانات الوصفية + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + خطأ في استرجاع الاقتراحات + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + تم حفظ المستند بنجاح. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + خطأ أثناء حفظ المستند + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 تأكيد الحذف @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 هل تريد حقاً حذف المستند " @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 ستحذف ملفات هذا المستند بشكل دائم. لا يمكن التراجع عن هذه العملية. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 حذف مستند - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - حدث خطأ أثناء حذف الوثيقة: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 إعادة تأكيد OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 هذه العملية ستعيد بشكل دائم OCR لهذا المستند. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 لا يمكن التراجع عن هذه العملية. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 متابعة @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 إعادة تشغيل OCR ستبدأ في الخلفية. إغلاق وإعادة فتح أو إعادة تحميل هذا المستند بعد اكتمال العملية لمشاهدة محتوى جديد. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 خطأ في تنفيذ العملية: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 تصفية المراسلين @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 تصفية نوع الوثائق @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 تصفية مسارات التخزين @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 يحتوي على: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 ملفات الأرشيف @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 الملفات الأصلية @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 استخدام اسم الملف المنسّق @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 خطأ في تنفيذ العملية الشاملة: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" و "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' و"" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 تأكيد تعيين العلامات @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 هذه العملية ستضيف العلامة "" إلى مستند (مستندات) مختارة. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 هذه العملية ستضيف العلامات إلى مستند (مستندات) مختارة. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 هذه العملية ستزيل العلامة"" من المستند (المستندات) المختارة. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 هذه العملية ستزيل العلامات من المستند (المستندات) المختارة. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 هذه العملية سوف تضيف العلامات وتزيل العلامات في مستند(مستندات) مختارة. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 تأكيد تعيين المراسل @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 هذه العملية ستعين المراسل"" إلى مستند (مستندات) مختارة. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 هذه العملية ستزيل المراسل من مستند (مستندات) مختارة. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 تأكيد تعيين نوع المستند @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 العملية ستعين نوع المستند "" إلى مستند (مستندات) مختارة. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 هذه العملية ستزيل نوع المستند من مستند (المستندات) مختارة. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 تأكيد تعيين مسار التخزين @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 هذه العملية ستعين مسار التخزين "" إلى مستند (مستندات) مختارة. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 هذه العملية ستزيل مسار التخزين من المستند(المستندات) المختارة. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 تأكيد الحذف @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 هذه العملية ستحذف بشكل دائم المستند(المستندات) المختارة. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 حذف المستند(المستندات) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 هذه العملية ستعيد بشكل دائم OCR لي المستند(المستندات) المختارة. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 تصفية حسب المراسل @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 تصفية حسب العلامة - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - تحرير + إظهار الملاحظات - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - عرض + الملاحظات Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 تصفية حسب نوع المستند @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 تصفية حسب مسار التخزين @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 أنشئ: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 أضيف: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 معدل: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 النقاط: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 تبديل تصفية المراسل @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 تبديل تصفية نوع المستند @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 تبديل تصفية مسار التخزين @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + طرق عرض Save "" src/app/components/document-list/document-list.component.html - 75 + 76 حفظ "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 حفظ باسم... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, zero {} one {تم اختياره من مستندات} two {تم اختياره من مستندات} few {تم اختياره من مستندات} many {تم اختياره من مستندات}=1 {تم اختيار لمستند واحد} other {تم اختياره من مستندات}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, zero {} one { المزيد من المستندات} two { المزيد من المستندات} few { المزيد من المستندات} many { المزيد من المستندات}=1 {مستند واحد آخر} other { المزيد من المستندات}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (مصفاة) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 خطأ في أثناء تحميل المستندات + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + ترتيب حسب ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + ترتيب حسب المرسل + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + ترتيب حسب العنوان + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + ترتيب حسب الملاحظات + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + الملاحظات + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + ترتيب حسب نوع المستند + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + ترتيب حسب مكان الحفظ + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + ترتيب حسب تاريخ الإنشاء + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + ترتيب حسب تاريخ الاضافة + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 تعديل المستند @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 عرض "" حفظ بنجاح. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 عرض "" أنشئ بنجاح. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 إعادة تعيين التصفيات @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 مراسل: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 بدون مراسل @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 نوع: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 بدون نوع المستند @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 علامة: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 بدون أي علامة @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 العنوان: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 العنوان & المحتوى @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 بحث متقدم @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 أكثر مثله @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 يساوي @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 فارغ @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 غير فارغ @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 أكبر من @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 أقل من @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 عرض على الشريط الجانبي @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 عرض على لوحة التحكم @@ -3468,29 +4058,81 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - الخطأ الذي أرجع كان + الخطأ الذي تم إرجاعه كان + + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + ادخل الملاحظة + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + يرجى إدخال ملحوظة. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + إضافة الملاحظة + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + خطأ في حفظ الملاحظة: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + خطأ في حذف الملاحظة: correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 - مراسل + جهة التراسل correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 - مراسلون + جهات التراسل Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 آخر استخدام @@ -3498,15 +4140,15 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 - هل تريد حقاً حذف المراسل" + هل تريد حقاً حذف جهة التراسل" document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 نوع المستند @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 أنواع المستندات @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 هل ترغب حقاً في حذف نوع المستند " @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 تلقائي + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + لا شيء + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + حدث خطأ في أثناء إنشاء:. + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 - أنشئ بنجاح . + أنشئ بنجاح. - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - حدث خطأ في أثناء إنشاء : . + حدث خطأ خلال الحفظ . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 حدث بنجاح. @@ -3686,23 +4352,23 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 - حدث خطأ في أثناء حفظ : . + حدث خطأ خلال الحفظ : . Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 - هل تريد حقاً حذف ؟ + هل تريد حقاً حذف؟ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 لن تحذف المستندات المرتبطة بها. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 حدث خطأ في أثناء حذف العنصر: @@ -3720,7 +4386,7 @@ src/app/components/manage/settings/settings.component.html 2 - بدء جولة + ابدأ جولة Open Django Admin @@ -3906,13 +4572,13 @@ التحقق من التحديث - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - تحديث التحقق يعمل بأرسال إشارات الى العام Github API للحصول على أحدث إصدار لتحديد ما إذا كان الإصدار الجديد متاحا. لا يزال يتعين إجراء التحديث الفعلي للتطبيق يدويا. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3920,7 +4586,7 @@ src/app/components/manage/settings/settings.component.html 144,146 - No tracking data is collected by the app in any way. + لا يتم جمع بيانات التتبع بواسطة التطبيق بأي طريقة. Enable update checking @@ -3936,7 +4602,7 @@ src/app/components/manage/settings/settings.component.html 146 - Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. + لاحظ أنه بالنسبة لمستخدمي حاويات الطرف الثالث "third-party containers"، مثل linuxserver.io قد 'يسبق' هذا الإشعار إصدار الطرف الثالث "third-party release" الحالي. Bulk editing @@ -3970,13 +4636,13 @@ تطبيق عند الإغلاق - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - تمكين التعليقات + السماح بالملاحظات Notifications @@ -4034,11 +4700,19 @@ سيؤدي هذا إلى إلغاء جميع الرسائل حول حالة معالجة المستندات في لوحة التحكم. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + إظهار التحذير عند إغلاق المشاهدات المحفوظة مع التغييرات غير المحفوظة + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 يظهر في @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 لا توجد آراء محفوظة. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 البريد @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 حسابات البريد @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 إضافة حساب @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 خادم @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 لا توجد حسابات بريدية. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 قواعد البريد @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 إضافة قاعدة @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 لا توجد قواعد للبريد. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + المستخدمين & المجموعات + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + المستخدمين + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + إضافة مستخدم + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + اضافة مجموعة + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 العرض المحفوظ "" مُسح. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 الإعدادات حُفظت @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 حُفظت الإعدادات بنجاح. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 حفظت الإعدادات بنجاح. إعادة تحميل مطلوب لتطبيق بعض التغييرات. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 إعادة تحميل الآن @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 استخدم لغة النظام @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 استخدم تنسيق تاريخ لغة العرض @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 خطأ في أثناء حفظ الإعدادات على الخادم: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + تم تغيير كلمة المرور، سيتم تسجيل خروجك مؤقتا. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + مستخدم محفوظ "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + خطأ في حفظ المستخدم: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + تأكيد حذف حساب المستخدم + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + هذه العملية ستقوم بحذف حساب المستخدم هذا بشكل دائم. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + مستخدم محذوف + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + حدث خطأ أثناء حذف المستخدم: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + مجموعة محفوظة "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + خطأ أثناء حفظ المجموعة: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + تأكيد حذف مجموعة المستخدم + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + هذه العملية ستقوم بحذف مجموعة المستخدم هذه بشكل دائم. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + مجموعة محذوفة + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + حدث خطأ أثناء حذف المجموعة: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 حفظ الحساب"". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 خطأ في حفظ الحساب: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 تأكيد حذف حساب البريد @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 هذه العملية ستقوم بحذف حساب البريد هذا بشكل دائم. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 تم حذف حساب البريد @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 خطأ في حذف حساب البريد: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 قاعدة محفوظة "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 خطأ في حفظ القاعدة: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 تأكيد حذف حساب البريد @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 هذه العملية ستقوم بحذف قاعدة البريد هذه بشكل دائم. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 تم حذف قاعدة البريد @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 خطأ في حذف قاعدة البريد: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 مسار التخزين @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 مسارات التخزين @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 هل تريد حقاً حذف مسار التخزين " @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 علامة @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 علامات @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 هل ترغب حقاً في حذف العلامة " @@ -4330,16 +5140,6 @@ إزالة التحديد - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 رفض @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 فتح مستند @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 فشل  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 مكتمل  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 بدأ  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 الانتظار  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 تحديد الرفض @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 رفض الجميع @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 تأكيد رفض الكل @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 مهام؟ @@ -4460,11 +5260,19 @@ 404 غير متوفر + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + تلقائياً: تعلم المطابقة تلقائيًا + Any word src/app/data/matching-model.ts - 14 + 20 أي كلمة @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 أي: مستند يحوي أي من هذه الكلمات (فراغ فاصل) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 كل الكلمات @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 أي: مستند يحوي كل هذه الكلمات (فراغ فاصل) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 تطابق تام @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 بالضبط: المستند يحتوي على هذه الكلمة @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 التعابير النظامية @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 التعابير النظامية: المستند يطابق هذا التعبير النظامي @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 كلمة غامضة @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 غامض: المستند يحوي كلمة مشابهة لهذه الكلمة - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - تلقائياً: تعلم المطابقة تلقائيًا + لا شيء: تعطيل المطابقة Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 لم تحفظ تغييرات @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 لديك تغييرات لم تحفظ. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 لديك تغييرات غير محفوظة في العرض المحفوظ @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 متيقِّن من إغلاق هذا العرض المحفوظ؟ @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 حفظ و إغلاق + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + لا تملك صلاحيّات تنفيذ ذلك + (no title) @@ -4666,7 +5482,7 @@ src/app/services/consumer-status.service.ts 16 - Document with ASN already exists. + المستند ورقم مسلسل الأرشيف موجودون مسبقاً. File not found. @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 لديك تغييرات في المستند غير محفوظة @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 هل أنت متيقِّن من إغلاق هذا المستند؟ @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 إغلاق المستند @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 هل أنت متيقِّن من إغلاق كافة المستندات؟ @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 إغلاق المستندات @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query نقاط البحث @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 الإنجليزية (الولايات المتحدة) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 العربية @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 البيلاروسية + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 التشيكية @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 الدانماركية @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 الألمانية @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 الإنجليزية (المملكة المتحدة) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 الإسبانية @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 الفرنسية @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 الإيطالية @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 اللوكسمبرجية @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 الهولندية @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 البولندية @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 البرتغالية (البرازيل) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 البرتغالية @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 الرومانية @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 الروسية @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 السلوفانية @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 الصربية @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 السويدية @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 التركية @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 الصينية المبسطة @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 تم بنجاح ترحيل الإعدادات مرة واحدة إلى قاعدة البيانات! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 غير قادر على ترحيل الإعدادات إلى قاعدة البيانات، الرجاء محاولة الحفظ يدوياً. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 معلومات @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 الاتصال... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 التحميل... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 اكتمل الرفع، انتظر... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 خطأ HTTP: diff --git a/src-ui/src/locale/messages.be_BY.xlf b/src-ui/src/locale/messages.be_BY.xlf index e61758774..c3a415319 100644 --- a/src-ui/src/locale/messages.be_BY.xlf +++ b/src-ui/src/locale/messages.be_BY.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Дакумент дададзены @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Дакумент быў дададзены ў paperless-ngx. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Адкрыць дакумент @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Немагчыма дадаць : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Знойдзены новы дакумент @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Дакумент апрацоўваецца paperless-ngx. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Прыборную панэль можна выкарыстоўваць для паказу захаваных праглядаў, такіх як "Уваходныя". Гэтыя налады знаходзяцца ў Наладах > Захаваныя прагляды пасля таго, як вы іх стварылі. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 Спіс дакументаў паказвае ўсе вашы дакументы і дазваляе фільтраваць, а таксама масава рэдагаваць. Ёсць тры розныя стылі прагляду: спіс, маленькія карты і вялікія карты. Спіс дакументаў, адкрытых для рэдагавання, паказаны на бакавой панэлі. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Інструменты фільтрацыі дазваляюць хутка знаходзіць дакументы па розных пошуках, датах, тэгах і г.д. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Любую камбінацыю фільтраў можна захаваць у выглядзе 'прагляда', які потым можа адлюстроўвацца на прыборнай панэлі і/або бакавой панэлі. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 З дапамогай гэтых старонак можна кіраваць тэгамі, карэспандэнтамі, тыпамі дакументаў і шляхамі захоўвання. Іх таксама можна стварыць з прагляду рэдагавання дакумента. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Файлавыя задачы паказваюць вам дакументы, якія былі спажыты, чакаюць або пацярпелі збой падчас працэсу. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Дзякуй! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Ёсць <em>тоны</em> дадатковыя магчымасці і інфармацыя, якую мы тут не разглядалі, але гэта дапаможа вам пачаць. Праверце дакументацыю або наведайце праект на GitHub, каб даведацца больш або паведаміць аб праблемах. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Нарэшце, ад імя кожнага ўдзельніка гэтага праекта, які падтрымліваецца супольнасцю, дзякуй за выкарыстанне Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Пачатак загрузкі... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Наладкі @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Адкрыць дакументы @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Закрыць усё @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Кіраванне @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Карэспандэнты @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Тыпы дакументаў @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Шляхі захоўвання @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Файлавыя задачы @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Дакументацыя @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Прапанаваць ідэю @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 даступна. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Націсніце, каб убачыць. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx можа аўтаматычна правяраць наяўнасць абнаўленняў @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Як гэта працуе? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Даступна абнаўленне @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Адбылася памылка пры захаванні налад. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Адбылася памылка падчас захавання налад праверкі абнаўленняў. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Пацвердзіць @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Захаваць @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Стварыць новага карэспандэнта @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Рэдагаваць карэспандэнта @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Стварыць новы тып дакумента @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Рэдагаваць тып дакумента @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Стварыць новы элемент @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Рэдагаваць элемент @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Немагчыма захаваць элемент: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Загрузка... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Памылка @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Выдаліць @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Шлях @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 напр. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 або выкарыстоўвайце касыя рысы, каб дадаць каталогі, напр. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Стварыць новы шлях захоўвання @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Рэдагаваць шлях захоўвання @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Колер @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Стварыць новы тэг @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Рэдагаваць тэг + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Любы + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Ужыць @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Націсніце зноў, каб выключыць элементы. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Не прызначана @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Прапановы: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Прагляд + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Рэдагаваць + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Дадаць элемент + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Дадаць тэг + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Калі ласка, абярыце аб'ект - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Загрузка... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Прывітанне, , запрашаем у Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Вітаем у Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Статыстыка - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Дакументы ва ўваходных: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Усяго дакументаў: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Апрацоўваюцца: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Памылка: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Дададзена: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Пошук дакумента з asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Тэкст каментарыя - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Калі ласка, увядзіце каментар. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Дадаць каментар - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Памылка захавання каментарыя: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Памылка пры выдаленні каментара: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Спампаваць @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Паўтарыць OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Закрыць @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Шлях захоўвання @@ -2468,6 +2942,14 @@ Метададзеныя архіўнага дакумента + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Увядзіце пароль - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Каментарыі + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Адхіліць @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Захаваць & наступны + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Пацвердзіце выдаленне @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Вы сапраўды хочаце выдаліць дакумент ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Файлы для гэтага дакумента будуць выдалены назаўсёды. Гэтую аперацыю нельга адмяніць. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Выдаліць дакумент - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Памылка выдалення дакумента: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Паўтарыць пацверджанне OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Гэтая аперацыя назаўсёды паўторыць OCR для гэтага дакумента. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Гэтую аперацыю нельга адмяніць. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Працягнуць @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Памылка выканання аперацыі: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Фільтр карэспандэнтаў @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Фільтр тыпаў дакументаў @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Фільтраваць шляхі захоўвання @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Памылка выканання масавай аперацыі: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" і "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' і "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Пацвярдзіць прызначэнне тэгаў @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Гэтая аперацыя дадасць тэг "" да выбраных дакументаў. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Гэтая аперацыя дадасць тэгі "" да выбраных дакументаў. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Гэтая аперацыя выдаліць тэг "" з выбраных дакументаў. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Гэтая аперацыя выдаліць тэгі "" з выбраных дакументаў. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Гэтая аперацыя дадасць тэгі і выдаліць тэгі на выбраных дакументах. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Пацвердзіць прызначэнне карэспандэнта @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Гэтая аперацыя прызначыць карэспандэнта "" абраным дакументам. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Гэтая аперацыя выдаліць карэспандэнта з выбраных дакументаў. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Пацвердзіце прызначэнне тыпу дакумента @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Гэтая аперацыя прысвоіць тып "" абраным дакументам. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Гэтая аперацыя выдаліць тып з абраных дакументаў. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Пацвердзіце прызначэнне шляху захоўвання @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Гэтая аперацыя прызначыць шлях захоўвання "" да выбраных дакументаў. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Гэтая аперацыя выдаліць шлях захоўвання з выбраных дакументаў. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Пацвердзіце выдаленне @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Гэтая аперацыя назаўжды выдаліць абраных дакументаў. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Выдаліць дакумент(ы) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Гэта аперацыя назаўсёды паўторыць OCR для выбраных дакументаў. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Фільтр па карэспандэнту @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Фільтр па тэгу - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Рэдагаваць + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Прагляд + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Фільтраваць па тыпе дакумента @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Фільтраваць па шляху захавання @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Створана: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Дададзена: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Мадыфікавана: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Адзнака: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Пераключыць фільтр карэспандэнта @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Пераключыць фільтр тыпу дакумента @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Пераключыць фільтр шляху захоўвання @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Прагляды Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Захаваць "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Захаваць як... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Выдзелена дакументаў: з 1} other {Выдзелена дакументаў: з }} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Адзін дакумент} other { дакумента(аў)}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (адфільтравана) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Памылка пры загрузцы дакументаў + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Рэдагаваць дакумент @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Прагляд "" паспяхова захаваны. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Прагляд "" створаны паспяхова. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Скінуць фільтры @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Карэспандэнт: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Без карэспандэнта @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Тып: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Без тыпу дакумента @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Тэг: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Без усялякага тэга @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Назва: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Назва & змест @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Пашыраны пошук @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Больш падобных @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 супадае з @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 пусты @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 не пусты @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 большы за @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 менш за @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Паказаць у бакавой панэлі @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Паказаць на панэлі @@ -3470,11 +4060,63 @@ Вернутая памылка была + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 карэспандэнт @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 карэспандэнты @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Апошняе выкарыстанне @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Вы сапраўды хочаце выдаліць карэспандэнта ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 тып дакумента @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 тыпы дакументаў @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Вы сапраўды хочаце выдаліць тып дакумента ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Аўтаматычна + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Вы сапраўды хочаце выдаліць "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Звязаныя дакументы не будуць выдалены. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Памылка пры выдаленні элемента: @@ -3906,13 +4572,13 @@ Праверка абнаўленняў - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Праверка абнаўленняў працуе шляхам пінгавання агульнадаступнага Github API для апошняга выпуску, каб вызначыць, ці даступная новая версія. Фактычнае абнаўленне праграмы па-ранейшаму павінна выконвацца ўручную. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Ужыць пры зачыненні - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Уключыць каментары + Enable notes Notifications @@ -4034,11 +4700,19 @@ Гэта адключыць усе паведамленні аб статуце апрацоўкі дакументаў на галоўнай панэлі. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 З'яўляецца на @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Няма захаваных праглядаў. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Захаваны выгляд "" выдалены. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Налады захаваны @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Налады былі паспяхова захаваны. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Налады былі паспяхова захаваны. Каб прымяніць некаторыя змены, патрабуецца перазагрузка. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Перазагрузіць зараз @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Выкарыстоўваць мову сістэмы @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Выкарыстоўваць фармат даты мовы адлюстравання @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Памылка пры захаванні налад на серверы: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 шлях захоўвання @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 шляхі захоўвання @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Вы сапраўды хочаце выдаліць шлях захоўвання ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 тэг @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 тэгі @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Вы сапраўды хочаце выдаліць тэг ""? @@ -4330,16 +5140,6 @@ Ачысціць выбранае - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Адхіліць @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Адкрыць дакумент @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Не атрымалася  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Поўнае выкананне  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Пачатак  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 У чарзе  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Адхіліць выбранае @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Адхіліць усе @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Пацвердзіць Адхіліць усе @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 задачы? @@ -4460,11 +5260,19 @@ 404 Не знойдзена + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Аўтаматычны: вучыцеся аўтаматычна + Any word src/app/data/matching-model.ts - 14 + 20 Любое слова @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Любы: дакумент змяшчае любое з гэтых слоў (падзеленыя прабелам) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Усе словы @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Усе: дакумент змяшчае ўсе гэтыя словы (падзеленыя прабелам) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Дакладнае супадзенне @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Дакладна: дакумент змяшчае гэты радок @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Рэгулярны выраз @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Рэгулярны выраз: Дакумент адпавядае гэтаму рэгулярнаму выразу @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Невыразнае слова @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Невыразна: Дакумент змяшчае слова, падобнае да гэтага слова - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Аўтаматычны: вучыцеся аўтаматычна + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Незахаваныя змены @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 У вас ёсць незахаваныя змены. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 У вас ёсць незахаваныя змены ў дакуменце @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Вы ўпэўнены, што хочаце закрыць гэты дакумент? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Закрыць дакумент @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Вы ўпэўнены, што хочаце закрыць усе дакументы? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Закрыць дакументы @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Рэлевантнасць @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Англійская (ЗША) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Беларуская + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Чэшская @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Дацкая @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Нямецкая @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Англійская (Вялікабрытанія) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Іспанская @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Французская @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Італьянская @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Люксембургская @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Нідэрландская @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Польская @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Партугальская (Бразілія) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Партугальская @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Румынская @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Руская @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Славенская @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Сербская @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Шведская @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Турэцкая @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Кітайская спрошчаная @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Паспяхова выканана аднаразовая міграцыя налад у базу! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Немагчыма перанесці налады ў базу дадзеных, паспрабуйце захаваць уручную. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Інфармацыя @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Падключэнне... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Загрузка... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Загрузка завершана, чакайце... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Памылка HTTP: diff --git a/src-ui/src/locale/messages.ca_ES.xlf b/src-ui/src/locale/messages.ca_ES.xlf new file mode 100644 index 000000000..c22fb0460 --- /dev/null +++ b/src-ui/src/locale/messages.ca_ES.xlf @@ -0,0 +1,5894 @@ + + + + + + Close + + node_modules/src/ngb-config.ts + 13 + + Tanca + + + HH + + node_modules/src/ngb-config.ts + 13 + + HH + + + Close + + node_modules/src/ngb-config.ts + 13 + + Tanca + + + «« + + node_modules/src/ngb-config.ts + 13 + + «« + + + Select month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Selecciona mes + + + Previous month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Mes anterior + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + Slide of + + node_modules/src/ngb-config.ts + 13 + + Currently selected slide number read by screen reader + Diapositiva of + + + Hours + + node_modules/src/ngb-config.ts + 13 + + Hores + + + « + + node_modules/src/ngb-config.ts + 13 + + « + + + Previous + + node_modules/src/ngb-config.ts + 13 + + Anterior + + + MM + + node_modules/src/ngb-config.ts + 13 + + MM + + + » + + node_modules/src/ngb-config.ts + 13 + + » + + + Select year + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Selecciona un any + + + Next month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Proper mes + + + Next + + node_modules/src/ngb-config.ts + 13 + + Següent + + + Minutes + + node_modules/src/ngb-config.ts + 13 + + Minuts + + + »» + + node_modules/src/ngb-config.ts + 13 + + »» + + + Increment hours + + node_modules/src/ngb-config.ts + 13 + + Incrementa hores + + + First + + node_modules/src/ngb-config.ts + 13 + + Primer + + + Previous + + node_modules/src/ngb-config.ts + 13 + + Anterior + + + Decrement hours + + node_modules/src/ngb-config.ts + 13 + + Disminuir hores + + + Next + + node_modules/src/ngb-config.ts + 13 + + Següent + + + Increment minutes + + node_modules/src/ngb-config.ts + 13 + + Incrementar minuts + + + Last + + node_modules/src/ngb-config.ts + 13 + + Últim + + + Decrement minutes + + node_modules/src/ngb-config.ts + 13 + + Decrementar minuts + + + SS + + node_modules/src/ngb-config.ts + 13 + + SS + + + Seconds + + node_modules/src/ngb-config.ts + 13 + + Segons + + + Increment seconds + + node_modules/src/ngb-config.ts + 13 + + Incrementa segons + + + Decrement seconds + + node_modules/src/ngb-config.ts + 13 + + Disminueix segons + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + Drop files to begin upload + + src/app/app.component.html + 7 + + Deixa fitxers per començar a carregar + + + Document added + + src/app/app.component.ts + 90 + + + src/app/app.component.ts + 100 + + Document afegit + + + Document was added to paperless. + + src/app/app.component.ts + 92 + + + src/app/app.component.ts + 102 + + Document afegit a paperless. + + + Open document + + src/app/app.component.ts + 93 + + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 46 + + Obre document + + + Could not add : + + src/app/app.component.ts + 116 + + No es pot afegir : + + + New document detected + + src/app/app.component.ts + 131 + + Nou document detectat + + + Document is being processed by paperless. + + src/app/app.component.ts + 133 + + Document processat per paperless. + + + Prev + + src/app/app.component.ts + 138 + + Prev + + + Next + + src/app/app.component.ts + 139 + + + src/app/components/document-detail/document-detail.component.html + 55 + + Següent + + + End + + src/app/app.component.ts + 140 + + Fi + + + The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + + src/app/app.component.ts + 145 + + El tauler es pot utilitzar per mostrar vistes desades, com ara una "Safata d'entrada". Aquesta configuració es troba a Configuració > Visualitzacions desades un cop hagis creat algunes. + + + Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + + src/app/app.component.ts + 155 + + Arrossega i deixa anar documents aquí per començar a penjar-los o col·locar-los a la carpeta de consum. També podeu arrossegar i deixar anar documents a qualsevol lloc de la resta de pàgines de l'aplicació web. Un cop ho feu, Paperless-ngx començarà a entrenar els seus algorismes d'aprenentatge automàtic. + + + The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + + src/app/app.component.ts + 165 + + La llista de documents mostra tots els vostres documents i permet el filtratge i l'edició massiva. Hi ha tres estils de vista diferents: llista, targetes petites i targetes grans. A la barra lateral es mostra una llista dels documents oberts actualment per editar-los. + + + The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. + + src/app/app.component.ts + 178 + + Les eines de filtratge permeten trobar ràpidament documents mitjançant diverses cerques, dates, etiquetes, etc. + + + Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. + + src/app/app.component.ts + 189 + + Qualsevol combinació de filtres es pot desar com a "vista" que després es pot mostrar al tauler i/o a la barra lateral. + + + Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + + src/app/app.component.ts + 199 + + Etiquetes, corresponsals, tipus de documents i les rutes d'emmagatzematge es poden gestionar mitjançant aquestes pàgines. També es poden crear des de la vista d'edició del document. + + + File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. + + src/app/app.component.ts + 209 + + Tasques d'Arxiu mostra documents que s'han consumit, que estan esperant o que poden haver fallat durant el procés. + + + Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + + src/app/app.component.ts + 219 + + Consulteu la configuració de d'ajustaments a l'aplicació web, canvieu la configuració de les visualitzacions desades o configureu el correu electrònic. + + + Thank you! 🙏 + + src/app/app.component.ts + 229 + + Gràcies! 🙏 + + + There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. + + src/app/app.component.ts + 231 + + Hi ha <em>tones</em> més funcions i informació que no hem cobert aquí, però això us hauria d'ajudar a començar. Consulteu la documentació o visiteu el projecte a GitHub per obtenir més informació o per informar de problemes. + + + Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! + + src/app/app.component.ts + 233 + + Finalment, en nom de tots els col·laboradors d'aquest projecte recolzat per la comunitat, gràcies per utilitzar Paperless-ngx! + + + Initiating upload... + + src/app/app.component.ts + 288 + + Inicialitzant pujada... + + + Paperless-ngx + + src/app/components/app-frame/app-frame.component.html + 11 + + app title + Paperless-ngx + + + Search documents + + src/app/components/app-frame/app-frame.component.html + 18 + + Cerca documents + + + Logged in as + + src/app/components/app-frame/app-frame.component.html + 39 + + Logat com + + + Settings + + src/app/components/app-frame/app-frame.component.html + 45 + + + src/app/components/app-frame/app-frame.component.html + 174 + + + src/app/components/app-frame/app-frame.component.html + 177 + + + src/app/components/manage/settings/settings.component.html + 1 + + + src/app/components/manage/settings/settings.component.html + 192 + + Opcions + + + Logout + + src/app/components/app-frame/app-frame.component.html + 50 + + Tanca la sessió + + + Dashboard + + src/app/components/app-frame/app-frame.component.html + 69 + + + src/app/components/app-frame/app-frame.component.html + 72 + + + src/app/components/dashboard/dashboard.component.html + 1 + + Tauler + + + Documents + + src/app/components/app-frame/app-frame.component.html + 76 + + + src/app/components/app-frame/app-frame.component.html + 79 + + + src/app/components/document-list/document-list.component.ts + 97 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + Documents + + + Saved views + + src/app/components/app-frame/app-frame.component.html + 85 + + + src/app/components/manage/settings/settings.component.html + 189 + + Vistes guardades + + + Open documents + + src/app/components/app-frame/app-frame.component.html + 101 + + Obre document + + + Close all + + src/app/components/app-frame/app-frame.component.html + 117 + + + src/app/components/app-frame/app-frame.component.html + 120 + + Tanca-ho tot + + + Manage + + src/app/components/app-frame/app-frame.component.html + 127 + + Gestiona + + + Correspondents + + src/app/components/app-frame/app-frame.component.html + 131 + + + src/app/components/app-frame/app-frame.component.html + 134 + + Corresponsal és + + + Tags + + src/app/components/app-frame/app-frame.component.html + 138 + + + src/app/components/app-frame/app-frame.component.html + 141 + + + src/app/components/common/input/tags/tags.component.html + 2 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 28 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 27 + + Etiquetes + + + Document types + + src/app/components/app-frame/app-frame.component.html + 145 + + + src/app/components/app-frame/app-frame.component.html + 148 + + Tipus document + + + Storage paths + + src/app/components/app-frame/app-frame.component.html + 152 + + + src/app/components/app-frame/app-frame.component.html + 155 + + Rutes emmagatzematge + + + File Tasks + + src/app/components/app-frame/app-frame.component.html + 159 + + + src/app/components/manage/tasks/tasks.component.html + 1 + + Tasques Arxiu + + + File Tasks + + src/app/components/app-frame/app-frame.component.html + 163 + + Tasques arxiu + + + Logs + + src/app/components/app-frame/app-frame.component.html + 167 + + + src/app/components/app-frame/app-frame.component.html + 170 + + + src/app/components/manage/logs/logs.component.html + 1 + + Logs + + + Info + + src/app/components/app-frame/app-frame.component.html + 183 + + + src/app/components/manage/tasks/tasks.component.html + 43 + + Info + + + Documentation + + src/app/components/app-frame/app-frame.component.html + 187 + + + src/app/components/app-frame/app-frame.component.html + 190 + + Documentació + + + GitHub + + src/app/components/app-frame/app-frame.component.html + 195 + + + src/app/components/app-frame/app-frame.component.html + 198 + + GitHub + + + Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 200 + + + src/app/components/app-frame/app-frame.component.html + 204 + + Suggeriu idea + + + is available. + + src/app/components/app-frame/app-frame.component.html + 213 + + està disponible. + + + Click to view. + + src/app/components/app-frame/app-frame.component.html + 213 + + Cliqueu per veure. + + + Paperless-ngx can automatically check for updates + + src/app/components/app-frame/app-frame.component.html + 217 + + Paperless-ngx pot cercar actualitzacions automàticament + + + How does this work? + + src/app/components/app-frame/app-frame.component.html + 224,226 + + Com funciona? + + + Update available + + src/app/components/app-frame/app-frame.component.html + 235 + + Actualització disponible + + + An error occurred while saving settings. + + src/app/components/app-frame/app-frame.component.ts + 89 + + + src/app/components/manage/settings/settings.component.ts + 593 + + Error al guardar opcions. + + + An error occurred while saving update checking settings. + + src/app/components/app-frame/app-frame.component.ts + 222 + + S'ha produït un error en desar la configuració de comprovació d'actualitzacions. + + + Clear + + src/app/components/common/clearable-badge/clearable-badge.component.html + 1 + + + src/app/components/common/date-dropdown/date-dropdown.component.html + 24 + + + src/app/components/common/date-dropdown/date-dropdown.component.html + 47 + + Neteja + + + Cancel + + src/app/components/common/confirm-dialog/confirm-dialog.component.html + 12 + + Cancel·la + + + Confirmation + + src/app/components/common/confirm-dialog/confirm-dialog.component.ts + 20 + + Confirmació + + + Confirm + + src/app/components/common/confirm-dialog/confirm-dialog.component.ts + 32 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 324 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 + + Confirma + + + After + + src/app/components/common/date-dropdown/date-dropdown.component.html + 19 + + Després + + + Before + + src/app/components/common/date-dropdown/date-dropdown.component.html + 42 + + Abans + + + Last 7 days + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 43 + + Últims 7 dies + + + Last month + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 47 + + El mes passat + + + Last 3 months + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 51 + + Últims 3 mesos + + + Last year + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 55 + + Darrer any + + + Name + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 9 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 9 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 8 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/settings/settings.component.html + 204 + + + src/app/components/manage/settings/settings.component.html + 257 + + + src/app/components/manage/settings/settings.component.html + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 + + + src/app/components/manage/tasks/tasks.component.html + 40 + + Nom + + + Matching algorithm + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 13 + + Algoritme coincident + + + Matching pattern + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 14 + + Patró coincident + + + Case insensitive + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 13 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 15 + + No distingeix majúscules - minúscules + + + Cancel + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 20 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 16 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 34 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 39 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 21 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 + + + src/app/components/common/select-dialog/select-dialog.component.html + 12 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 6 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 18 + + Cancel·la + + + Save + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 21 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 17 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 35 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 40 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 + + + src/app/components/document-detail/document-detail.component.html + 196 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 19 + + + src/app/components/manage/settings/settings.component.html + 415 + + Desa + + + Create new correspondent + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts + 25 + + Crear nou corresponsal + + + Edit correspondent + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts + 29 + + Edita corresponsal + + + Create new document type + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts + 25 + + Crea nou tipus de document + + + Edit document type + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts + 29 + + Edita tipus de document + + + Create new item + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 71 + + Crea element nou + + + Edit item + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 75 + + Edita element + + + Could not save element: + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 79 + + No es pot desar l'element: + + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permisos + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Crea nou grup usuari + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edita grup usuari + + + IMAP Server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 11 + + Servidor IMAP + + + IMAP Port + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 12 + + Port IMAP + + + IMAP Security + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 13 + + Seguretat IMAP + + + Username + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 16 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Nom usuari + + + Password + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 17 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Contrasenya + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Comprova si la contrasenya anterior és un testimoni utilitzat per l'autenticació + + + Character Set + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Joc de caràcters + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Carregant... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Prova + + + No encryption + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 13 + + Sense encriptació + + + SSL + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 14 + + SSL + + + STARTTLS + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 15 + + STARTTLS + + + Create new mail account + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 39 + + Crea nou compte de correu + + + Edit mail account + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 43 + + Edita compte correu + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + S'ha connectat correctament al servidor de correu + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + No es pot connectar al servidor de correu + + + Account + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 11 + + + src/app/components/manage/settings/settings.component.html + 295 + + Compte + + + Folder + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 12 + + Carpeta + + + Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 12 + + Les subcarpetes han d'estar separades per un delimitador, sovint un punt ('.') o una barra inclinada ('/'), però varia segons el servidor de correu. + + + Maximum age (days) + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 13 + + Edat màxima (dies) + + + Attachment type + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 14 + + Tipus de fitxer adjunt + + + Consumption scope + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 15 + + Àmbit consum + + + See docs for .eml processing requirements + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 15 + + Consulteu documentació per als requisits de processament .eml + + + Rule order + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 16 + + Ordre regla + + + Paperless will only process mails that match all of the filters specified below. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 19 + + Només es processaran els correus que coincideixin all amb els filtres especificats a continuació. + + + Filter from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 20 + + Filtra desde + + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtra a + + + Filter subject + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 22 + + Filtra assumpte + + + Filter body + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 23 + + Filtra cos + + + Filter attachment filename + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 24 + + Filtra nom adjunt + + + Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 24 + + Consumir només documents que coincideixin completament amb aquest nom de fitxer si s'especifica. Es permeten els comodins com ara *.pdf o *factura*. Cas insensible. + + + Action + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 27 + + Acció + + + Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 27 + + L'acció només es realitza quan es consumeixen documents del correu. Els correus sense adjunts romanen completament intactes. + + + Action parameter + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 28 + + Parametre d'acció + + + Assign title from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 29 + + Assigna títol des de + + + Assign document type + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 31 + + Assigna tipus document + + + Assign correspondent from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 32 + + Assigna corresponsal des de + + + Assign correspondent + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 33 + + Assigna corresponsal + + + Error + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 38 + + + src/app/services/toast.service.ts + 35 + + Error + + + Only process attachments + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 26 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 37 + + Només processa adjunts + + + Process all files, including 'inline' attachments + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 30 + + Processa tots els fitxers, inclosos els fitxers adjunts "in line" + + + Process message as .eml + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 41 + + Processa missatge com a .eml + + + Process message as .eml and attachments separately + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 45 + + Processa el missatge com a .eml i els fitxers adjunts per separat + + + Delete + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 + + + src/app/components/document-detail/document-detail.component.html + 11 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 141 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.ts + 213 + + + src/app/components/manage/settings/settings.component.html + 222 + + + src/app/components/manage/settings/settings.component.html + 270 + + + src/app/components/manage/settings/settings.component.html + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 + + Esborra + + + Move to specified folder + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 56 + + Mou a carpeta especificada + + + Mark as read, don't process read mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 60 + + Marca com a llegit, no processar correus llegits + + + Flag the mail, don't process flagged mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 64 + + Marca el correu, no processar els missatges marcats + + + Tag the mail with specified tag, don't process tagged mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 68 + + Etiqueta el correu amb l'etiqueta especificada, no processar correus etiquetats + + + Use subject as title + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 75 + + Utilitza assumpte com a títol + + + Use attachment filename as title + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 79 + + Utilitza nom adjunt com a títol + + + Do not assign a correspondent + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 86 + + No assignar corresponsal + + + Use mail address + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 90 + + Utilitza adreça correu + + + Use name (or mail address if not available) + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 94 + + Utilitza el nom (o l'adreça de correu si no està disponible) + + + Use correspondent selected below + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 98 + + Utilitzar el corresponsal seleccionat a continuació + + + Create new mail rule + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 139 + + Crea nova regla de correu + + + Edit mail rule + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 143 + + Edita regla correu + + + Path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 10 + + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 42 + + Camí + + + e.g. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 26 + + ex. + + + or use slashes to add directories e.g. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 28 + + o utilitza barres inclinades per afegir directoris, p. ex. + + + See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 30 + + Veure <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentació</a> per llista complerta. + + + Create new storage path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 35 + + Crea nova ruta emmagatzematge + + + Edit storage path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 39 + + Edita ruta emmagatzematge + + + Color + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 10 + + + src/app/components/manage/tag-list/tag-list.component.ts + 42 + + Color + + + Inbox tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 12 + + Etiqueta d'entrada + + + Inbox tags are automatically assigned to all consumed documents. + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 12 + + Etiquetes d'entrada son assignades automàticament a tots els document consumits. + + + Create new tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts + 26 + + Crea nova etiqueta + + + Edit tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts + 30 + + Eedita etiqueta + + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Nom + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Cognom + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Actiu + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superusuari + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Atorga tots els permisos i pot veure objectes) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Grups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Crea nou compte usuari + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Editar compte usuari + + + All + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 16 + + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 20 + + Tot + + + Any + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 18 + + Qualsevol + + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Inclou + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclou + + + Apply + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 40 + + Aplica + + + Click again to exclude items. + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 46 + + Feu clic de nou per excloure elements. + + + Not assigned + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts + 335 + + Filter drop down element to filter for documents with no correspondent/type/tag assigned + No assignat + + + Invalid date. + + src/app/components/common/input/date/date.component.html + 13 + + Data no vàlida. + + + Suggestions: + + src/app/components/common/input/date/date.component.html + 16 + + + src/app/components/common/input/select/select.component.html + 32 + + + src/app/components/common/input/tags/tags.component.html + 43 + + Suggerències: + + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edita Permissos + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Propietari: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Tots els usuaris poden veure i editar objectes sense propietari + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vista + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Usuaris: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Grups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Edita + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Permisos d'edició també atorguen permisos de visualització + + + Add item + + src/app/components/common/input/select/select.component.html + 12 + + Used for both types, correspondents, storage paths + Afegir element + + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privat + + + Add tag + + src/app/components/common/input/tags/tags.component.html + 12 + + Afegir etiqueta + + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Establir Permisos + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Permisos establerts aquí anul·laran els permisos existents + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Tipus + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Afegir + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Canvia + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Heretat del grup + + + Select + + src/app/components/common/select-dialog/select-dialog.component.html + 13 + + + src/app/components/common/select-dialog/select-dialog.component.ts + 17 + + + src/app/components/document-list/document-list.component.html + 8 + + Selecciona + + + Please select an object + + src/app/components/common/select-dialog/select-dialog.component.ts + 20 + + Selecciona objecte + + + Hello , welcome to Paperless-ngx + + src/app/components/dashboard/dashboard.component.ts + 36 + + Hola , benvingut a Paperless-ngx + + + Welcome to Paperless-ngx + + src/app/components/dashboard/dashboard.component.ts + 38 + + Benvingut a Paperless-ngx + + + Show all + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 3 + + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 27 + + Mostra tot + + + Created + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 9 + + + src/app/components/document-list/document-list.component.html + 172 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 63 + + + src/app/components/manage/tasks/tasks.component.html + 41 + + + src/app/services/rest/document.service.ts + 22 + + Creat + + + Title + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 10 + + + src/app/components/document-detail/document-detail.component.html + 75 + + + src/app/components/document-list/document-list.component.html + 144 + + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 172 + + + src/app/services/rest/document.service.ts + 20 + + Títol + + + Statistics + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 1 + + Estadí­stiques + + + Go to inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 4 + + Vés a la safata d'entrada + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Document safata + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Ves a documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Caràcters Totals + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Altres + + + Upload new documents + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 1 + + Puja nous documents + + + Dismiss completed + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 4 + + This button dismisses all status messages about processed documents on the dashboard (failed and successful) + Descarta completats + + + Drop documents here or + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 13 + + Deixa documents aquí o + + + Browse files + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 13 + + Examinar Arxius + + + {VAR_PLURAL, plural, =1 {One more document} other { more documents}} + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 25 + + This is shown as a summary line when there are more than 5 document in the processing pipeline. + {VAR_PLURAL, plural, one {}=1 {One more document} other { more documents}} + + + Processing: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 39 + + Processant: + + + Failed: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 42 + + Fallat: + + + Added: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 45 + + Afegit: + + + , + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 48 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 269 + + this string is used to separate processing, failed and added on the file upload widget + , + + + Paperless-ngx is running! + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 3 + + Paperless-ngx funcionant! + + + You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 4 + + Tot preparat per començar a penjar documents! Explora les diverses funcions d'aquesta aplicació web pel vostre compte o inicieu un recorregut ràpid amb el botó següent. + + + More detail on how to use and configure Paperless-ngx is always available in the documentation. + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 5 + + Més detalls de com utilitzar i configurar Paperless-ngx sempre estan disponibles a la pàgina documentació. + + + Thanks for being a part of the Paperless-ngx community! + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 8 + + Gràcies per formar part de la comunitat Paperless-ngx! + + + Start the tour + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 9 + + Comença el tour + + + Searching document with asn + + src/app/components/document-asn/document-asn.component.html + 1 + + Cercant documents amb ASN + + + Page + + src/app/components/document-detail/document-detail.component.html + 3 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 15 + + Pàgina + + + of + + src/app/components/document-detail/document-detail.component.html + 5,6 + + de + + + Download + + src/app/components/document-detail/document-detail.component.html + 19 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 105 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 64 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 94 + + Descarrega + + + Download original + + src/app/components/document-detail/document-detail.component.html + 25 + + Baixa original + + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 92 + + Refés OCR + + + More like this + + src/app/components/document-detail/document-detail.component.html + 40 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 44 + + Més com aquest + + + Close + + src/app/components/document-detail/document-detail.component.html + 43 + + + src/app/guards/dirty-saved-view.guard.ts + 40 + + Tanca + + + Previous + + src/app/components/document-detail/document-detail.component.html + 50 + + Anterior + + + Details + + src/app/components/document-detail/document-detail.component.html + 72 + + Detalls + + + Archive serial number + + src/app/components/document-detail/document-detail.component.html + 76 + + Número de sèrie de l'arxiu + + + Date created + + src/app/components/document-detail/document-detail.component.html + 77 + + Data de creació + + + Correspondent + + src/app/components/document-detail/document-detail.component.html + 79 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 40 + + + src/app/components/document-list/document-list.component.html + 137 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 36 + + + src/app/services/rest/document.service.ts + 19 + + Corresponsal + + + Document type + + src/app/components/document-detail/document-detail.component.html + 81 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 51 + + + src/app/components/document-list/document-list.component.html + 158 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 44 + + + src/app/services/rest/document.service.ts + 21 + + Tipus document + + + Storage path + + src/app/components/document-detail/document-detail.component.html + 83 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 62 + + + src/app/components/document-list/document-list.component.html + 165 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 52 + + Ruta emmagatzematge + + + Default + + src/app/components/document-detail/document-detail.component.html + 84 + + Per defecte + + + Content + + src/app/components/document-detail/document-detail.component.html + 91 + + Contingut + + + Metadata + + src/app/components/document-detail/document-detail.component.html + 100 + + + src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts + 17 + + Matadades + + + Date modified + + src/app/components/document-detail/document-detail.component.html + 106 + + Data modificació + + + Date added + + src/app/components/document-detail/document-detail.component.html + 110 + + Data afegit + + + Media filename + + src/app/components/document-detail/document-detail.component.html + 114 + + Nom Arxiu + + + Original filename + + src/app/components/document-detail/document-detail.component.html + 118 + + Nom arxiu original + + + Original MD5 checksum + + src/app/components/document-detail/document-detail.component.html + 122 + + Original MD5 checksum + + + Original file size + + src/app/components/document-detail/document-detail.component.html + 126 + + Mida arxiu original + + + Original mime type + + src/app/components/document-detail/document-detail.component.html + 130 + + Tipus mímic original + + + Archive MD5 checksum + + src/app/components/document-detail/document-detail.component.html + 134 + + MD5 checksum arxivat + + + Archive file size + + src/app/components/document-detail/document-detail.component.html + 138 + + Mida arxiu arxivat + + + Original document metadata + + src/app/components/document-detail/document-detail.component.html + 144 + + Metadates document original + + + Archived document metadata + + src/app/components/document-detail/document-detail.component.html + 145 + + Metadades del document arxivat + + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Vista prèvia + + + Enter Password + + src/app/components/document-detail/document-detail.component.html + 167 + + + src/app/components/document-detail/document-detail.component.html + 215 + + Introdueix Contrasenya + + + Notes + + src/app/components/document-detail/document-detail.component.html + 175,176 + + Notes + + + Discard + + src/app/components/document-detail/document-detail.component.html + 194 + + Descarta + + + Save & next + + src/app/components/document-detail/document-detail.component.html + 195 + + Desa & següent + + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + Error carregant contingut: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error recuperant metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error recuperant suggerències + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document guardat correctament. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error guardant document + + + Confirm delete + + src/app/components/document-detail/document-detail.component.ts + 571 + + + src/app/components/manage/management-list/management-list.component.ts + 209 + + Confirma eliminació + + + Do you really want to delete document ""? + + src/app/components/document-detail/document-detail.component.ts + 572 + + Realment vols esborrar el document ""? + + + The files for this document will be deleted permanently. This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 573 + + Els fitxers d'aquest document se suprimiran permanentment. Aquesta operació no es pot desfer. + + + Delete document + + src/app/components/document-detail/document-detail.component.ts + 575 + + Esborra document + + + Error deleting document: + + src/app/components/document-detail/document-detail.component.ts + 595,597 + + Error esborrant document: + + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 618 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 499 + + Refer OCR + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 619 + + Aquesta operació tornarà a fer l'OCR per a aquest document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 620 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 462 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 501 + + + src/app/components/manage/settings/settings.component.ts + 688 + + + src/app/components/manage/settings/settings.component.ts + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 + + Aquesta acció no es pot desfer. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 622 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 503 + + + src/app/components/manage/settings/settings.component.ts + 690 + + + src/app/components/manage/settings/settings.component.ts + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 + + Procedir + + + Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. + + src/app/components/document-detail/document-detail.component.ts + 630 + + L'operació de refer OCR començarà en segon pla. Tanqueu i torneu a obrir o recarregueu aquest document un cop finalitzada l'operació per veure contingut nou. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 641,643 + + Error executant operació: + + + Select: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 10 + + Selecciona: + + + Edit: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 27 + + Edita: + + + Filter tags + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 29 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 28 + + Filtra etiquetes + + + Filter correspondents + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 41 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 37 + + Filtra corresponsals + + + Filter document types + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 52 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 45 + + Filtra els tipus de documents + + + Filter storage paths + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 63 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 53 + + Filtra ruta emmagatzematges + + + Actions + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 89 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/settings/settings.component.html + 221 + + + src/app/components/manage/settings/settings.component.html + 259 + + + src/app/components/manage/settings/settings.component.html + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 + + + src/app/components/manage/tasks/tasks.component.html + 44 + + Accions + + + Include: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 111 + + Inclou: + + + Archived files + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 115,117 + + Arxius arxivats + + + Original files + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 121,123 + + Fitxers originals + + + Use formatted filename + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 128,130 + + Utilitza nom arxiu formatat + + + Error executing bulk operation: + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 185,187 + + Error executant operació en massa: + + + "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 261 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 267 + + "" + + + "" and "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 263 + + This is for messages like 'modify "tag1" and "tag2"' + "" i "" + + + and "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 271,273 + + this is for messages like 'modify "tag1", "tag2" and "tag3"' + i "" + + + Confirm tags assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 288 + + Confirma assignació etiquetes + + + This operation will add the tag "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 294 + + Això afegirà l'etiqueta "" a document(s) seleccionat(s). + + + This operation will add the tags to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 299,301 + + Això afegirà etiqueta a document(s) seleccionat(s). + + + This operation will remove the tag "" from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 307 + + Això esborarrà etiqueta "" de document(s) seleccionat(s). + + + This operation will remove the tags from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 312,314 + + Això esborrarà etiquetes de document(s) seleccionat(s). + + + This operation will add the tags and remove the tags on selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 316,320 + + Això afegirà les etiquetes i eliminarà les etiquetes de document(s) seleccionat(s). + + + Confirm correspondent assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 357 + + Confirma assignació corresponsal + + + This operation will assign the correspondent "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 359 + + Això assignarà el corresponsal "" a document(s) seleccionat(s). + + + This operation will remove the correspondent from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 361 + + Això treurà el corresponsal de document(s) seleccionat(s). + + + Confirm document type assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 395 + + Confirma assignació del tipus de document + + + This operation will assign the document type "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 397 + + Això assignarà el tipus de document "" a document(s) seleccionat(s). + + + This operation will remove the document type from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 399 + + L'operació treurà el tipus de document desde document(s) seleccionats. + + + Confirm storage path assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 433 + + Confirma assignació del camí d'emmagatzematge + + + This operation will assign the storage path "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 435 + + L'operació assignarà el camí d'emmagatzematge "" to document(s) seleccionats. + + + This operation will remove the storage path from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 437 + + L'operació esborrarà el camí d'emmagatzematge "" de document(s) seleccionats. + + + Delete confirm + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 460 + + Confirma esborrat + + + This operation will permanently delete selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 461 + + L'operació esborrarà document(s) seleccionats. + + + Delete document(s) + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 464 + + Esborra document(s) + + + This operation will permanently redo OCR for selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 500 + + Aquesta operació tornarà a fer l'OCR per document(s) seleccionats. + + + Filter by correspondent + + src/app/components/document-list/document-card-large/document-card-large.component.html + 20 + + + src/app/components/document-list/document-list.component.html + 194 + + Filtra per corresponsal + + + Filter by tag + + src/app/components/document-list/document-card-large/document-card-large.component.html + 24 + + + src/app/components/document-list/document-list.component.html + 199 + + Filtra per etiqueta + + + View notes + + src/app/components/document-list/document-card-large/document-card-large.component.html + 70 + + Veure notes + + + Notes + + src/app/components/document-list/document-card-large/document-card-large.component.html + 74 + + Notes + + + Filter by document type + + src/app/components/document-list/document-card-large/document-card-large.component.html + 76 + + + src/app/components/document-list/document-list.component.html + 212 + + Filtra per tipus de documents + + + Filter by storage path + + src/app/components/document-list/document-card-large/document-card-large.component.html + 83 + + + src/app/components/document-list/document-list.component.html + 217 + + Filtra per ruta emmagatzematge + + + Created: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 98,99 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 56,57 + + Creat: + + + Added: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 99,100 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 57,58 + + Afegit: + + + Modified: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 100,101 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 58,59 + + Modificat: + + + Score: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 110 + + Resultat: + + + Toggle tag filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 14 + + Commuta filtre etiqueta + + + Toggle correspondent filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 32 + + Commuta filtre corresponsal + + + Toggle document type filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 39 + + Commuta filtre tipus document + + + Toggle storage path filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 46 + + Commuta filtre emmagatzematge + + + Select none + + src/app/components/document-list/document-list.component.html + 11 + + Desseleccionar tot + + + Select page + + src/app/components/document-list/document-list.component.html + 12 + + Selecciona pàgina + + + Select all + + src/app/components/document-list/document-list.component.html + 13 + + Selecciona tot + + + Sort + + src/app/components/document-list/document-list.component.html + 38 + + Ordena + + + Views + + src/app/components/document-list/document-list.component.html + 64 + + + src/app/components/manage/settings/settings.component.html + 199 + + Vistes + + + Save "" + + src/app/components/document-list/document-list.component.html + 76 + + Desa "" + + + Save as... + + src/app/components/document-list/document-list.component.html + 78 + + Desa com a... + + + {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} + + src/app/components/document-list/document-list.component.html + 97 + + {VAR_PLURAL, plural, one {}=1 {Seleccionat d'un document} other {Selected de documents}} + + + {VAR_PLURAL, plural, =1 {One document} other { documents}} + + src/app/components/document-list/document-list.component.html + 99 + + {VAR_PLURAL, plural, one {}=1 {Un document} other { documents}} + + + (filtered) + + src/app/components/document-list/document-list.component.html + 99 + + (filtrat) + + + Error while loading documents + + src/app/components/document-list/document-list.component.html + 112 + + Error al carregar documents + + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Ordena per ASN + + + ASN + + src/app/components/document-list/document-list.component.html + 131,130 + + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 177 + + + src/app/services/rest/document.service.ts + 18 + + ASN + + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Ordena per corresponsal + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Ordena per títol + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Ordena per notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Ordena per tipus de document + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Ordena per ruta emmagatzematge + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Ordena per data de creació + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Ordena per data de creació + + + Added + + src/app/components/document-list/document-list.component.html + 179 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 69 + + + src/app/services/rest/document.service.ts + 23 + + Afegit + + + Edit document + + src/app/components/document-list/document-list.component.html + 198 + + Edita document + + + View "" saved successfully. + + src/app/components/document-list/document-list.component.ts + 205 + + Vista "" desada correctament. + + + View "" created successfully. + + src/app/components/document-list/document-list.component.ts + 246 + + Vista "" creada correctament. + + + Reset filters + + src/app/components/document-list/filter-editor/filter-editor.component.html + 82 + + Restableix filtres + + + Correspondent: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 108,110 + + Corresponsal: + + + Without correspondent + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 112 + + Sense corresponsal + + + Type: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 117,119 + + Tipus: + + + Without document type + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 121 + + Sense tipus de document + + + Tag: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 125,127 + + Etiqueta: + + + Without any tag + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 131 + + Sense cap etiqueta + + + Title: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 135 + + Títol: + + + ASN: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 138 + + ASN: + + + Title & content + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 175 + + Títol & contingut + + + Advanced search + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 180 + + Cerca avançada + + + More like + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 186 + + Més com + + + equals + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 205 + + és igual a + + + is empty + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 209 + + està buit + + + is not empty + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 213 + + no està buit + + + greater than + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 217 + + més gran que + + + less than + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 221 + + més petit que + + + Save current view + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 3 + + Guarda vista actual + + + Show in sidebar + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 9 + + + src/app/components/manage/settings/settings.component.html + 216 + + Mostra a la barra lateral + + + Show on dashboard + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 212 + + Mostra al panell + + + Filter rules error occurred while saving this view + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 12 + + Error de regles de filtre en desar la vista + + + The error returned was + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 13 + + Error retornat ha estat + + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Afegir nota + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Insereix nota. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Afegir nota + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Esborra nota + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error desant nota: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error esborrant nota: + + + correspondent + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 39 + + corresponsal + + + correspondents + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 40 + + corresponsals + + + Last used + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 45 + + Últim usat + + + Do you really want to delete the correspondent ""? + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 55 + + Esborrar corresponsal ""? + + + document type + + src/app/components/manage/document-type-list/document-type-list.component.ts + 36 + + tipus document + + + document types + + src/app/components/manage/document-type-list/document-type-list.component.ts + 37 + + tipus document + + + Do you really want to delete the document type ""? + + src/app/components/manage/document-type-list/document-type-list.component.ts + 44 + + Esborrar tipus de document ""? + + + Create + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + Creat + + + Filter by: + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + Filtrar per: + + + Matching + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + Coincidència + + + Document count + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + Nombre documents + + + Filter Documents + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + Filtra Documents + + + {VAR_PLURAL, plural, =1 {One } other { total }} + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + {VAR_PLURAL, plural, one {}=1 {One } other { total }} + + + Automatic + + src/app/components/manage/management-list/management-list.component.ts + 100 + + + src/app/data/matching-model.ts + 15 + + Automàtic + + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Cap + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error creant : . + + + Successfully created . + + src/app/components/manage/management-list/management-list.component.ts + 147 + + Creat correctament . + + + Error occurred while saving . + + src/app/components/manage/management-list/management-list.component.ts + 174,176 + + Error desant . + + + Successfully updated . + + src/app/components/manage/management-list/management-list.component.ts + 181 + + Actualitzat correctament . + + + Error occurred while saving : . + + src/app/components/manage/management-list/management-list.component.ts + 187,189 + + Error desant : . + + + Do you really want to delete the ? + + src/app/components/manage/management-list/management-list.component.ts + 196 + + Esborrar el ? + + + Associated documents will not be deleted. + + src/app/components/manage/management-list/management-list.component.ts + 211 + + Documents associats no seran esborrats. + + + Error while deleting element: + + src/app/components/manage/management-list/management-list.component.ts + 224,226 + + Error esborrant element: + + + Start tour + + src/app/components/manage/settings/settings.component.html + 2 + + Inicia el tour + + + Open Django Admin + + src/app/components/manage/settings/settings.component.html + 4 + + Obrir administració Django + + + General + + src/app/components/manage/settings/settings.component.html + 15 + + General + + + Appearance + + src/app/components/manage/settings/settings.component.html + 18 + + Aparença + + + Display language + + src/app/components/manage/settings/settings.component.html + 22 + + Llengua visualització + + + You need to reload the page after applying a new language. + + src/app/components/manage/settings/settings.component.html + 30 + + Has de recarregar la pàgina per aplicar una nova llengua. + + + Date display + + src/app/components/manage/settings/settings.component.html + 37 + + Visualització data + + + Date format + + src/app/components/manage/settings/settings.component.html + 50 + + Format de data + + + Short: + + src/app/components/manage/settings/settings.component.html + 56,57 + + Curt: + + + Medium: + + src/app/components/manage/settings/settings.component.html + 60,61 + + Mig: + + + Long: + + src/app/components/manage/settings/settings.component.html + 64,65 + + Llarg: + + + Items per page + + src/app/components/manage/settings/settings.component.html + 72 + + Ítems per pàgina + + + Document editor + + src/app/components/manage/settings/settings.component.html + 88 + + Editor de Document + + + Use PDF viewer provided by the browser + + src/app/components/manage/settings/settings.component.html + 92 + + Utilitza el visor PDF del navegador + + + This is usually faster for displaying large PDF documents, but it might not work on some browsers. + + src/app/components/manage/settings/settings.component.html + 92 + + Això sol ser més ràpid per mostrar documents PDF grans, però pot ser que no funcioni en alguns navegadors. + + + Sidebar + + src/app/components/manage/settings/settings.component.html + 99 + + Barra lateral + + + Use 'slim' sidebar (icons only) + + src/app/components/manage/settings/settings.component.html + 103 + + Empra barra lateral 'slim' (només icones) + + + Dark mode + + src/app/components/manage/settings/settings.component.html + 110 + + Mode fosc + + + Use system settings + + src/app/components/manage/settings/settings.component.html + 113 + + Utilitza la configuració del sistema + + + Enable dark mode + + src/app/components/manage/settings/settings.component.html + 114 + + Activar mode fosc + + + Invert thumbnails in dark mode + + src/app/components/manage/settings/settings.component.html + 115 + + Invertir miniatures en mode fosc + + + Theme Color + + src/app/components/manage/settings/settings.component.html + 121 + + Color Tema + + + Reset + + src/app/components/manage/settings/settings.component.html + 130 + + Restablir + + + Update checking + + src/app/components/manage/settings/settings.component.html + 135 + + Comprova actualització + + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + src/app/components/manage/settings/settings.component.html + 140,142 + + Comprovació d'actualització funciona fent ping a Github API per a la darrera versió per determinar si hi ha una versió nova disponible Aactualització real de l'aplicació s'ha de fer manualment. + + + No tracking data is collected by the app in any way. + + src/app/components/manage/settings/settings.component.html + 144,146 + + L'aplicació no recull dades de seguiment. + + + Enable update checking + + src/app/components/manage/settings/settings.component.html + 146 + + Habilita la cerca d'actualitzacions + + + Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. + + src/app/components/manage/settings/settings.component.html + 146 + + Per als usuaris de contenidors de tercers e.x. linuxserver.io aquesta notificació pot ser "avançada" a la versió actual de tercers. + + + Bulk editing + + src/app/components/manage/settings/settings.component.html + 150 + + Edició massiva + + + Show confirmation dialogs + + src/app/components/manage/settings/settings.component.html + 154 + + Mostra diàlegs de confirmació + + + Deleting documents will always ask for confirmation. + + src/app/components/manage/settings/settings.component.html + 154 + + Esborrat de documents sempre demanarà confirmació. + + + Apply on close + + src/app/components/manage/settings/settings.component.html + 155 + + Aplica al tancar + + + Enable notes + + src/app/components/manage/settings/settings.component.html + 163 + + Habilita notes + + + Notifications + + src/app/components/manage/settings/settings.component.html + 171 + + Notificacions + + + Document processing + + src/app/components/manage/settings/settings.component.html + 174 + + Processant document + + + Show notifications when new documents are detected + + src/app/components/manage/settings/settings.component.html + 178 + + Mostra notificacions quan es detectin documents nous + + + Show notifications when document processing completes successfully + + src/app/components/manage/settings/settings.component.html + 179 + + Mostra notificacions quan es processin documents correctament + + + Show notifications when document processing fails + + src/app/components/manage/settings/settings.component.html + 180 + + Mostra notificacions quan falli el processament de document + + + Suppress notifications on dashboard + + src/app/components/manage/settings/settings.component.html + 181 + + Suprimeix les notificacions del tauler + + + This will suppress all messages about document processing status on the dashboard. + + src/app/components/manage/settings/settings.component.html + 181 + + Això suprimirà tots els missatges sobre l'estat del processament de documents al tauler. + + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Mostra avís en tancar visualitzacions desades amb canvis no desats + + + Appears on + + src/app/components/manage/settings/settings.component.html + 209 + + Apareix a + + + No saved views defined. + + src/app/components/manage/settings/settings.component.html + 226 + + Sense vistes definides. + + + Mail + + src/app/components/manage/settings/settings.component.html + 240,239 + + Mail + + + Mail accounts + + src/app/components/manage/settings/settings.component.html + 245 + + Comptes correu + + + Add Account + + src/app/components/manage/settings/settings.component.html + 250 + + Afergir compte + + + Server + + src/app/components/manage/settings/settings.component.html + 258 + + Servidor + + + No mail accounts defined. + + src/app/components/manage/settings/settings.component.html + 276 + + Sense comptes de correu definides. + + + Mail rules + + src/app/components/manage/settings/settings.component.html + 282 + + Normes e-mail + + + Add Rule + + src/app/components/manage/settings/settings.component.html + 287 + + Afegir norma + + + No mail rules defined. + + src/app/components/manage/settings/settings.component.html + 313 + + Sense regles de correu definides. + + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Usuaris & Grups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Usuaris + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Afegir Usuari + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Afegir Grup + + + Saved view "" deleted. + + src/app/components/manage/settings/settings.component.ts + 475 + + Vista Guardada "" esborrada. + + + Settings saved + + src/app/components/manage/settings/settings.component.ts + 577 + + Configuració guardada + + + Settings were saved successfully. + + src/app/components/manage/settings/settings.component.ts + 578 + + Configuració guardada amb èxit. + + + Settings were saved successfully. Reload is required to apply some changes. + + src/app/components/manage/settings/settings.component.ts + 582 + + La configuració desada correctament. Cal tornar a carregar per aplicar alguns canvis. + + + Reload now + + src/app/components/manage/settings/settings.component.ts + 583 + + Recarrega ara + + + Use system language + + src/app/components/manage/settings/settings.component.ts + 601 + + Utilitza idioma del sistema + + + Use date format of display language + + src/app/components/manage/settings/settings.component.ts + 608 + + Utilitza el format de data de la llengua + + + Error while storing settings on server: + + src/app/components/manage/settings/settings.component.ts + 628,630 + + Error al desar opcions al servidor: + + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Contrasenya desada, es tancarà la sessió momentàniament. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Desat usuari "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Errordesant usuari: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirma esborrat compte usuari + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Això esborrarà definitivament aquest compte d'usuari. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Usuari esborrat + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error esborrant usuari: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Grup desat "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error desant grup: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirma esborrat grup usuari + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Operació esborrarà aquest grup d'usuari. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Grup esborrat + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error esborrant grup: . + + + Saved account "". + + src/app/components/manage/settings/settings.component.ts + 781 + + Compte desat "". + + + Error saving account: . + + src/app/components/manage/settings/settings.component.ts + 791 + + Error desant compte: . + + + Confirm delete mail account + + src/app/components/manage/settings/settings.component.ts + 801 + + Confirma esborrat compte correu + + + This operation will permanently delete this mail account. + + src/app/components/manage/settings/settings.component.ts + 802 + + L'operació esborrarà aquest compte de correu. + + + Deleted mail account + + src/app/components/manage/settings/settings.component.ts + 811 + + Compte correu esborrat + + + Error deleting mail account: . + + src/app/components/manage/settings/settings.component.ts + 820 + + Error esborrant compte de correu: . + + + Saved rule "". + + src/app/components/manage/settings/settings.component.ts + 839 + + Desada regla "". + + + Error saving rule: . + + src/app/components/manage/settings/settings.component.ts + 850 + + Error desant regla: . + + + Confirm delete mail rule + + src/app/components/manage/settings/settings.component.ts + 860 + + Confirma esborrat regla correu + + + This operation will permanently delete this mail rule. + + src/app/components/manage/settings/settings.component.ts + 861 + + Això esborrarà definitivament la regla de correu. + + + Deleted mail rule + + src/app/components/manage/settings/settings.component.ts + 870 + + Esborra regla de correu + + + Error deleting mail rule: . + + src/app/components/manage/settings/settings.component.ts + 879 + + Error esborrant regla de correu: . + + + storage path + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 36 + + ruta emmagatzematge + + + storage paths + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 37 + + rutes emmagatzematge + + + Do you really want to delete the storage path ""? + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 52 + + Esborrar ruta emmagatzematge ""? + + + tag + + src/app/components/manage/tag-list/tag-list.component.ts + 36 + + etiqueta + + + tags + + src/app/components/manage/tag-list/tag-list.component.ts + 37 + + etiquetes + + + Do you really want to delete the tag ""? + + src/app/components/manage/tag-list/tag-list.component.ts + 53 + + Esborrar etiqueta ""? + + + Clear selection + + src/app/components/manage/tasks/tasks.component.html + 6 + + Neteja selecció + + + Refresh + + src/app/components/manage/tasks/tasks.component.html + 20 + + Refresca + + + Results + + src/app/components/manage/tasks/tasks.component.html + 42 + + Resultats + + + click for full output + + src/app/components/manage/tasks/tasks.component.html + 66 + + clic per veure sortida completa + + + Dismiss + + src/app/components/manage/tasks/tasks.component.html + 81 + + + src/app/components/manage/tasks/tasks.component.ts + 62 + + Descarta + + + Open Document + + src/app/components/manage/tasks/tasks.component.html + 87 + + Obre Document + + + Failed  + + src/app/components/manage/tasks/tasks.component.html + 105 + + Fallida  + + + Complete  + + src/app/components/manage/tasks/tasks.component.html + 111 + + Completat  + + + Started  + + src/app/components/manage/tasks/tasks.component.html + 117 + + Començat  + + + Queued  + + src/app/components/manage/tasks/tasks.component.html + 123 + + En cua  + + + Dismiss selected + + src/app/components/manage/tasks/tasks.component.ts + 26 + + Descarta seleccionats + + + Dismiss all + + src/app/components/manage/tasks/tasks.component.ts + 27 + + + src/app/components/manage/tasks/tasks.component.ts + 60 + + Descarta tot + + + Confirm Dismiss All + + src/app/components/manage/tasks/tasks.component.ts + 58 + + Confirma Descarta Tot + + + tasks? + + src/app/components/manage/tasks/tasks.component.ts + 60 + + tasques? + + + 404 Not Found + + src/app/components/not-found/not-found.component.html + 7 + + 404 No Trobat + + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Aprenentatge automàtic + + + Any word + + src/app/data/matching-model.ts + 20 + + Qualsevol paraula + + + Any: Document contains any of these words (space separated) + + src/app/data/matching-model.ts + 21 + + Qualsevol: Document conté qualsevol de les paraules (separades espai) + + + All words + + src/app/data/matching-model.ts + 25 + + Totes les paraules + + + All: Document contains all of these words (space separated) + + src/app/data/matching-model.ts + 26 + + Qualsevol: Document conté qualsevol de les paraules (separades espai) + + + Exact match + + src/app/data/matching-model.ts + 30 + + Coincidència exacta + + + Exact: Document contains this string + + src/app/data/matching-model.ts + 31 + + Exacte: Document conté la cadena + + + Regular expression + + src/app/data/matching-model.ts + 35 + + Expressió regular + + + Regular expression: Document matches this regular expression + + src/app/data/matching-model.ts + 36 + + Expressió regular: el document coincideix amb aquesta expressió regular + + + Fuzzy word + + src/app/data/matching-model.ts + 40 + + Paraula difusa + + + Fuzzy: Document contains a word similar to this word + + src/app/data/matching-model.ts + 41 + + Fuzzy: el document conté una paraula semblant a aquesta + + + None: Disable matching + + src/app/data/matching-model.ts + 46 + + Cap: Deshabilita coincidències + + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Alerta: Canvis no desats al document(s). + + + Unsaved Changes + + src/app/guards/dirty-form.guard.ts + 17 + + + src/app/guards/dirty-saved-view.guard.ts + 32 + + + src/app/services/open-documents.service.ts + 104 + + + src/app/services/open-documents.service.ts + 131 + + Canvis no desats + + + You have unsaved changes. + + src/app/guards/dirty-form.guard.ts + 18 + + + src/app/services/open-documents.service.ts + 132 + + Hi han canvis sense desar. + + + Are you sure you want to leave? + + src/app/guards/dirty-form.guard.ts + 19 + + Estàs segur que vols sortir? + + + Leave page + + src/app/guards/dirty-form.guard.ts + 21 + + Abandona la pàgina + + + You have unsaved changes to the saved view + + src/app/guards/dirty-saved-view.guard.ts + 34 + + Canvis no desats a la vista guardada + + + Are you sure you want to close this saved view? + + src/app/guards/dirty-saved-view.guard.ts + 38 + + Segur que vols tancar la vista guardada? + + + Save and close + + src/app/guards/dirty-saved-view.guard.ts + 42 + + Desa i tanca + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + No tens permisos per fer això + + + (no title) + + src/app/pipes/document-title.pipe.ts + 11 + + (sense títol) + + + Yes + + src/app/pipes/yes-no.pipe.ts + 8 + + + + + No + + src/app/pipes/yes-no.pipe.ts + 8 + + No + + + Document already exists. + + src/app/services/consumer-status.service.ts + 15 + + Document ja existeix. + + + Document with ASN already exists. + + src/app/services/consumer-status.service.ts + 16 + + Ja existeix un document amb aquest ASN. + + + File not found. + + src/app/services/consumer-status.service.ts + 17 + + Arxiu no trobat. + + + Pre-consume script does not exist. + + src/app/services/consumer-status.service.ts + 18 + + Pre-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Script pre-consum no existent. + + + Error while executing pre-consume script. + + src/app/services/consumer-status.service.ts + 19 + + Pre-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Error al executar script pre-consum. + + + Post-consume script does not exist. + + src/app/services/consumer-status.service.ts + 20 + + Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Script post-consum no existeix. + + + Error while executing post-consume script. + + src/app/services/consumer-status.service.ts + 21 + + Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Error al executar script post-consum. + + + Received new file. + + src/app/services/consumer-status.service.ts + 22 + + Nou fitxer rebut. + + + File type not supported. + + src/app/services/consumer-status.service.ts + 23 + + Tipus de fitxer no suportat. + + + Processing document... + + src/app/services/consumer-status.service.ts + 24 + + Processant document... + + + Generating thumbnail... + + src/app/services/consumer-status.service.ts + 25 + + Generant miniatures... + + + Retrieving date from document... + + src/app/services/consumer-status.service.ts + 26 + + Recuperant data del document... + + + Saving document... + + src/app/services/consumer-status.service.ts + 27 + + Desant document... + + + Finished. + + src/app/services/consumer-status.service.ts + 28 + + Acabat. + + + You have unsaved changes to the document + + src/app/services/open-documents.service.ts + 106 + + Hi han canvis no desats al document + + + Are you sure you want to close this document? + + src/app/services/open-documents.service.ts + 110 + + Segur que vols tancar el document? + + + Close document + + src/app/services/open-documents.service.ts + 112 + + Tanca document + + + Are you sure you want to close all documents? + + src/app/services/open-documents.service.ts + 133 + + Segur que vols tancar tots els documents? + + + Close documents + + src/app/services/open-documents.service.ts + 135 + + Tanca documents + + + Modified + + src/app/services/rest/document.service.ts + 24 + + Modificat + + + Search score + + src/app/services/rest/document.service.ts + 32 + + Score is a value returned by the full text search engine and specifies how well a result matches the given query + Puntuació de cerca + + + English (US) + + src/app/services/settings.service.ts + 159 + + Anglès (US) + + + Arabic + + src/app/services/settings.service.ts + 165 + + Àrab + + + Belarusian + + src/app/services/settings.service.ts + 171 + + Bielorús + + + Catalan + + src/app/services/settings.service.ts + 177 + + Català + + + Czech + + src/app/services/settings.service.ts + 183 + + Txec + + + Danish + + src/app/services/settings.service.ts + 189 + + Danès + + + German + + src/app/services/settings.service.ts + 195 + + Alemany + + + English (GB) + + src/app/services/settings.service.ts + 201 + + Anglès (GB) + + + Spanish + + src/app/services/settings.service.ts + 207 + + Espanyol + + + French + + src/app/services/settings.service.ts + 213 + + Francès + + + Italian + + src/app/services/settings.service.ts + 219 + + Italià + + + Luxembourgish + + src/app/services/settings.service.ts + 225 + + Luxemburguès + + + Dutch + + src/app/services/settings.service.ts + 231 + + Holandès + + + Polish + + src/app/services/settings.service.ts + 237 + + Polac + + + Portuguese (Brazil) + + src/app/services/settings.service.ts + 243 + + Portuguès (Brasil) + + + Portuguese + + src/app/services/settings.service.ts + 249 + + Portuguès + + + Romanian + + src/app/services/settings.service.ts + 255 + + Romanès + + + Russian + + src/app/services/settings.service.ts + 261 + + Rus + + + Slovenian + + src/app/services/settings.service.ts + 267 + + Eslovè + + + Serbian + + src/app/services/settings.service.ts + 273 + + Serbi + + + Swedish + + src/app/services/settings.service.ts + 279 + + Suec + + + Turkish + + src/app/services/settings.service.ts + 285 + + Turc + + + Chinese Simplified + + src/app/services/settings.service.ts + 291 + + Xinès Simplificat + + + ISO 8601 + + src/app/services/settings.service.ts + 308 + + ISO 8601 + + + Successfully completed one-time migratration of settings to the database! + + src/app/services/settings.service.ts + 419 + + Completat correctament la migració de la configuració de la base de dades! + + + Unable to migrate settings to the database, please try saving manually. + + src/app/services/settings.service.ts + 420 + + No es pot migrar la configuració de la base de dades, prova manualment. + + + Information + + src/app/services/toast.service.ts + 43 + + Informació + + + Connecting... + + src/app/services/upload-documents.service.ts + 33 + + Connectant... + + + Uploading... + + src/app/services/upload-documents.service.ts + 45 + + Carregant… + + + Upload complete, waiting... + + src/app/services/upload-documents.service.ts + 48 + + Càrrega completada, esperant... + + + HTTP error: + + src/app/services/upload-documents.service.ts + 64 + + HTTP error: + + + + diff --git a/src-ui/src/locale/messages.cs_CZ.xlf b/src-ui/src/locale/messages.cs_CZ.xlf index c512a0801..16aecbafa 100644 --- a/src-ui/src/locale/messages.cs_CZ.xlf +++ b/src-ui/src/locale/messages.cs_CZ.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument byl přidán @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument byl přidán do Paperless-ngx. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Otevřít dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Nepodařilo se přidat : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Byl nalezen nový dokument @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument je zpracováván Paperless-ngx. @@ -342,35 +350,35 @@ Prev src/app/app.component.ts - 119 + 138 - Prev + Předchozí Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html 55 - Next + Další End src/app/app.component.ts - 121 + 140 - End + Konec The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,15 +442,15 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Děkujeme! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Initiating upload... @@ -469,7 +477,7 @@ 11 app title - Paperless-ngx + Paperless-ngx Search documents @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Nastavení @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Otevřené dokumenty @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Zavřít vše @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Spravovat @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korespondenti @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Typy dokumentu @@ -655,31 +667,31 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 - Storage paths + Cesty k úložišti File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Úlohy souboru File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentace @@ -727,23 +739,23 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 - GitHub + GitHub Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Navrhnout úpravu @@ -751,61 +763,61 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 - is available. + je k dispozici. Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 - Click to view. + Klikni pro zobrazení. Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 - Paperless-ngx can automatically check for updates + Paperless-ngx umí automaticky kontrolovat aktualizace How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 - How does this work? + Jak to funguje? Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 - Update available + K dispozici je aktualizace An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 - An error occurred while saving settings. + Nastala chyba při ukládání uživatelských nastavení. An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 - An error occurred while saving update checking settings. + Došlo k chybě při ukládání nastavení kontroly aktualizací. Clear @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Potvrdit @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Uložit @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Vytvořit nového korespondenta @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Upravit korespondenta @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Vytvořit nový typ dokumentu @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Upravit typ dokumentu @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Vytvořit novou položku @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Upravit položku @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Nelze uložit prvek: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Oprávnění + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Vytvořit novou uživatelskou skupinu + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Upravit uživatelskou skupinu + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + IMAP server IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + IMAP port IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + Zabezpečení IMAP Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Uživatelské jméno Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Heslo + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Znaková sada + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html 18 - Character Set + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Načítání... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Žádné šifrování SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Vytvořit nový e-mailový účet Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Upravit e-mailový účet + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Chyba @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Odstranit @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,107 +1799,99 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 - Use subject as title + Použít předmět jako titulek Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 - Use attachment filename as title + Použít název souboru u přílohy jako titulek Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 - Do not assign a correspondent + Nepřiřazovat korespondenta Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 - Use mail address + Použít emailovou adresu Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 - Use name (or mail address if not available) + Použít jméno (nebo e-mailovou adresu, pokud není k dispozici) Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 - Use correspondent selected below + Použít korespondenta vybraného níže Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 - Create new mail rule + Vytvořit nové pravidlo pošty Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 - Edit mail rule - - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Upravit pravidlo pošty Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 - Path + Cesta e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 - e.g. + např. or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 - or use slashes to add directories e.g. + nebo použijte lomítka pro přidání adresářů, např. See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,17 +1899,17 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 - Create new storage path + Vytvořit novou cestu k úložišti Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 - Edit storage path + Upravit cestu k úložiště Color @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Barva @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Vytvořit nový štítek @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Upravit štítek + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Křestní jméno + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Příjmení + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Aktivní + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuživatel + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Přidává všechna oprávnění a umí zobrazit objekty) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Skupiny + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Vytvořen nový uživatelský účet + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Upravit uživatelský účet + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1777,13 +2061,29 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 18 - Any + Jakýkoliv + + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Použít @@ -1791,15 +2091,15 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 - Click again to exclude items. + Klikněte znovu pro vyloučení položek. Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nepřiřazeno @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Návrhy: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Upravit oprávnění + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Vlastník: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objekty bez vlastníka mohou být zobrazeny a editovány všemi uživateli + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Zobrazení + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Uživatelé: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Skupiny: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Upravit + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Oprávnění editovat také přidá oprávnění prohlížet + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Přidat položku + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Přidat štítek + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Nastavit oprávnění + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Upozorňujeme, že zde nastavená oprávnění přepíší všechna existující oprávnění + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Typ + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Přidat + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Změnit + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,53 +2383,21 @@ Vyberte prosím objekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Loading... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 - Hello , welcome to Paperless-ngx + Ahoj , vítej v Paperless-ngx Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 - Welcome to Paperless-ngx + Vítej v Paperless-ngx Show all @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistika - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenty ve schránce: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Dokumenty celkem: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Zpracováváno: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Selhalo: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Přidáno: @@ -2071,14 +2585,14 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget - , + , Paperless-ngx is running! @@ -2086,7 +2600,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 3 - Paperless-ngx is running! + Paperless-ngx běží! You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. @@ -2094,7 +2608,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 4 - You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + Jste připraveni začít nahrávat dokumenty! Prozkoumejte různé funkce této webové aplikace sami, nebo začněte rychlou prohlídku pomocí tlačítka níže. More detail on how to use and configure Paperless-ngx is always available in the documentation. @@ -2102,7 +2616,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 5 - More detail on how to use and configure Paperless-ngx is always available in the documentation. + Podrobnější informace o používání a konfiguraci Paperless-ngx jsou vždy k dispozici v dokumentaci. Thanks for being a part of the Paperless-ngx community! @@ -2110,7 +2624,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 8 - Thanks for being a part of the Paperless-ngx community! + Děkujeme, že jste součástí komunity Paperless-ngx! Start the tour @@ -2118,7 +2632,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 9 - Start the tour + Spustit prohlídku Searching document with asn @@ -2128,46 +2642,6 @@ Hledání dokumentu s ASN - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Stáhnout @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Zavřít @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Metadata archivovaného dokumentu + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Enter Password - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Zrušit @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Uložit & další + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Potvrdit smazání @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Opravdu chcete smazat dokument ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Soubory tohoto dokumentu budou trvale smazány. Tuto operaci nelze vrátit zpět. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Smazat dokument - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Chyba při mazání dokumentu: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Tuto operaci nelze vrátit zpět. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrovat korespondenty @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrovat typy dokumentů @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 " @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" a "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' a "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Potvrdit přiřazení štítků @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Tato operace přidá štítek "" k vybraným dokumentům. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Tato operace odstraní štítek "" z vybraných dokumentů. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Potvrdit přiřazení korespondenta @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Tato operace přiřadí korespondenta "" k vybraným dokumentům. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Tato operace odstraní korespondenta z vybraných dokumentů. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Potvrdit přiřazení typu dokumentu @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Tato operace přiřadí typ dokumentu "" vybraným dokumentům. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Tato operace odstraní typ dokumentu vybraných dokumentů. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Potvrdit odstranění @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Tato operace trvale odstraní vybraných dokumentů. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Smazat dokument(y) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrovat podle korespondenta @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrovat podle štítku - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Upravit + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Zobrazení + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Shoda: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Pohledy Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Uložit "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Uložit jako... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, one {} few {Vybráno z dokumentů} many {Vybráno z dokumentů} =1 {Vybráno z dokumentu} other {Vybráno z dokumentů}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, one {} few { dokumenty} many { dokument} =1 {dokument} other { dokumentů}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrováno) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Zobrazení "" bylo úspěšně uloženo. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Zobrazení "" bylo úspěšně vytvořeno. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Zrušit filtry @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Bez korespondenta @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Bez typu dokumentu @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Bez štítku @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Název: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Název & Obsah @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Pokročilé vyhledávání @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Podobné @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 equals @@ -3394,33 +3984,33 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 - is empty + is empty is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 - is not empty + není prázdný greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 - greater than + větší než less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 - less than + menší než Save current view @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Zobrazit na postranním panelu @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Zobrazit na nástěnce @@ -3460,7 +4050,7 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 12 - Filter rules error occurred while saving this view + Při ukládání tohoto zobrazení došlo k chybě pravidel filtru The error returned was @@ -3468,37 +4058,89 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - The error returned was + Vrácená chyba byla + + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 - correspondent + korespondent correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 - correspondents + korespondenti Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 - Last used + Naposledy použito Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Opravdu chcete smazat korespondenta ""? @@ -3506,23 +4148,23 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 - document type + typ dokumentu document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 - document types + typy dokumentu Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Opravdu chcete smazat typ dokumentu""? @@ -3624,7 +4266,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Filtrovat dokumenty {VAR_PLURAL, plural, =1 {One } other { total }} @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatický + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Přidružené dokumenty nebudou smazány. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Aplikovat při zavření - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Toto potlačí všechny zprávy o stavu zpracování dokumentu na nástěnce. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Výskyt @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nejsou definovány žádné uložené pohledy. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Uložený pohled "" odstraněn. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Použít systémový jazyk @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Použít formát data zobrazeného jazyka @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Opravdu chcete odstranit štítek ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Nenalezeno + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Automaticky se učit hledat shody + Any word src/app/data/matching-model.ts - 14 + 20 Jakékoliv slovo @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Kterýkoli: Dokument obsahuje některé z těchto slov (oddělené mezerami) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Všechna slova @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Vše: Dokument obsahuje všechna tato slova (oddělená mezerou) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Přesná shoda @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Přesnost: Dokument obsahuje tento řetězec @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regulární výraz @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regulární výraz: Dokument odpovídá tomuto regulárnímu výrazu @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy slovo @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Přibližně: Dokument obsahuje slovo podobné tomuto slovu - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Automaticky se učit hledat shody + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Unsaved Changes @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 You have unsaved changes. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Are you sure you want to close this document? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Close document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Are you sure you want to close all documents? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Close documents @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Skóre vyhledávání @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Angličtina (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Czech @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danish @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Němčina @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Angličtina (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Španělština @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francouzština @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italština @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxembourgish @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holandština @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polština @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugalština (Brazílie) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugalština @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumunština @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Ruština @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Švédština @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinese Simplified @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informace @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Připojování... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Nahrávání... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Nahrávání dokončeno, čeká se... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP chyba: diff --git a/src-ui/src/locale/messages.da_DK.xlf b/src-ui/src/locale/messages.da_DK.xlf index d88631a3c..c6ff803f9 100644 --- a/src-ui/src/locale/messages.da_DK.xlf +++ b/src-ui/src/locale/messages.da_DK.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument tilføjet @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument blev tilføjet til paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Åbn dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Kunne ikke tilføje : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nyt dokument opdaget @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument behandles af paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Uploader... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Indstillinger @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Åbn dokumenter @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Luk alle @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Administrér @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korrespondenter @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Dokumenttyper @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Storage paths @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentation @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Foreslå en idé @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 er tilgængelig. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klik for at se. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Opdatering tilgængelig @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bekræft @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Gem @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Opret ny korrespondent @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Redigér korrespondent @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Opret ny dokumenttype @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Redigér dokumenttype @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Opret nyt element @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Redigér element @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Kunne ikke gemme element: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Indlæser... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Fejl @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Slet @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Path @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 e.g. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Create new storage path @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Edit storage path @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Farve @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Opret ny etiket @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Redigér etiket + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Anvend @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Klik igen for at ekskludere elementer. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Ikke tildelt @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Forslag: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vis + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Redigér + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Tilføj element + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Tilføj etiket + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Vælg venligst et objekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Indlæser... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistikker - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenter i indbakke: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Samtlige dokumenter: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Bearbejder: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Fejlede: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Tilføjet: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Søger efter dokument med asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Download @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Luk @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Arkiveret dokumentmetadata + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Indtast adgangskode - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Forkast @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Gem & næste + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Bekræft sletning @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Er du sikker på, at du vil slette dokument ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Filerne for dette dokument vil blive slettet permanent. Denne handling kan ikke fortrydes. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Slet dokument - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Fejl ved sletning af dokument: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Denne handling kan ikke fortrydes. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrer korrespondenter @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrer dokumenttyper @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Fejl ved udførelse af bulkoperation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" og "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' og "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Bekræft tildeling af etiketter @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Denne handling vil tilføje etiketten "" til valgte dokument(er). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Denne handling vil tilføje etiketterne "" til valgte dokument(er). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Denne handling vil fjerne etiketten "" fra valgte dokument(er). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Denne handling vil fjerne etiketterne "" fra valgte dokument(er). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Bekræft korrespondenttildeling @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Denne handling vil tildele korrespondenten "" til valgte dokument(er). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Denne handling vil fjerne korrespondenten fra valgte dokument(er). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Bekræft tildeling af dokumenttype @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Denne handling vil tildele dokumenttypen "" til valgte dokument(er). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Denne handling vil fjerne dokumenttypen fra valgte dokument(er). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Bekræft sletning @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Denne handling vil permanent slette valgte dokument(er). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Slet dokument(er) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrer efter korrespondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrer efter tag - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Redigér + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vis + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Score: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Visninger Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Gem "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Gem som... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Valgte af et dokument} other {Valgte af dokumenter}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Et dokument} other { dokumenter}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtreret) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Fejl ved indlæsning af dokumenter + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Visning "" er gemt. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Visning "" er oprettet. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Nulstil filtre @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Korrespondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Uden korrespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Uden dokumenttype @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Uden nogen etiket @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titel: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titel & indhold @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Avanceret søgning @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Mere som @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 equals @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is empty @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 is not empty @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 greater than @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 less than @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Vis i sidebjælke @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Vis på betjeningspanel @@ -3470,11 +4060,63 @@ Den givne fejl er + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 korrespondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondents @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Last used @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Er du sikker på, at du vil slette korrespondenten ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 dokumenttype @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 document types @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Er du sikker på, at du vil slette dokumenttypen ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatisk + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Er du sikker på, at du vil slette etiketten "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Tilknyttede dokumenter vil ikke blive slettet. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Anvend ved lukning - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Dette vil undertrykke alle meddelelser om dokumentbehandlingsstatus på betjeningspanelet. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Vises på @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Ingen gemte visninger. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Gemt visning "" slettet. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Benyt systemsprog @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Benyt datoformat for visningssprog @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Er du sikker på, at du vil slette etiketten ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Ikke fundet + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Lær automatisk at matche + Any word src/app/data/matching-model.ts - 14 + 20 Ethvert ord @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Ethvert: Dokumentet indeholder et af disse ord (separeret af mellemrum) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Alle ord @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Alle: Dokumentet indeholder alle disse ord (separeret af mellemrum) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Eksakt match @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Eksakt: Dokument indeholder denne streng @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regulær udtryk @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regulært udtryk: Dokumentet matcher dette regulære udtryk @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Tilnærmet ord @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Tilnærmet: Dokument indeholder et ord, der ligner dette ord - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Lær automatisk at matche + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Ugemte Ændringer @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Du har ugemte ændringer. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Er du sikker på, at du vil lukke dette dokument? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Luk dokument @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Er du sikker på, at du vil lukke alle dokumenter? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Luk dokumenter @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Søg score @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Engelsk (USA) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tjekkisk @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Dansk @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Tysk @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Engelsk (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spansk @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Fransk @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiensk @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburgsk @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Hollandsk @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polsk @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugisisk (Brasilien) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugisisk @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romansk @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russisk @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Svensk @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinese Simplified @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Information @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Forbinder... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Uploader... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Upload fuldført, venter... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP fejl: diff --git a/src-ui/src/locale/messages.de_DE.xlf b/src-ui/src/locale/messages.de_DE.xlf index fac0a1610..1b66fe8ef 100644 --- a/src-ui/src/locale/messages.de_DE.xlf +++ b/src-ui/src/locale/messages.de_DE.xlf @@ -284,13 +284,17 @@ src/app/app.component.html 7 - Dateien ablegen um Upload zu beginnen + Dateien ablegen, um den Upload zu starten Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument hinzugefügt @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Das Dokument wurde zu Paperless hinzugefügt. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Dokument öffnen @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Konnte nicht hinzufügen: @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Neues Dokument erkannt @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument wird von Paperless verarbeitet. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Zurück @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Ende @@ -370,23 +378,23 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 - Das Dashboard kann zum Anzeigen von gespeicherten Ansichten verwendet werden, wie zum Beispiel einem 'Posteingang'. Diese Einstellungen werden unter Einstellungen > gespeicherte Ansichten gefunden, sobald Sie mindestens eine eigene Ansicht erstellt haben. + Das Dashboard kann zum Anzeigen von gespeicherten Ansichten verwendet werden, wie zum Beispiel einem ‚Posteingang‘. Diese Einstellungen finden Sie unter Einstellungen > Gespeicherte Ansichten, sobald Sie mindestens eine eigene Ansicht erstellt haben. Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 - Ziehen Sie hier Dokumente hinein, um mit dem Hochladen zu beginnen oder kopieren Sie Dateien in den 'consume' Ordner. Sie können auch Dokumente überall auf allen anderen Seiten der Web-App ziehen. Wenn Sie dies tun, startet Paperless-ngx seine Algorithmen. + Ziehen Sie hier Dokumente hinein, um mit dem Hochladen zu beginnen oder kopieren Sie Dateien in den ‚consume‘-Ordner. Sie können auch überall Dokumente auf alle anderen Seiten der Web-App ziehen. Wenn Sie dies tun, startet Paperless-ngx seine Algorithmen. The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 Die Dokumentenliste zeigt alle Ihre Dokumente an und ermöglicht das Filtern sowie die Massenbearbeitung von mehreren Dokumenten. Es gibt drei verschiedene Ansichtsstile: Liste, kleine Karten und große Karten. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Mit den Filterwerkzeugen können Sie schnell Dokumente finden, die verschiedene Datumsbereiche, Tags und andere Suchbegriffe enthalten. @@ -402,15 +410,15 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 - Jede Kombination von Filterkriterien kann als 'Ansicht' gespeichert werden, die dann auf dem Dashboard und / oder der Seitenleiste angezeigt werden können. + Jede Kombination von Filterkriterien kann als ‚Ansicht‘ gespeichert werden, die dann auf dem Dashboard und/oder der Seitenleiste angezeigt werden können. Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Schlagwörter, Korrespondenten, Dokumententypen und Speicherpfade können über diese Seiten verwaltet werden. Sie können auch aus der Dokumentbearbeitung erstellt werden. @@ -418,15 +426,15 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 - Die Dateiaufgaben zeigen Ihnen Dokumente, die verarbeitet wurden, auf Verarbeitung warten oder während der Verarbeitung fehlgeschlagen sind. + Die ‚Dateiaufgaben‘ zeigen Ihnen Dokumente an, die verarbeitet worden sind, auf ihre Verarbeitung warten oder deren Verarbeitung fehlgeschlagen ist. Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Überprüfen Sie die Einstellungen für verschiedene Optimierungen der Web-App, ändern Sie Einstellungen für gespeicherte Ansichten oder richten Sie die E-Mail-Abfrage ein. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Vielen Dank! 🙏 @@ -442,23 +450,23 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 - Es gibt noch <em>erheblich</em> mehr Funktionen und Informationen, die nicht in der Tour abgedeckt wurden, nach der Tour sollten Sie jedoch direkt loslegen können. Schauen Sie sich die Dokumentation an oder besuchen Sie das Projekt auf GitHub um mehr zu erfahren oder Probleme zu melden. + Es gibt noch <em>erheblich</em> mehr Funktionen und Informationen, die mit der Tour nicht abgedeckt wurden. Nach der Tour sollten Sie jedoch direkt loslegen können. Schauen Sie sich die Dokumentation an oder besuchen Sie das Projekt auf GitHub, um mehr zu erfahren oder Probleme zu melden. Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 - Im Namen jedes Beitragenden zu diesem von der Gemeinschaft unterstützten Projekt, sagen wir, Danke, dass Sie Paperless-ngx benutzen! + Im Namen eines jeden Beitragenden zu diesem von der Gemeinschaft unterstützten Projekt, sagen wir Danke, dass Sie Paperless-ngx benutzen! Initiating upload... src/app/app.component.ts - 256 + 288 Beginne Upload... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Einstellungen @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Geöffnete Dokumente @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Alle schließen @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Verwalten @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korrespondenten @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Dokumenttypen @@ -655,19 +667,19 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 - Speicherpfad + Speicherpfade File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Dateiaufgaben @@ -687,23 +699,23 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html 1 - Protokoll + Protokolle Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentation @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Eine Idee vorschlagen @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 ist verfügbar. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Zum Anzeigen klicken. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx kann automatisch auf Updates überprüfen @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Wie funktioniert das? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Aktualisierung verfügbar @@ -791,21 +803,21 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 - Ein Fehler ist beim Speichern der Einstellungen aufgetreten. + Es ist ein Fehler beim Speichern der Einstellungen aufgetreten. An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 - Es ist ein Fehler beim Speichern der Update Einstellungen aufgetreten. + Es ist ein Fehler beim Speichern der Update-Einstellungen aufgetreten. Clear @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bestätigen @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Speichern @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Neuen Korrespondenten erstellen @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Korrespondenten bearbeiten @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Neuen Dokumenttyp erstellen @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Dokumenttyp bearbeiten @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Neues Element erstellen @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Element bearbeiten @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Konnte Element nicht speichern: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Berechtigungen + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Neue Benutzergruppe erstellen + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Benutzergruppe bearbeiten + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + IMAP-Server IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + IMAP-Port IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Sicherheit + IMAP-Sicherheit Username @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Benutzername @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Kennwort + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Kennwort ist Token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Prüfen, ob das obige Kennwort als Token zur Authentifizierung verwendet wird + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Zeichensatz + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Lädt... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Testen + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Keine Verschlüsselung @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Neues E-Mail-Konto anlegen @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 E-Mail-Konto bearbeiten + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Verbindung zum Mailserver hergestellt + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Verbindung zum Mailserver nicht möglich + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Konto @@ -1301,7 +1485,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Unterordner müssen durch einen Trennzeichen getrennt werden, oft durch einen Punkt ('.') oder einen Schrägstrich ('/'), aber dies variiert je nach Mail-Server. + Unterordner müssen durch ein Trennzeichen getrennt werden, oft durch einen Punkt (‚.‘) oder einen Schrägstrich (‚/‘), dies variiert jedoch je nach Mailserver. Maximum age (days) @@ -1359,11 +1543,19 @@ Filtern von + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtern nach + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Betreff filtern @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Nachrichteninhalt filtern @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Dateiname für Anhang filtern @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Wenn angegeben werden nur Dateien verarbeitet, die exakt diesem Dateinamen entsprechen. Platzhalter wie *.pdf oder *rechnung* sind erlaubt. Groß-/Kleinschreibung wird nicht berücksichtigt. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Aktion @@ -1403,15 +1595,15 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 - Die Aktion wird nur ausgeführt, wenn Dokumente über E-Mail konsumiert werden. E-Mails ohne Anhänge bleiben völlig unberührt. + Die Aktion wird nur ausgeführt, wenn Dokumente aus E-Mails verarbeitet werden. E-Mails ohne Anhänge bleiben vollkommen unberührt. Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Aktionsparameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Titel zuweisen von @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Dokumenttyp zuweisen @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Korrespondent zuweisen von @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Korrespondent zuweisen @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Fehler @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Nur Anhänge verarbeiten @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Alle Dateien verarbeiten, auch Anhänge im Textkörper @@ -1483,23 +1675,27 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 - E-mail als .eml verarbeiten + E-Mail als .eml verarbeiten Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 - E-mail als .eml und Anhänge separat verarbeiten + E-Mail als .eml und Anhänge separat verarbeiten Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Löschen @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 In den angegebenen Ordner verschieben @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Als gelesen markieren, verarbeite gelesene E-Mails nicht @@ -1579,23 +1783,23 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 - Als wichtig markieren, verarbeite wichtig markierte E-Mails nicht + Als wichtig markieren, verarbeite als wichtig markierte E-Mails nicht Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 - Markiere die Mail mit dem angegebenen Tag, verarbeite markierte E-Mails nicht + Markiere die E-Mail mit dem angegebenen Tag, verarbeite markierte E-Mails nicht Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Betreff als Titel verwenden @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Dateinamen des Anhangs als Titel verwenden @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Keinen Korrespondenten zuweisen @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 E-Mail-Adresse verwenden @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Namen (oder E-Mail-Adresse falls nicht verfügbar) verwenden @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Nachfolgend ausgewählten Korrespondent verwenden @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Neue E-Mail-Regel erstellen @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 E-Mail-Regel bearbeiten - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Beachten Sie, dass das Bearbeiten eines Pfades keine Änderungen an gespeicherten Dateien vornimmt, bis Sie das 'document_renamer' Dienstprogramm ausgeführt haben. Siehe Dokumentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Pfad @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 z. B. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 oder benutzen Sie Schrägstriche, um bspw. Verzeichnisse hinzuzufügen @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Siehe <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">Dokumentation</a> für eine vollständige Liste. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Erstelle neuen Speicherpfad @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Speicherpfad bearbeiten @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Farbe @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Neues Tag erstellen @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Tag bearbeiten + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + E-Mail + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Vorname + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Nachname + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Aktiv + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Erteilt alle Berechtigungen und kann Objekte ansehen) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Gruppen + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Neuen Benutzer erstellen + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Benutzer bearbeiten + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Irgendeines + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Einschließen + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Ausschließen + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Anwenden @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Erneut klicken, um Elemente auszuschließen. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nicht zugewiesen @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Vorschläge: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Berechtigungen bearbeiten + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Besitzer: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objekte ohne Besitzer können von allen Benutzern angesehen und bearbeitet werden + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Anzeigen + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Benutzer: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Gruppen: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Bearbeiten + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Berechtigungen bearbeiten und auch Zugriffsrechte gewähren + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Element hinzufügen + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privat + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Tag hinzufügen + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Berechtigungen ändern + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Beachten Sie, dass die hier festgelegten Berechtigungen alle vorhandenen Berechtigungen überschreiben werden + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Typ + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Hinzufügen + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Ändern + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Von Gruppe geerbt + Select @@ -1869,43 +2383,11 @@ Bitte wählen Sie ein Element aus - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Lädt... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hallo , willkommen zu Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Willkommen bei Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistiken - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumente im Posteingang: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Anzahl Dokumente gesamt: + Zum Posteingang + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Dokumente im Posteingang + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Zu den Dokumenten + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Dokumente insgesamt + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Zeichen insgesamt + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Sonstiges Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Verarbeite: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Fehlgeschlagen: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Hinzugefügt: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Dokument mit ASN wird gesucht - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Kommentar eingeben - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Bitte geben Sie einen Kommentar ein. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Kommentar hinzufügen - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Fehler beim Speichern des Kommentars: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Fehler beim Löschen des Kommentars: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Herunterladen @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 OCR wiederholen @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Schließen @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Speicherpfad @@ -2468,6 +2942,14 @@ Metadaten Archiv + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Vorschau + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 - Passwort eingeben + Kennwort eingeben - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Kommentare + Notizen Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Verwerfen @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Speichern & weiter + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + Fehler beim Laden von + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Fehler beim Abrufen der Metadaten + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Fehler beim Abrufen der Vorschläge + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Dokument erfolgreich gespeichert. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Fehler beim Speichern des Dokuments + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Löschen bestätigen @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Möchten Sie das Dokument "" wirklich löschen? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Die Dateien dieses Dokuments werden permanent gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Dokument löschen - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Fehler beim Löschen des Dokuments: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 OCR wiederholen bestätigen @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Diese Aktion wird die Texterkennung für das Dokument wiederholen. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Diese Aktion kann nicht rückgängig gemacht werden. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Fortfahren @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 OCR-Vorgang wird im Hintergrund neu gestartet. Schließen oder laden Sie dieses Dokument nach Abschluss der Operation neu oder öffnen Sie es erneut, um neue Inhalte anzuzeigen. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Fehler beim Ausführen der Aktion: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Korrespondenten filtern @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Dokumenttypen filtern @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Speicherpfade filtern @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Einbeziehen: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archivierte Dateien @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Originaldateien @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Formatierten Dateinamen verwenden @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Fehler beim Ausführen der Massenverarbeitung: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" und "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' und "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Tag-Zuweisung bestätigen @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Diese Aktion wird ausgewählten Dokumenten das Tag "" hinzufügen. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Diese Aktion wird die folgenden Tags hinzufügen zu ausgewählten Dokument(en). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Diese Aktion wird das Tag "" von ausgewählten Dokumenten entfernen. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Diese Aktion wird die folgenden Tags von ausgewählten Dokument(en) entfernen. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Diese Aktion wird die Tags hinzufügen und die Tags ertfernen von ausgewählten Dokument(en). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Korrespondent-Zuweisung bestätigen @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Diese Aktion wird ausgewählten Dokumenten den Korrespondent "" zuweisen. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Diese Aktion wird bei ausgewählten Dokumenten den Korrespondent entfernen. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Dokumenttyp-Zuweisung bestätigen @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Diese Aktion wird ausgewählten Dokumenten den Dokumenttyp "" zuweisen. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Diese Aktion wird bei ausgewählten Dokumenten den Dokumenttyp entfernen. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Bestätige Zuordnung des Speicherpfads @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Diese Aktion weist den Speicherpfad "" zu ausgewählten Dokument(en) zu. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Diese Aktion entfernt den Speicherpfad von ausgewählten Dokument(en). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Löschen bestätigen @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Diese Aktion wird ausgewählte Dokumente unwiderruflich löschen. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Dokument(e) löschen @@ -2954,9 +3504,9 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 - Diese Aktion wird OCR permanent für ausgewählte(s) Dokument(e) wiederholen. + Diese Aktion wird die Texterkennung für ausgewählte(s) Dokument(e) wiederholen. Filter by correspondent @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Nach Korrespondent filtern @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Nach Tag filtern - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Bearbeiten + Notizen anzeigen - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Anzeigen + Notizen Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Nach Dokumenttyp filtern @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Nach Speicherpfad filtern @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Erstellt: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Hinzugefügt: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Geändert: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Relevanz: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Korrespondenzfilter umschalten @@ -3130,15 +3636,15 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 - Dokumententyp Filter umschalten + Dokumenttyp-Filter umschalten Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Speicherpfadfilter umschalten @@ -3148,7 +3654,7 @@ src/app/components/document-list/document-list.component.html 11 - Nichts auswählen + Auswahl leeren Select page @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Ansicht Save "" src/app/components/document-list/document-list.component.html - 75 + 76 "" speichern @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Speichern als... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 { von 1 Dokumente ausgewählt} other { von Dokumente ausgewählt}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Ein Dokument} other { Dokumente}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (gefiltert) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Fehler beim Laden des Dokuments + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Nach ASN sortieren + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Nach Korrespondent sortieren + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Nach Titel sortieren + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Nach Notizen sortieren + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notizen + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Nach Dokumenttyp sortieren + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Nach Speicherpfad sortieren + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Nach „Ausgestellt am“ sortieren + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Nach „Hinzugefügt am“ sortieren + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Dokument bearbeiten @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Ansicht "" erfolgreich gespeichert. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Ansicht "" erfolgreich erstellt. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Filter zurücksetzen @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Korrespondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Ohne Korrespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Typ: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Ohne Dokumenttyp @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Ohne Tag @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titel: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titel & Inhalt @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Erweiterte Suche @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Ähnlich zu @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 entspricht @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 ist leer @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 ist nicht leer @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 größer als @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 kleiner als @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 In Seitenleiste zeigen @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Auf Startseite zeigen @@ -3470,11 +4060,63 @@ Der zurückgegebene Fehler war + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Notiz eingeben + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Bitte geben Sie eine Notiz ein. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Notiz hinzufügen + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Notiz löschen + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Fehler beim Speichern der Notiz: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Fehler beim Löschen einer Notiz: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 Korrespondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 Korrespondenten @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Zuletzt benutzt @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Möchten Sie den Korrespondenten "" wirklich löschen? @@ -3506,15 +4148,15 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 - dokumenttypen + Dokumenttyp document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 Dokumenttypen @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Möchten Sie den Dokumenttyp "" wirklich löschen? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatisch + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Keine + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Fehler beim Erstellen von : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 erfolgreich erstellt. - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Fehler beim Erstellen von : . + Fehler beim Speichern von . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 erfolgreich aktualisiert. @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Fehler beim Speichern von : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Möchten Sie das Dokument "" wirklich löschen? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Assoziierte Dokumente werden nicht gelöscht. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Fehler beim Löschen des Elements: @@ -3848,7 +4514,7 @@ src/app/components/manage/settings/settings.component.html 103 - Benutze Seitenleiste (nur Icons) + Benutze schlanke Seitenleiste (nur Icons) Dark mode @@ -3906,13 +4572,13 @@ Überprüfung auf Updates - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Die Überprüfung auf Updates funktioniert über Anfragen an die öffentliche Github API um zu Ermitteln, ob eine neue Version verfügbar ist. Das eigentliche Update der Anwendung muss weiterhin per Hand durchgeführt werden. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Anwenden beim Schließen - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Kommentare aktivieren + Notizen aktivieren Notifications @@ -4034,11 +4700,19 @@ Dadurch werden alle Benachrichtigungen über die Dokumentenverarbeitung auf der Startseite unterdrückt. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Warnung, wenn gespeicherte Ansichten mit ungespeicherten Änderungen geschlossen werden + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Erscheint auf @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Keine gespeicherten Ansichten vorhanden. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 E-Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 E-Mail-Konten @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Konto hinzufügen @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Keine E-Mail-Konten vorhanden. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 E-Mail-Regeln @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Regel hinzufügen @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Keine E-Mail-Regeln festgelegt. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Benutzer & Gruppen + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Benutzer + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Benutzer hinzufügen + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Gruppe hinzufügen + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Gespeicherte Ansicht "" gelöscht. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Einstellungen gespeichert @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Einstellungen wurden erfolgreich gespeichert. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Einstellungen wurden erfolgreich gespeichert. Neuladen ist erforderlich, um einige Änderungen zu übernehmen. @@ -4150,15 +4856,15 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 - Jetzt neuladen + Jetzt neu laden Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Benutze Systemsprache @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Benutze Datumsformat der Anzeigesprache @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Fehler beim Speichern der Einstellungen auf dem Server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Das Kennwort wurde geändert, Sie werden nun abgemeldet. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Benutzerkonto "" wurde gespeichert. + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Fehler beim Speichern des Benutzers: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Löschen des Benutzerkontos bestätigen + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Dieser Vorgang löscht dieses Benutzerkonto dauerhaft. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Gelöschter Benutzer + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Fehler beim Löschen des Benutzers: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Gruppe "" gespeichert. + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Fehler beim Speichern der Gruppe: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Löschen der Benutzergruppe bestätigen + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Dieser Vorgang löscht diese Benutzergruppe dauerhaft. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Gelöschte Gruppe + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Fehler beim Löschen der Gruppe: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Benutzerkonto " " wurde gespeichert. @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Fehler beim Speichern des Kontos: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Löschen des E-Mail-Kontos bestätigen @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 Dieser Vorgang wird dieses E-Mail-Konto dauerhaft löschen. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 E-Mail-Konto gelöscht @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Fehler beim Löschen des E-Mail-Kontos: . @@ -4230,15 +5040,15 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 - Regel " " gespeichert. + Regel „“ gespeichert. Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Fehler beim Speichern der Regel: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Löschen der E-Mail-Regel bestätigen @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 Dieser Vorgang wird diese E-Mail-Regel dauerhaft löschen. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 E-Mail-Regel gelöscht @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Fehler beim Löschen der E-Mail-Regel: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 Speicherpfad @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 Speicherpfade @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Wollen Sie den Speicherpfad wirklich löschen ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 Tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 Tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Möchten Sie das Tag "" wirklich löschen? @@ -4330,16 +5140,6 @@ Auswahl leeren - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4362,7 +5162,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - für vollständige Ausgabe anklicken + Für vollständige Ausgabe anklicken Dismiss @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Verwerfen @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Dokument öffnen @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Fehlgeschlagen  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Erledigt @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Gestartet  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 In der Warteschlange  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Auswahl verwerfen @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Alle @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Alle verwerfen bestätigen @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Aufgaben verwerfen? @@ -4460,11 +5260,19 @@ 404 Nicht gefunden + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Zuweisung automatisch erlernen + Any word src/app/data/matching-model.ts - 14 + 20 Irgendein Wort @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Irgendein Wort: Dokument enthält eins der folgenden Wörter @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Alle Wörter @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Alle: Dokument enthält alle folgenden Wörter @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exakte Übereinstimmung @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exakt: Dokument enthält die folgende Zeichenkette @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regulärer Ausdruck @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regulärer Ausdruck: Dokument passt zum folgenden Ausdruck @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Ungenaues Wort @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Ungenau: Dokument enthält ein zum folgenden Wort ähnliches Wort - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Zuweisung automatisch erlernen + Keine: Deaktiviere automatische Zuweisung Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Nicht gespeicherte Änderungen @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Sie haben ungespeicherte Änderungen. @@ -4594,7 +5402,7 @@ src/app/guards/dirty-form.guard.ts 19 - Sind Sie sicher, dass Sie gehen möchten? + Sind Sie sicher, dass Sie diese Seite verlassen möchten? Leave page @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 Sie haben ungespeicherte Änderungen an der gespeicherten Ansicht @@ -4616,17 +5424,25 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 - Sind Sie sicher, dass Sie diese gespeicherte Ansicht schließen wollen? + Sind Sie sicher, dass Sie diese gespeicherte Ansicht schließen möchten? Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 - Speichern und Schließen + Speichern und schließen + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Sie haben keine Berechtigung, dies zu tun (no title) @@ -4666,7 +5482,7 @@ src/app/services/consumer-status.service.ts 16 - Dokument existiert bereits. + Ein Dokument mit dieser ASN existiert bereits. File not found. @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Sie haben ungespeicherte Änderungen am Dokument @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Sind Sie sicher, dass Sie dieses Dokument schließen möchten? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Dokument schließen @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Sind Sie sicher, dass Sie alle Dokumente schließen möchten? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Alle Dokumente schließen @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Relevanz @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Englisch (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabisch @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarussisch + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tschechisch @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Dänisch @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Deutsch @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Englisch (UK) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spanisch @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Französisch @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italienisch @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburgisch @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Niederländisch @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polnisch @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugiesisch (Brasilien) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugiesisch @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumänisch @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russisch @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slowenisch @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbisch @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Schwedisch @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Türkisch @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinesisch (vereinfacht) @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Einmalige Migration der Einstellungen in die Datenbank erfolgreich abgeschlossen! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Einstellungen konnten nicht in die Datenbank migriert werden, bitte versuchen Sie es manuell. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Information @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Verbinde... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Hochladen... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Datei hochgeladen, warte... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP-Fehler: diff --git a/src-ui/src/locale/messages.es_ES.xlf b/src-ui/src/locale/messages.es_ES.xlf index cc319b3f9..119ab5d78 100644 --- a/src-ui/src/locale/messages.es_ES.xlf +++ b/src-ui/src/locale/messages.es_ES.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Documento añadido @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Documento agregado a paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Abrir documento @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 No se pudo añadir: @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nuevo documento detectado @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 El documento está siendo procesado por paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Anterior @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Fin @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Arrastra los documentos aquí para subirlos o colócalos en la carpeta de consumo. También puedes arrastrar los documentos en cualquier parte del resto de páginas de la aplicación. Una vez lo hagas, Paperless-ngx comenzará a entrenar los algoritmos de machine learning. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 La lista de documentos muestra todos tus documentos y te permite filtrar y editar en masa. Hay disponibles tres vistas diferentes: lista, tarjetas pequeñas y tarjetas grandes. La lista de los documentos que se encuentran abiertos en un momento dado se muestra en la barra lateral. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 ¡Gracias! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Por último, en nombre de todos los colaboradores de este proyecto apoyado por la comunidad, ¡gracias por utilizar Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Iniciando subida... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Ajustes @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Abrir documentos @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Cerrar todos @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Organizar @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Interlocutores @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipos de documento @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Rutas de almacenamiento @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentación @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Sugerir una idea @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 está disponible. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Haz clic para ver. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx puede comprobar automáticamente si hay actualizaciones @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 ¿Cómo funciona? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Actualización disponible @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Se produjo un error al guardar la configuración. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Se produjo un error al guardar la configuración de comprobación de actualizaciones. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Confirmar @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Salvar @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Crear nuevo interlocutor @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Editar interlocutor @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Crear nuevo tipo de documento @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Editar tipo de documento @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Crear nuevo elemento @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Editar elemento @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 No se pudo guardar el elemento: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Crear nuevo grupo de usuario + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Editar grupo de usuario + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Usuario @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Contraseña + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Compruebe si la contraseña anterior es un token utilizado para la autenticación + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Conjunto de caracteres + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Cargando... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Sin cifrado @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Crear una nueva cuenta de correo @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Editar cuenta de correo + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Cuenta @@ -1325,7 +1509,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 15 - Consumption scope + Ámbito de consumo See docs for .eml processing requirements @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtrar a + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Acción @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 La acción solo es ejecutada cuando se consumen documentos desde el correo. Los correos sin adjuntos permanecen intactos. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Asignar interlocutor desde @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Asignar interlocutor @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Error @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Solo procesar ficheros adjuntos @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Procesar todos los archivos, incluyendo los incrustados en el cuerpo del mensaje @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Procesar mensaje como .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Procesar mensaje como .eml y los adjuntos por separado @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Borrar @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Mover a la carpeta especificada @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Utilizar asunto como título @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Usar nombre de archivo adjunto como título @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 No asignar un interlocutor @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Usar dirección de correo @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Usar nombre (o dirección de correo si no está disponible) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Usar el interlocutor seleccionado a continuación @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Crear nueva regla de correo @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Editar regla de correo - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Ruta @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 por ejemplo. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 o utilice barras para añadir directorios p.ej. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Crear nueva ruta de almacenamiento @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Editar ruta de almacenamiento @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Color @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Crear nueva etiqueta @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Editar etiqueta + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + E-mail + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Nombre + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Apellido + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Activo + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superusuario + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Otorga todos los permisos y puede ver objetos) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Cualquiera + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Incluir + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Excluir + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Aplicar @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Haga clic de nuevo para excluir los elementos. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Sin asignar @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugerencias: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Editar Permisos + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Propietario: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vista + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Usuarios: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Grupos: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Editar + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Añadir elemento + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Añadir etiqueta + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Por favor, selecciona un objeto - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Cargando... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Bienvenido a Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Estadisticas - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documentos en la bandeja de entrada: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Total de documentos: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Procesando: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Fallidos: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Agregado: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Buscando documento con NSA - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Introducir comentario - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Por favor, introduzca un comentario. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Añadir comentario - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error guardando el comentario: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error borrando el comentario: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Descargar @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Rehacer OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Cerrar @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Ruta de almacenamiento @@ -2468,6 +2942,14 @@ Metadatos archivados + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Introducir contraseña - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comentarios + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Descartar @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Guardar y continuar + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirmar borrado @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 ¿Estás seguro de querer borrar el documento ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Los archivos para este documento serán borrados permanentemente. Esta operación no se puede deshacer. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Borrar documento - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Error borrando el documento: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Rehacer confirmación de OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Esta operación rehará permanentemente el OCR de este documento. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Esta operación no se puede deshacer. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Continuar @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrar interlocutores @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrar tipos de documento @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtrar rutas de almacenamiento @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error ejecutando operación múltiple: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" y "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' y "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirmar etiquetas asignadas @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Esta operación agregará la etiqueta "" a documento(s) seleccionado(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Esta operación agregará las etiquetas a documento(s) seleccionado(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Esta operacion eliminará la etiqueta "" de documento(s) seleccionado(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Esta operacion eliminará las etiquetas de documento(s) seleccionado(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Esta operacion agregará las etiquetas y eliminará las etiquetas en documento(s) seleccionado(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirmar asignación interlocutor @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Esta operación asignará el interlocutor "" a documento(s) seleccionado(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Esta operación eliminará el interlocutor de documento(s) seleccionado(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirmar asignación de tipo de documento @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Esta operacion asignará el tipo de documento "" a documento(s) seleccionado(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Esta operación eliminará el tipo de documento de documento(s) seleccionado(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirmar asignación de ruta de almacenamiento @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Esta operación asignará la ruta de almacenamiento "" a documento(s) seleccionados. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Esta operación eliminará la ruta de almacenamiento de documento(s) seleccionados. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Confirmar borrado @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Esta operación borrará permanentemente documento(s) seleccionado(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Borrar documento(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Esta operación rehará permanentemente OCR para documento(s) seleccionados. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrar por interlocutor @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrar por etiqueta - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Editar + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vista + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtrar por tipo de documento @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtrar por ruta de almacenamiento @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Creado: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Añadido: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modificado: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Puntuación: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Cambiar filtro de interlocutores @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Activar filtro de tipo de documento @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Activar filtro de ruta de almacenamiento @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Vistas Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Guardar "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Guardar como... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Seleccionado de un documento} other {Seleccionados de documentos}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Un documento} other { documentos}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrado) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error al cargar los documentos + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ NSF + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Editar documento @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Ver "" guardado satisfactoriamente. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Ver "" creado satisfactoriamente. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Quitar filtros @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Interlocutor: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Sin interlocutor @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Tipo: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Sin tipo de documento @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Etiqueta: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Sin ninguna etiqueta @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Título: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 NSA: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titulo y contenido @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Búsqueda avanzada @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Más parecido @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 es igual a @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 está vacío @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 no está vacío @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 es mayor que @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 es menor que @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Mostrar barra lateral @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Mostrar en el panel de control @@ -3470,11 +4060,63 @@ El error devuelto fue + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 interlocutor @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 interlocutores @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Usado por última vez @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 ¿Estás seguro de querer borrar el interlocutor ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 tipo de documento @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 tipos de documento @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 ¿Estás seguro de querer borrar el tipo de documento ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automático + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 ¿Estás seguro de que quieres eliminar ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Los documentos asociados no serán borrados. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error borrando el elemento: @@ -3906,13 +4572,13 @@ Comprobación de actualizaciones - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - La comprobación de actualizaciones funciona contactando con la API pública de Github para obtener la información de la última versión y así determinar si hay una nueva disponible. La propia aplicación debe ser actualizada manualmente. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Aplicar al cerrar - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Activar comentarios + Enable notes Notifications @@ -4034,11 +4700,19 @@ Esto suprimirá todos los mensajes de estado de procesamiento en el panel de control. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Aparece en @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 No hay ninguna vista guardada definida @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Correo @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Cuentas de correo @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Añadir cuenta @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Servidor @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No hay ninguna cuenta de correo configurada. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Reglas de correo @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Añadir regla @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No hay reglas de correo definidas. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Vista guardada "" borrada. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Configuración guardada @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 La configuración se ha guardado correctamente. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 La configuración se ha guardado con éxito. Es necesario recargar para aplicar algunos cambios. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Recargar ahora @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Usar idioma del sistema @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Usar formato de fechas del idioma seleccionado @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error al almacenar la configuración en el servidor: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 ruta de almacenamiento @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 rutas de almacenamiento @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 ¿Realmente desea eliminar la ruta de almacenamiento ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 etiqueta @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 etiquetas @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 ¿Estás seguro de querer borrar la etiqueta ""? @@ -4330,16 +5140,6 @@ Borrar selección - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Descartar @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Error @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Descartar seleccionados @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Descartar todo @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirmar Descartar Todo @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tareas? @@ -4460,11 +5260,19 @@ 404 No encontrado + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Automático: Aprender automáticamente + Any word src/app/data/matching-model.ts - 14 + 20 Cualquier palabra @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Cualquiera: El documento contiene cualquiera de estas palabras (separadas por espacios) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Todas las palabras @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Todas: El documento contiene todas estas palabras (separadas por espacios) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Coincidencia exacta @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exacto: El documento contiene este texto @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Expresión regular @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Expresión regular: El documento coincide con esta expresión regular @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Palabra borrosa @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Difuso: El documento contiene una palabra similar a esta - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Automático: Aprender automáticamente + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Cambios sin guardar @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Tiene cambios sin guardar. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Guardar y cerrar + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Tienes cambios sin guardar en este documento @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 ¿Está seguro de querer cerrar este documento? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Cerrar documento @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 ¿Está seguro de querer cerrar todos los documentos? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Cerrar documentos @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Puntuación de búsqueda @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Inglés (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Bielorruso + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Checo @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danés @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Alemán @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Inglés (Gran Bretaña) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Español @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francés @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiano @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburgués @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Alemán @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polaco @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugués (Brasil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugués @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumano @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Ruso @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Esloveno @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbio @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Sueco @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turco @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chino simplificado @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 ¡Se completó con éxito la migración única de la configuración a la base de datos! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 No se puede migrar la configuración a la base de datos, por favor intente guardarla manualmente. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Información @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Conectando... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Subiendo... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Subida completa, esperando... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Error HTTP: diff --git a/src-ui/src/locale/messages.fi_FI.xlf b/src-ui/src/locale/messages.fi_FI.xlf index 7249adcf5..40ddb480c 100644 --- a/src-ui/src/locale/messages.fi_FI.xlf +++ b/src-ui/src/locale/messages.fi_FI.xlf @@ -74,7 +74,7 @@ 13 Currently selected slide number read by screen reader - Slide of + Liu'uta / Hours @@ -290,15 +290,23 @@ Document added src/app/app.component.ts - 78 + 90 - Dokumentti lisätty + + src/app/app.component.ts + 100 + + Asiakirja lisätty Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Asiakirja on lisätty Paperlessiin. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Avaa asiakirja @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Ei voitu lisätä : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Uusi asiakirja havaittu @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Paperless käsittelee asiakirjaa . @@ -342,15 +350,15 @@ Prev src/app/app.component.ts - 119 + 138 - Prev + Edellinen Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,103 +370,103 @@ End src/app/app.component.ts - 121 + 140 - End + Loppu The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 - The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + Kojelautaa voidaan käyttää näytettäessä tallennettuja näkymiä, kuten 'Saapuneet'. Nämä asetukset löytyvät Asetuksista > kohdasta Tallennetut näkymät. Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 - Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + Vedä ja pudota asiakirjoja tänne aloittaaksesi lataamisen tai siirrä ne noutohakemistoon. Voit myös pudottaa asiakirjoja missä tahansa muilla sivuilla. Kun teet niin, Paperless-ngx alkaa kouluttaa sen koneoppimisen algoritmeja. The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 - The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + Asiakirjaluettelo näyttää kaikki asiakirjat ja mahdollistaa suodattamisen ja massamuokkauksen. On olemassa kolme erilaista näkymää: luettelo, pienet kortit ja suuret kortit. Sivupalkissa näytetään luettelo tällä hetkellä avatuista asiakirjoista. The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 - The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. + Suodatustyökalujen avulla voit löytää asiakirjoja nopeasti käyttämällä erilaisia hakuja, päivämääriä, tageja jne. Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 - Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. + Mikä tahansa suodattimien yhdistelmä voidaan tallentaa 'näkymäksi', joka voidaan näyttää hallintapaneelissa ja / tai sivupalkissa. Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 - Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + Tunnisteita, yhteyshenkilöitä, asiakirjatyyppejä ja tallennuspolkuja voidaan hallita näillä sivuilla. Niitä voidaan myös luoda asiakirjan muokkausnäkymästä. File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 - File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. + Tiedostotehtävät näyttää asiakirjat, jotka on viety, odottavat tai ovat epäonnistuneet tehtävän aikana. Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 - Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + Tarkista asetukset erilaisille muutoksille web-sovelluksessa, muuta tallennettujen näkymien asetuksia tai määritä sähköpostitilin tarkistus. Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Kiitos! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 - There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. + On <em>muitakin</em> ominaisuuksia ja tietoja, joita ei lue täällä, mutta näillä pääset alkuun. Tutustu dokumentaatioon tai vieraile GitHubissa oppiaksesi lisää tai raportoidaksesi ongelmista. Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 - Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! + Lopuksi kiitän kaikkia osallistujia, jotka ovat käyttäneet Paperless-ngxia! Initiating upload... src/app/app.component.ts - 256 + 288 Aloittaa latausta... @@ -477,7 +485,7 @@ src/app/components/app-frame/app-frame.component.html 18 - Etsi dokumentteja + Etsi asiakirjoja Logged in as @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Asetukset @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Avaa asiakirjat @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Sulje kaikki @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Hallitse @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Yhteyshenkilöt @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,23 +655,23 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 - Dokumenttityypit + Asiakirjatyypit Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Tallennustilan polut @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,19 +691,19 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 - File Tasks + Tiedostotehtävät Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentaatio @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Ehdota ideaa @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 on saatavilla. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Näytä klikkaamalla. @@ -767,23 +779,23 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 - Paperless-ngx can automatically check for updates + Paperless-ngx voi tarkistaa päivitykset automaattisesti How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 - How does this work? + Kuinka tämä toimii? Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Päivitys saatavilla @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Virhe tallennettaessa asetuksia. @@ -803,9 +815,9 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 - An error occurred while saving update checking settings. + Virhe tallennettaessa päivitystarkistuksen asetuksia Clear @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Vahvista @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Tallenna @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Luo uusi yhteyshenkilö @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Muokkaa yhteyshenkilöä @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Luo uusi asiakirjatyyppi @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Muokkaa asiakirjatyyppiä @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Luo uusi @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Muokkaa @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Elementtiä ei voitu tallentaa: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Käyttöoikeudet + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Luo käyttäjäryhmä + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Muokkaa käyttäjäryhmää + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + IMAP-palvelin IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + IMAP-portti IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + IMAP-suojaus Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Käyttäjänimi Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Salasana + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Salasana on token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Tarkista, onko yllä oleva salasana token, jota käytetään autentikoimiseen Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Merkistö + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html 18 - Character Set + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Ladataan... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Testaa No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Ei salausta SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Lisää uusi sähköpostitili Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Muokkaa sähköpostitiliä + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Yhteyden muodostaminen sähköpostipalvelimeen onnistui + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Yhdistäminen sähköpostipalvelimeen epäonnistui Account @@ -1283,9 +1467,9 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 - Account + Tili Folder @@ -1293,7 +1477,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Folder + Kansio Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. @@ -1301,7 +1485,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. + Alikansiot on erotettava erottimella, usein pisteellä ('.') tai kauttaviivalla ('/'), vaihtelee sähköpostipalvelimen mukaan Maximum age (days) @@ -1309,7 +1493,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 13 - Maximum age (days) + Enimmäisikä (päivää) Attachment type @@ -1317,7 +1501,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 14 - Attachment type + Liitteen tyyppi Consumption scope @@ -1325,7 +1509,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 15 - Consumption scope + Sisäänluennan laajuus See docs for .eml processing requirements @@ -1333,7 +1517,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 15 - See docs for .eml processing requirements + Katso ohje .eml tiedostojen käsittelyn vaatimuksiin Rule order @@ -1341,7 +1525,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 16 - Rule order + Sääntöjen järjestys Paperless will only process mails that match all of the filters specified below. @@ -1349,7 +1533,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 19 - Paperless will only process mails that match all of the filters specified below. + Paperless käsittelee vain sähköposteja, jotka vastaavat kaikkia alla määritettyjä suodattimia. Filter from @@ -1357,105 +1541,113 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 20 - Filter from + Suodata lähettäjä-kenttä + + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Suodata lähettäjä-kenttä Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 - Filter subject + Suodata aihe Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 - Filter body + Suodata runko Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 - Filter attachment filename + Suodata liitteen tiedostonimi Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 - Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. + Tuo vain dokumentit jotka täsmäävät täysin tiedostonimen suhteen. Jokerimerkit kuten *.pdf tai *lasku* ovat sallittuja. Kirjainkoko ei merkitse. Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 - Action + Toiminto Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 - Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. + Tämä toiminto suoritetaan vasta, kun asiakirjat on luettu sähköpostin kautta. Sähköpostit ilman liitteitä pysyvät täysin koskemattomina. Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 - Action parameter + Toiminnon parametrit Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 - Assign title from + Aseta otsikko kohteesta Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 - Assign document type + Määritä asiakirjatyyppi Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 - Assign correspondent from + Määritä yhteyshenkilö Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 - Assign correspondent + Määritä yhteyshenkilö Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Virhe @@ -1463,43 +1655,47 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 - Only process attachments + Käsittele vain liitteet Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 - Process all files, including 'inline' attachments + Käsittele kaikki tiedostot, mukaan lukien 'inline'-liitteet' Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 - Process message as .eml + Käsittele viesti .eml muodossa Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 - Process message as .eml and attachments separately + Käsittele viesti .eml muodossa ja liitetiedostot erikseen Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Poista @@ -1563,115 +1767,107 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 - Move to specified folder + Siirrä valittuun kansioon Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 - Mark as read, don't process read mails + Merkitse luetuksi, älä käsittele lukemia sähköposteja Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 - Flag the mail, don't process flagged mails + Liputa sähköposti, älä käsittele liputettuja sähköposteja Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 - Tag the mail with specified tag, don't process tagged mails + Merkitse sähköposti tagilla, älä käsittele tagattuja sähköposteja Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 - Use subject as title + Käytä aihetta otsikkona Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 - Use attachment filename as title + Käytä liitteen tiedostonimeä otsikkona Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 - Do not assign a correspondent + Älä määritä yhteyshenkilöä Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 - Use mail address + Käytä sähköpostiosoitetta Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 - Use name (or mail address if not available) + Käytä nimeä (tai sähköpostiosoitetta, jos ei ole saatavilla) Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 - Use correspondent selected below + Käytä valittua yhteyshenkilöä Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 - Create new mail rule + Luo uusi sähköpostisääntö Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 - Edit mail rule - - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Muokkaa sähköpostisääntöä Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Polku @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 esim. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 tai käytä kauttaviivoja lisätäksesi hakemistoja, esim. @@ -1695,15 +1891,15 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 - See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. + Katso <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">dokumentaatio</a>. Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Luo uusi tallennuspolku @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Muokkaa tallennustilan polkua @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Väri @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Luo uusi tägi @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Muokkaa tagia + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Sähköposti + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Etunimi + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Sukunimi + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Aktiivinen + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Pääkäyttäjä + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Antaa kaikki oikeudet ja voi katsella kohteita) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Ryhmät + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Luo uusi käyttäjätili + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Muokkaa käyttäjätiliä + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Mikä tahansa + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Sisällytä + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Ohita + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Käytä @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Klikkaa uudelleen jättääksesi pois kohteita. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Ei määritetty @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Ehdotukset: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Muokkaa käyttöoikeuksia + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Omistaja: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Kaikki käyttäjät voivat katsoa ja muokata kohteita ilman omistajaa + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Näytä + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Käyttäjät: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Ryhmät: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Muokkaa + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Muokkaa käyttöoikeuksia ja myönnä katseluoikeuksia + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Lisää kohde + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Yksityinen + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Lisää tunniste + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Aseta käyttöoikeudet + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Tässä asetetut käyttöoikeudet korvaavat olemassa olevat käyttöoikeudet + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Tyyppi + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Lisää + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Muuta + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Peritty ryhmästä + Select @@ -1869,53 +2383,21 @@ Valitse kohde - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Ladataan... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 - Hello , welcome to Paperless-ngx + Hei , tervetuloa Paperless-ngx sovellukseen Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 - Welcome to Paperless-ngx + Tervetuloa Paperless-ngx sovellukseen Show all @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Tilastot - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Saapuneet-kansiossa olevat asiakirjat - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Asiakirjoja yhteensä: + Siirry saapuneisiin + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Asiakirjat saapuneet- kansiossa + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Siirry asiakirjoihin + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Asiakirjoja yhteensä + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Merkkejä yhteensä + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Muu Upload new documents @@ -2041,13 +2555,13 @@ 25 This is shown as a summary line when there are more than 5 document in the processing pipeline. - {VAR_PLURAL, plural, one {} =1 {Vielä yksi dokumentti} other { lisää dokumentteja}} + {VAR_PLURAL, plural, one {} =1 {Vielä yksi asiakirja} other { lisää asiakirjoja}} Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Käsittelyssä: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Epäonnistui: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Lisätty: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2086,7 +2600,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 3 - Paperless-ngx is running! + Paperless-ngx on käynnissä! You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. @@ -2094,7 +2608,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 4 - You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + Olet valmis aloittamaan asiakirjojen lataamisen! Tutustu tämän web-sovelluksen eri ominaisuuksiin tai aloita opastus käyttämällä alla olevaa painiketta. More detail on how to use and configure Paperless-ngx is always available in the documentation. @@ -2102,7 +2616,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 5 - More detail on how to use and configure Paperless-ngx is always available in the documentation. + Tarkempia tietoja Paperless-ngx sovelluksen käytöstä ja konfiguroinnista on saatavilla dokumentaatiossa. Thanks for being a part of the Paperless-ngx community! @@ -2110,7 +2624,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 8 - Thanks for being a part of the Paperless-ngx community! + Kiitos, että olette osana Paperless-ngx -yhteisöä! Start the tour @@ -2118,7 +2632,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 9 - Start the tour + Aloita opastus Searching document with asn @@ -2128,46 +2642,6 @@ Etsitään asiakirjaa asn-tiedolla - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Syötä kommentti - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Kirjoita kommentti. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Lisää kommentti - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Virhe tallennettaessa kommenttia: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Virhe poistettaessa kommenttia: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Lataa @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Tee OCR Uudelleen @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Sulje @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Tallennustilan polku @@ -2468,6 +2942,14 @@ Arkistoidun dokumentin metatiedot + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Esikatsele + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Syötä salasana - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Kommentit + Muistiinpanot Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Hylkää @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Tallenna & Lopeta + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + Sisällön lataamisessa tapahtui virhe: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Virhe haettaessa metatietoja + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Virhe haettaessa ehdotuksia + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Asiakirja tallennettu onnistuneesti. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Virhe tallennettaessa asiakirjaa + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Vahvista poisto @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Haluatko varmasti poistaa asiakirjan ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Tämän asiakirjan tiedostot poistetaan pysyvästi. Tätä toimintoa ei voi peruuttaa. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Poista asiakirja - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Virhe poistettaessa asiakirjaa: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Vahvista OCR:n uudelleenteko @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Tämä toiminto suorittaa OCR:n uudelleen. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Toimintoa ei voi peruuttaa. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Jatka @@ -2620,15 +3162,15 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 - Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. + OCR-toiminto alkaa taustalla. Sulje ja avaa uudelleen tämä asiakirja tai lataa se uudelleen, kun toiminto on suoritettu nähdäksesi uuden sisällön. Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Virhe suoritettaessa toimintoa: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Suodata yhteyshenkilöt @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Suodata asiakirjatyyppejä @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Suodata tallennuspolkuja @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,39 +3290,39 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 - Include: + Sisällytä: Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 - Archived files + Arkistoidut tiedostot Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 - Original files + Alkuperäiset tiedostot Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 - Use formatted filename + Käytä muotoiltua tiedostonimeä Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Virhe suoritettaessa toimintoa: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" ja "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' ja "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Varmista tagien asetus @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Tämä toiminto lisää tagin "" valittuun tai valittuihin asiakirjoihin. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Tämä toiminto lisää tunnisteet valittuun tai valittuihin asiakirjoihin. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Tämä toiminto poistaa tagin "" valitusta dokumentista. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Tämä toiminto tulee poistamaan tagit valitusta dokumentista. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Tämä toiminto lisää tagit ja poistaa tagit :sta valiltusta dokumentista. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Vahvista yhteyshenkilön asetus @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Tämä toiminto lisää yhteyshenkilön "" valittuun tai valittuihin asiakirjoihin. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Tämä toiminto poistaa yhteyshenkilön "":sta valitusta asiakirjasta. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Vahvista asiakirjan tyypin määritys @@ -2890,23 +3440,23 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 - Tämä toiminto lisää dokumenttityypin "" :een valittuun asiakirjaan. + Tämä toiminto lisää asiakirjatyypin"" :een valittuun asiakirjaan. This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 - Tämä toiminto poistaa dokumenttityypin "":sta valitusta asiakirjasta. + Tämä toiminto poistaa asiakirjatyypin"":sta valitusta asiakirjasta. Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Vahvista tallennuspolun asetus @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Tämä toiminto asettaa tallennuspolun "" :een valittuun asiakirjaan. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Tämä toiminto poistaa tallennuspolun "":sta valitusta asiakirjasta. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Vahvista poisto @@ -2938,15 +3488,15 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 - Tämä toiminto poistaa pysyvästi "" valittua dokumenttia. + Tämä toiminto poistaa pysyvästi "" valitun asiakirjan. Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Poista asiakirja(t) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Tämä toiminto tekee pysyvästi uudelleen OCR-haun valitulle dokumentille. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Suodata yhteyshenkilön mukaan @@ -2978,91 +3528,47 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Suodata tagien mukaan - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Muokkaa + Näytä muistiinpanot - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Näytä + Muistiinpanot Filter by document type - - src/app/components/document-list/document-card-large/document-card-large.component.html - 69 - - - src/app/components/document-list/document-list.component.html - 187 - - Suodata dokumenttityypin mukaan - - - Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html 76 src/app/components/document-list/document-list.component.html - 192 + 212 + + Suodata asiakirjatyypin mukaan + + + Filter by storage path + + src/app/components/document-list/document-card-large/document-card-large.component.html + 83 + + + src/app/components/document-list/document-list.component.html + 217 Suodata tallennuspolun mukaan @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Luotu: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Lisätty: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Muokattu: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Pisteet: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Vaihda yhteyshenkilön suodatin @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Vaihda asiakirjatyypin suodatin @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Vaihda tallennustilan polun suodatin @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Näkymät Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Tallenna "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Tallenna nimellä... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, one {}=1 {Valittu yhdestä asiakirjasta} other {Valitut asiakirjasta}} @@ -3210,15 +3720,15 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 - {VAR_PLURAL, plural, one {}=1 {Yksi dokumentti} other { dokumenttia}} + {VAR_PLURAL, plural, one {}=1 {Yksi asiakirja} other { asiakirjaa}} (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (suodatettu) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Virhe ladattaessa asiakirjoja + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Järjestä ASN:n mukaan + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Suodata yhteyshenkilön mukaan + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Järjestä otsikon mukaan + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Järjestä muistiinpanojen mukaan + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Muistiinpanot + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Lajittele asiakirjatyypin mukaan + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Lajittele tallennuspolun mukaan + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Lajittele luontipäivän mukaan + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Lajittele lisäyspäivän mukaan + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Muokkaa asiakirjaa @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Näkymä "" tallennettu onnistuneesti. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Näkymä "" luotu onnistuneesti. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Tyhjennä suodattimet @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Vastaava: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Ilman kirjeenvaihtajaa @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Tyyppi: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Ilman asiakirjatyyppiä @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tunniste: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Ilman tunnistetta @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Otsikko: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Otsikko & sisältö @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Laajennettu haku @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Enemmän kuin @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 on yhtä kuin @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 on tyhjä @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 ei ole tyhjä @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 suurempi kuin @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 pienempi kuin @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Näytä sivupalkissa @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Näytä Dashboardissa @@ -3470,11 +4060,63 @@ Tapahtui virhe + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Syötä muistiinpano + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Ole hyvä ja syötä muistiinpano. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Lisää muistiinpano + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Poista muistiinpano + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Virhe tallennettaessa muistiinpanoa: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Virhe poistettaessa muistiinpanoa: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 yhteyshenkilö @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 yhteyshenkilöt @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Viimeksi käytetty @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Haluatko varmasti poistaa kirjeenvaihtajan ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 asiakirjatyyppi @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 asiakirjatyypit @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Haluatko varmasti poistaa asiakirjan tyypin ""? @@ -3604,7 +4246,7 @@ src/app/components/manage/management-list/management-list.component.html 21 - Dokumenttien määrä + Asiakirjojen määrä Filter Documents @@ -3650,51 +4292,75 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automaattinen + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Ei mitään + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Virhe luotaessa : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 - Successfully created . + Onnistuneesti luotu . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Virhe tallennettaessa : . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 - Successfully updated . + Onnistuneesti päivitetty . Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 - Error occurred while saving : . + Virhe tallennettaessa : . Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Haluatko varmasti poistaa "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Liittyviä asiakirjoja ei poisteta. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Virhe poistettaessa elementtiä: @@ -3720,7 +4386,7 @@ src/app/components/manage/settings/settings.component.html 2 - Start tour + Aloita opastus Open Django Admin @@ -3728,7 +4394,7 @@ src/app/components/manage/settings/settings.component.html 4 - Open Django Admin + Avaa Django Admin General @@ -3840,7 +4506,7 @@ src/app/components/manage/settings/settings.component.html 99 - Sidebar + Sivupalkki Use 'slim' sidebar (icons only) @@ -3848,7 +4514,7 @@ src/app/components/manage/settings/settings.component.html 103 - Use 'slim' sidebar (icons only) + Käytä pientä sivupalkkia (vain kuvakkeet) Dark mode @@ -3904,15 +4570,15 @@ src/app/components/manage/settings/settings.component.html 135 - Update checking + Tarkista päivitykset - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3920,7 +4586,7 @@ src/app/components/manage/settings/settings.component.html 144,146 - No tracking data is collected by the app in any way. + Sovellus ei kerää seurantatietoja. Enable update checking @@ -3928,7 +4594,7 @@ src/app/components/manage/settings/settings.component.html 146 - Enable update checking + Ota päivityksen tarkistus käyttöön Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. @@ -3936,7 +4602,7 @@ src/app/components/manage/settings/settings.component.html 146 - Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. + Huomaa, että kolmansien osapuolten konttien käyttäjille, esim. linuxserver.io, tämä ilmoitus voi olla edellä nykyisen kolmannen osapuolen julkaisusta. Bulk editing @@ -3970,13 +4636,13 @@ Tallenna suljettaessa - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Ota kommentit käyttöön + Ota muistiinpanot käyttöön Notifications @@ -4034,11 +4700,19 @@ Tämä estää hallintapaneelissa kaikki viestit, jotka koskevat asiakirjojen käsittelyn tilaa. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Näytä varoitus suljettaessa tallennettuja näkymiä tallentamattomilla muutoksilla + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Esiintyy @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Tallennettuja näkymiä ei ole määritelty. @@ -4054,71 +4728,103 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 - Mail + Sähköposti Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 - Mail accounts + Sähköpostitilit Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 - Add Account + Lisää tili Server src/app/components/manage/settings/settings.component.html - 249 + 258 - Server + Palvelin No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 - No mail accounts defined. + Sähköpostitilejä ei ole määritelty. Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 - Mail rules + Sähköpostisäännöt Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 - Add Rule + Lisää sääntö No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 - No mail rules defined. + Sähköpostisääntöjä ei ole määritelty. + + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Käyttäjät & ryhmät + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Käyttäjät + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Lisää käyttäjä + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Lisää ryhmä Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Tallennettu näkymä "" poistettu. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Asetukset tallennettu @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Asetukset tallennettiin onnistuneesti. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Asetukset on tallennettu onnistuneesti. Uudelleenlataus vaaditaan joidenkin muutosten käyttöönottamiseksi. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Lataa uudelleen @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Käytä järjestelmän kieltä @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Käytä näyttökielen päivämäärämuotoa @@ -4174,111 +4880,215 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Virhe tallennettaessa asetuksia palvelimelle: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Salasana on vaihdettu, sinut kirjataan ulos hetken kuluttua. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Tallennettu käyttäjä "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Virhe tallennettaessa käyttäjää: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Vahvista käyttäjätilin poistaminen + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Tämä toiminto poistaa pysyvästi tämän käyttäjätilin. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Poistettu käyttäjä + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Virhe poistettaessa käyttäjää: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Tallennettu ryhmä "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Virhe tallennettaessa ryhmää: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Vahvista käyttäjäryhmän poistaminen + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Tämä toiminto poistaa pysyvästi tämän käyttäjäryhmän. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Poistettu ryhmä + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Virhe poistettaessa ryhmää: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 - Saved account "". + Tallennettu tili "". Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 - Error saving account: . + Virhe tallennettaessa tiliä: . Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 - Confirm delete mail account + Vahvista sähköpostitilin poisto This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 - This operation will permanently delete this mail account. + Tämä toiminto poistaa tämän sähköpostitilin pysyvästi. Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 - Deleted mail account + Poistettu sähköpostitili Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 - Error deleting mail account: . + Virhe poistettaessa sähköpostitiliä: . Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 - Saved rule "". + Tallennettu sääntö "". Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 - Error saving rule: . + Virhe tallennettaessa sääntöä: . Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 - Confirm delete mail rule + Vahvista sähköpostisäännön poisto This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 - This operation will permanently delete this mail rule. + Tämä toiminto poistaa tämän sähköpostisäännön pysyvästi. Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 - Deleted mail rule + Poistettu sähköpostisääntö Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 - Error deleting mail rule: . + Virhe poistettaessa sähköpostisääntöä: . storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 tallennustilan polku @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 tallennustilan polut @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Haluatko varmasti poistaa asiakirjapolun ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tunniste @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tunnisteet @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Haluatko varmasti poistaa asiakirjatagin ""? @@ -4330,16 +5140,6 @@ Tyhjennä valinta - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Hylkää @@ -4380,15 +5180,15 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 - Open Document + Avaa asiakirja Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Epäonnistui  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Onnistui  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Aloitettu  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Jonossa  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Poista valitut @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Poista kaikki @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Vahvista "poista kaikki" @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tehtävät? @@ -4460,11 +5260,19 @@ 404 Ei löytynyt + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Automaatti: Opi vastaavat automaattisesti + Any word src/app/data/matching-model.ts - 14 + 20 Mikä tahansa sana @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Mikä tahansa: Asiakirja saa sisältää mitä tahansa näistä sanoista (erotettu välilyönnillä) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Kaikki sanat @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Kaikki: Asiakirja sisältää kaikki nämä sanat (erotettu välilyönnillä) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Tarkka osuma @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Tarkka osuma: Asiakirja sisältää tämän merkkijonon @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Säännöllinen lauseke (regex) @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Säännöllinen lauseke: Asiakirja vastaa tätä säännöllistä lauseketta (regex) @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Sumea sana @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Sumea: Asiakirja sisältää tämän sanan kaltaisen sanan - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Automaatti: Opi vastaavat automaattisesti + Ei mitään: Poista käytöstä vertailu Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Tallentamattomia muutoksia @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Sinulla on tallentamattomia muutoksia. @@ -4608,25 +5416,33 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 - You have unsaved changes to the saved view + Sinulla on tallentamattomia muutoksia tallennettuun näkymään Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 - Are you sure you want to close this saved view? + Haluatko varmasti sulkea tämän näkymän? Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 - Save and close + Tallenna ja sulje + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Sinulla ei ole käyttöoikeuksia tähän toimintoon (no title) @@ -4666,7 +5482,7 @@ src/app/services/consumer-status.service.ts 16 - Document with ASN already exists. + Asiakirja ASN:llä on jo olemassa. File not found. @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Sinulla on tallentamattomia muutoksia asiakirjaan @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Haluatko varmasti sulkea tämän dokumentin? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Sulje asiakirja @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Haluatko varmasti sulkea kaikki dokumentit? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Sulje dokumentit @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Haun pisteet @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Englanti (US) @@ -4837,23 +5653,31 @@ Arabic src/app/services/settings.service.ts - 151 + 165 - Arabic + Arabialainen Belarusian src/app/services/settings.service.ts - 157 + 171 Valkovenäjä + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tšekki @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Tanska @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Saksa @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Englanti (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Espanja @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Ranska @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italia @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburg @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Hollanti @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Puola @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugali (Brasilia) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugali @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romania @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Venäjä @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenia @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbia @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Ruotsi @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkki @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Kiina (yksinkertaistettu) @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Kertaluontoinen asetusten migratointi tietokantaan suoritettu onnistuneesti! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Asetuksia ei saatu migratoitua tietokantaan. Yritä tallennusta manuaalisesti. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Tietoa @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Yhdistetään... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Ladataan... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Lataus valmis, odotetaan... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP-virhe: diff --git a/src-ui/src/locale/messages.fr_FR.xlf b/src-ui/src/locale/messages.fr_FR.xlf index 3b117af03..9350acaca 100644 --- a/src-ui/src/locale/messages.fr_FR.xlf +++ b/src-ui/src/locale/messages.fr_FR.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Document ajouté @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Le document a été ajouté à Paperless-ngx. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Ouvrir le document @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Impossible d'ajouter : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nouveau document détecté @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Le document est en cours de traitement par Paperless-ngx. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Préc. @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Terminer @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Le tableau de bord peut être utilisé pour afficher les vues enregistrées, comme une boîte de réception. Ces paramètres se trouvent dans Paramètres > Vues enregistrées. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Glissez-déposez les documents ici pour commencer à les téléverser ou placez-les dans le dossier « consume ». Vous pouvez glisser-déposer les documents sur n'importe quelle autre page de l'application. Une fois fait, Paperless-ngx va commencer à exécuter ses algorithmes d'apprentissage automatique. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 La liste des documents affiche tous vos documents et permet le filtrage ainsi que l'édition de masse. Il y a trois styles de vue différents : liste, vignettes et liste détaillée. Une liste de documents actuellement ouverts à l'édition est affichée dans la barre latérale. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Les filtres vous permettent de trouver rapidement des documents en utilisant diverses recherches, dates, étiquettes, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Toute combinaison de filtres peut être enregistrée sous la forme d'une « vue » qui peut ensuite être affichée sur le tableau de bord et / ou la barre latérale. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Les étiquettes, correspondants, types de documents et chemins de stockage peuvent tous être gérés à l'aide de ces pages. Ils peuvent également être créés à partir de la vue d'édition du document. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Les tâches de fichiers vous montrent les documents qui ont été consommés, ceux qui sont en attente de l'être, ou ceux qui ont pu échouer au cours du processus. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Vérifiez les paramètres pour en ajuster certains, activer les vues enregistrées ou pour configurer les courriels. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Merci ! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Il y a <em>des tonnes</em> de fonctionnalités et d'informations supplémentaires que nous n'avons pas couvertes ici, mais cela devrait vous aider à démarrer. Consultez la documentation ou visitez le projet sur GitHub pour en savoir plus ou pour signaler des problèmes. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Enfin, au nom de chaque contributeur à ce projet soutenu par la communauté, merci d'utiliser Paperless-ngx ! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Démarrage du téléversement... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Paramètres @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Documents ouverts @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Fermer tout @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Gestion @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Correspondants @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Types de document @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Chemins de stockage @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Traitement des fichiers @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentation @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Suggérer une idée @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 est disponible. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Cliquer pour visualiser. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx peut automatiquement vérifier la disponibilité des mises à jour @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Comment ça fonctionne ? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Mise à jour disponible @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Une erreur est survenue lors de la sauvegarde des paramètres. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Une erreur s'est produite lors de l'enregistrement des paramètres de vérification des mises à jour. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Confirmer @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Enregistrer @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Créer un nouveau correspondant @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Éditer le correspondant @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Créer un nouveau type de document @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Éditer le type de document @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Créer un nouvel élément @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Éditer l'élément @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Impossible d'enregistrer l'élément : + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Droits d'accès + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Créer un nouveau groupe d'utilisateurs + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Modifier le groupe d'utilisateurs + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Nom d'utilisateur @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Mot de passe + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Le mot de passe est le jeton d'authentification + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Vérifier si le mot de passe ci-dessus est un jeton utilisé pour l'authentification + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Jeu de caractères + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Chargement ... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Pas de chiffrement @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Créer un nouveau compte de messagerie @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Éditer un compte de messagerie + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Connexion réussie au serveur de courrier + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Impossible de se connecter au serveur d'impression + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Compte @@ -1359,11 +1543,19 @@ Filtrer l'expéditeur + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtrer pour + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filtrer le sujet @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filtrer le corps du message @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filtrer le nom de fichier de la pièce jointe @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 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. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Cette action n'est exécutée que lorsque les documents ont été traités depuis des courriels. Les courriels sans pièces jointes demeurent totalement inchangés. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Paramètre d'action @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Affecter le titre depuis @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Affecter ce type de document @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Affecter le correspondant depuis @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Affecter le correspondant @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Erreur @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Ne traiter que les pièces jointes @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Traiter tous les fichiers, y compris les pièces jointes "en ligne" @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Traiter le message comme un .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Traiter le message comme un .eml et les pièces jointes séparément @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Supprimer @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Déplacer vers le dossier spécifié @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Marquer comme lu, ne pas traiter les courriels lus @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Marquer le courriel, ne pas traiter les courriels marqués @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Affecter l’étiquette spécifée au courriel, ne pas traiter les courriels étiquetés @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Utiliser le sujet en tant que titre @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Utiliser le nom de la pièce jointe en tant que titre @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Ne pas affecter de correspondant @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Utiliser l'adresse électronique @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Utiliser le nom (ou l'adresse électronique s'il n'est pas disponible) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Utiliser le correspondant sélectionné ci-dessous @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Créer une nouvelle règle de courriel @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Éditer une règle de courriel - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Notez qu'éditer un chemin ne l'applique pas sur les fichiers stockés, vous devez exécuter l'utilitaire « document_renamer ». Consulter la documentation - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Chemin @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 par ex. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 ou utilisez des barres obliques pour ajouter des répertoires, comme @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Consulter la <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> pour la liste complète. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Créer un nouveau chemin de stockage @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Modifier le chemin de stockage @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Couleur @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Créer une nouvelle étiquette @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Éditer l'étiquette + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Adresse électronique + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Prénom + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Nom + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Actif + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superutilisateur + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (accorde tous les droits et permet de voir les objets) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groupes + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Créer un nouveau compte utilisateur + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Modifier le compte utilisateur + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Tous + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Inclure + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclure + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Appliquer @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Cliquer à nouveau pour exclure des éléments. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Non affecté @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Suggestions : + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Modifier les droits d'accès + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Propriétaire : + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Les objets sans propriétaire peuvent être consultés et édités par tous les utilisateurs + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vue + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Utilisateurs : + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groupes : + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Éditer + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Modifier les droits d'accès accorde également les droits de lecture + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Ajouter un élément + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privé + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Ajouter une étiquette + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Définir les droits d'accès + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Notez que les droits d'accès définis ici écraseront tous les droits d'accès existants + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Ajouter + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Modifier + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Hérité du groupe + Select @@ -1869,43 +2383,11 @@ Veuillez sélectionner un objet - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Chargement ... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Bonjour , bienvenue dans Paperless-ngx  @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Bienvenue dans Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistiques - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documents dans la boîte de réception : - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Nombre total de documents : + Accéder à la boîte de réception + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents dans la boîte de réception + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Aller aux documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Nombre total de documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Nombre total de caractères + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Autres Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Traitement : @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Échec : @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Ajout : @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Recherche de document avec NSA - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Saisir un commentaire - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Veuillez saisir un commentaire. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Ajouter un commentaire - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Erreur lors de l'enregistrement du commentaire : - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Erreur lors de la suppression du commentaire : - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Télécharger @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Relancer la ROC @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Fermer @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Chemin de stockage @@ -2468,6 +2942,14 @@ Métadonnées du document archivé + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Prévisualisation + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Saisir le mot de passe - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Commentaires + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Abandonner @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Enregistrer & suivant + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + Une erreur s'est produite lors du chargement du contenu : + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Erreur lors de la récupération des métadonnées + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Erreur lors de la récupération des suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document enregistré avec succès. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Erreur lors de la sauvegarde du document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirmer la suppression @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Voulez-vous vraiment supprimer le document "" ? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Les fichiers liés à ce document seront supprimés définitivement. Cette action est irréversible. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Supprimer le document - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Une erreur s'est produite lors de la suppression du document : + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Confirmer la relance de la ROC @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Cette opération écrasera la ROC pour ce document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Cette action est irréversible. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Continuer @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 La relance de la ROC va démarrer en arrière-plan. Fermez et réouvrez ou recharger ce document une fois l'opération terminée pour voir le nouveau contenu. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Erreur lors de l'exécution de l'opération : @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrer les correspondants @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrer les types de documents @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtrer les chemins de stockage @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Inclure : @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Fichiers archivés @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Fichiers originaux @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Utiliser le nom de fichier formaté @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Une erreur s'est produite lors de l'exécution de l'opération de masse : @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" et "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' et "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirmer l'affectation des étiquettes @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Cette action affectera l'étiquette "" au(x) document(s) sélectionné(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Cette action affectera les étiquettes au(x) document(s) sélectionné(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Cette action supprimera l'étiquette "" de(s) document(s) sélectionné(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Cette action supprimera les étiquettes de(s) document(s) sélectionné(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Cette action ajoutera les étiquettes et supprimera les étiquettes de(s) document(s) sélectionné(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirmer l'affectation du correspondant @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Cette action affectera le correspondant "" au(x) document(s) sélectionné(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Cette action supprimera le correspondant de(s) document(s) sélectionné(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirmer l'affectation du type de document @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Cette action affectera le type de document "" au(x) document(s) sélectionné(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Cette action supprimera le type de document de(s) document(s) sélectionné(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirmez le chemin de stockage @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Cette opération assignera le chemin de stockage "" aux document(s) sélectionné(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Cette opération assignera le chemin de stockage des "" document(s) sélectionné(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Confirmer la suppression @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Cette action supprimera définitivement document(s) sélectionné(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Supprimer le(s) document(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Cette opération écrasera la ROC pour les document(s) sélectionné(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrer par correspondant @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrer par étiquette - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Éditer + Afficher les Notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vue + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtrer par type de document @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtrer par chemin de stockage @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Création : @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Ajout : @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modification : @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Score : @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 (Dés)activer le filtre correspondant @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Activer/désactiver le filtre par type de document @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Activer/désactiver le filtre sur le chemin de stockage @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Vues Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Enregistrer "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Enregistrer sous... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 { document sélectionné sur 1} other { documents sélectionnés sur }} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Un document} other { documents}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtré) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Erreur lors du téléchargement du document + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Trier par ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ NSA + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Trier par correspondant + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Trier par titre + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Trier par notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Trier par type de documents + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Trier par chemin de stockage + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Trier par la date de création + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Trier par date d'ajout + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Éditer le document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Vue "" enregistrée avec succès. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Vue "" créée avec succès. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Réinitialiser les filtres @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondant : @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Sans correspondant @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type : @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Sans type de document @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Étiquette : @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Sans étiquette @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titre : @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 NSA : @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titre & contenu @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Recherche avancée @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Plus comme @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 est égal à @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 est vide @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 n'est pas vide @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 est supérieur à @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 est inférieur à @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Montrer dans la barre latérale @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Montrer sur le tableau de bord @@ -3470,11 +4060,63 @@ L'erreur renvoyée était + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Saisir des notes + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Veuillez saisir une note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Ajouter une note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Supprimer une note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Erreur lors de l'enregistrement de la note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Erreur lors de l'enregistrement de la note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondant @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondants @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Dernière utilisation @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Voulez-vous vraiment supprimer le correspondant "" ? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 Type de document @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 types de document @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Voulez-vous vraiment supprimer le type de document "" ? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatique + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Aucun + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Une erreur s'est produite lors de la création de : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Création de réussie. - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Une erreur s'est produite lors de la création de : . + Une erreur s'est produite lors de la sauvegarde de : . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Mise à jour de réussie. @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Une erreur s'est produite lors de la sauvegarde de : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Voulez-vous vraiment supprimer l'étiquette "" ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Les documents associés ne seront pas supprimés. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Une erreur s'est produite lors de la suppression de l'élément : @@ -3906,13 +4572,13 @@ Vérification des mises à jour - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - La vérification des mises à jour fonctionne en faisant un ping sur l'API publique Github pour la dernière version afin de déterminer si une nouvelle version est disponible. La mise à jour réelle de l'application doit toujours être effectuée manuellement. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Appliquer lors de la fermeture - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Activer les commentaires + Activez les notes Notifications @@ -4034,11 +4700,19 @@ Cela supprimera tous les messages liés au traitement de documents sur le tableau de bord. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Afficher un avertissement lors de la fermeture d’une vue enregistrée avec des modifications non enregistrées + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Apparaît sur @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Aucune vue sauvegardée n'est définie. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Messagerie @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Comptes de messagerie @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Ajouter un compte @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Serveur @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Aucun compte de messagerie défini. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Règles de courriel @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Ajouter une règle @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Aucune règle de courriel définie. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Utilisateurs & Groupes + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Utilisateurs + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Ajouter un utilisateur + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Ajouter un groupe + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Vue "" supprimée. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Paramètres enregistrés @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Les paramètres ont été enregistrés avec succès. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Les paramètres ont été enregistrés avec succès. Un rechargement est nécessaire pour appliquer certains changements. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Recharger maintenant @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Utiliser la langue du système @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Utiliser le format de date de la langue d'affichage @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Une erreur s'est produite lors de l'enregistrement des paramètres sur le serveur : + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Le mot de passe a été modifié, vous serez déconnecté momentanément. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Utilisateur « » enregistré. + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Erreur lors de l'enregistrement de l'utilisateur : . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirmer la suppression du compte utilisateur + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Cette opération supprimera définitivement ce compte utilisateur. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Utilisateur supprimé + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Une erreur s'est produite lors de la suppression de l'utilisateur : . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Groupe « » enregistré. + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Erreur lors de l'enregistrement du groupe : . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirmer la suppression du groupe d'utilisateurs + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Cette opération supprimera définitivement ce groupe d'utilisateurs. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Groupe supprimé + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Une erreur s'est produite lors de la suppression du groupe : . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Compte enregistré. @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Erreur lors de l'enregistrement du compte : . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirmer la suppression du compte de messagerie @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 Cette opération supprimera définitivement ce compte de messagerie. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Compte de messagerie supprimé @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Erreur lors de la suppression du compte de messagerie : . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Règle enregistrée. @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Erreur lors de l'enregistrement de la règle : . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirmer la suppression de la règle de courriel @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 Cette opération supprimera définitivement cette règle de courriel. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Règle de courriel supprimée @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Erreur lors de la suppression de la règle de courriel : . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 chemin de stockage @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 chemins de stockage @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Voulez-vous vraiment supprimer le chemin de stockage " " ? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 étiquette @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 étiquettes @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Voulez-vous vraiment supprimer l'étiquette "" ? @@ -4330,16 +5140,6 @@ Effacer la sélection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Ignorer @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Ouvrir le document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Échouées  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Réussies  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Commencées  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 En attente  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Ignorer la sélection @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Ignorer tout @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirmer « ignorer tout » @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tâches ? @@ -4460,11 +5260,19 @@ 404 Non trouvé + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Automatique : apprentissage automatique du rapprochement + Any word src/app/data/matching-model.ts - 14 + 20 Un des mots @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Un des mots : contient l'un de ces mots (séparés par des espaces) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Tous les mots @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Tous les mots : contient tous ces mots (séparés par des espaces) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Concordance exacte @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Concordance exacte : contient cette chaîne de caractères @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Expression régulière @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Expression régulière : correspond à cette expression régulière @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Mot approximatif @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Mot approximatif : contient un mot similaire à ce mot - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Automatique : apprentissage automatique du rapprochement + Aucun : désactiver le rapprochement Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Modifications non enregistrées @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Vous avez des modifications non enregistrées. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 Vous avez des modifications non enregistrées sur cette vue enregistrée @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Voulez-vous vraiment fermer la vue enregistrée ? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Sauvegarder et fermer + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Vous n'avez pas la permission de faire cela + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Vous avez des modifications non enregistrées sur ce document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Voulez-vous vraiment fermer ce document ? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Fermer le document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Voulez-vous vraiment fermer tous les documents ? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Fermer tous les documents @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Pertinence @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Anglais (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabe @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Biélorusse + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tchèque @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danois @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Allemand @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Anglais (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Espagnol @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Français @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italien @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxembourgeois @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Néerlandais @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polonais @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugais (Brésil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugais @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Roumain @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russe @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovène @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbe @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Suédois @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turc @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinois simplifié @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 La migration des paramètres vers la base de données a été effectuée avec succès ! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Impossible de migrer les paramètres vers la base de données, veuillez essayer d’enregistrer manuellement. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informations @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Connexion... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Téléchargement... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Téléversement terminé, en attente... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Erreur HTTP : diff --git a/src-ui/src/locale/messages.he_IL.xlf b/src-ui/src/locale/messages.he_IL.xlf index b3518ad0f..6f83e84a5 100644 --- a/src-ui/src/locale/messages.he_IL.xlf +++ b/src-ui/src/locale/messages.he_IL.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 מסמך התווסף @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 המסמך התווסף ל - paperless-ng. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 פתח מסמך @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 לא יכול להוסיף את : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 זוהה מסמך חדש @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 מסמך נמצא בעיבוד ע"י Paperless-NG. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 מאתחל העלאה... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + הגדרות @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 מסמכים פתוחים @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 סגור הכל @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 נהל @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 מכותבים @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 סוגי מסמך @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 נתיבי אכסון @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 תיעוד @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 הצעה רעיון @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 זמין. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 לחץ להצגה. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 קיים עדכון @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 אשר @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 שמור @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 הוסף מכותב חדש @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 ערוך מכותב @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 הוסף סוג מסמך חדש @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 ערוך סוג מסמך @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 יצירת פריט חדש @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 עריכת פריט @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 לא ניתן לשמור את האלמנט: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + טוען... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 שגיאה @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 מחק @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 נתיב @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 לדוג' @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 או השתמשו באלכסונים כדי להוסיף ספריות, לדוג' @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 צור נתיב אכסון חדש @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 ערוך נתיב אכסון @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 צבע @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 צור תגית חדשה @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 עריכת תגית + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 החל @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 לחץ שוב כדי לא לכלול פריטים. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned לא הוקצה @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 הצעות: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + View + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Edit + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths הוסף פריט + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 הוסף תגית + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ נא לבחור פריט - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - טוען... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ סטטיסטיקה - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - מסמכים בתיבה הנכנסת: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - סך הכל מסמכים: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 מעבד: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 נכשל: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 התווסף: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ מחפש מסמכים עם מס"ד - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 הורד @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 סגור @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 נתיב אכסון @@ -2468,6 +2942,14 @@ מטא-נתונים של המסמך בארכיון + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 הזן סיסמה - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 בטל @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 שמור & הבא + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 אישור מחיקה @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 בטוח שברצנך למחוק את המסמך ? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 הקבצים עבור מסמך זה יימחקו לצמיתות. לא ניתן לבטל פעולה זו. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 מחק מסמך - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - שגיאה במחיקת מסמך: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 This operation cannot be undone. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 סנן מכותבים @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 סנן סוגי מסמכים @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 סנן מיקום אכסון @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" and "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' and "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirm tags assignment @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 This operation will add the tag "" to selected document(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 This operation will remove the tag "" from selected document(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirm correspondent assignment @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 This operation will assign the correspondent "" to selected document(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 This operation will remove the correspondent from selected document(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirm document type assignment @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 This operation will assign the document type "" to selected document(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 This operation will remove the document type from selected document(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Delete confirm @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 This operation will permanently delete selected document(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Delete document(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filter by correspondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filter by tag - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Edit + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - View + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Score: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Views Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Save "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 שמור כ... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {One document} other { documents}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtered) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 View "" saved successfully. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 View "" created successfully. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Reset filters @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 ללא מכותבים @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 סוג: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 ללא סוג מסמך @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 תיוג: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 ללא תיוג @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 כותרת: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 מס"ד: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 כותרת & תוכן @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 חיפוש מתקדם @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 עוד כמו @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 שווה @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 הינו ריק @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 אינו ריק @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 גדול מ @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 קטן מ @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 הצג בסרגל צידי @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 הצג בדשבורד @@ -3470,11 +4060,63 @@ השגיאה שהתקבלה הינה + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 מכותב @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 מכותבים @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 שימוש אחרון @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 בטוח שברצנך למחוק את המכותב ? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 סוג מסמך @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 סוגי מסמך @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 בטוח שברצנך למחוק את סוג המסמך ? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 אוטומטי + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 בטוח שברצנך למחוק את ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 מסמכים נלווים לא יימחקו. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 שגיאה במחיקת האלמנט: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Apply on close - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ This will suppress all messages about document processing status on the dashboard. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Appears on @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 No saved views defined. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Saved view "" deleted. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Use system language @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Use date format of display language @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Do you really want to delete the tag ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Not Found + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Learn matching automatically + Any word src/app/data/matching-model.ts - 14 + 20 Any word @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Any: Document contains any of these words (space separated) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 All words @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 All: Document contains all of these words (space separated) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exact match @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Document contains this string @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regular expression @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regular expression: Document matches this regular expression @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy word @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Document contains a word similar to this word - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Learn matching automatically + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Unsaved Changes @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 You have unsaved changes. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 ישנם שינויים שלא נשמרו במסמך @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 בטוח שברצונך לסגור מסמך זה? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 סגור מסמך @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 בטוח שברצונך לסגור את כל המסמכים? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 סגור מסמכים @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query ציון חיפוש @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 אנגלית (ארה"ב) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 בלרוסית + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 צ'כית @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 דנית @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 גרמנית @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 אנגלית (בריטניה) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 ספרדית @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 צרפתית @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 איטלקית @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 לוקסמבורגית @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 הולנדית @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 פולנית @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 פורטוגזית (ברזיל) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 פורטוגזית @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 רומנית @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 רוסית @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 סלובנית @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 סרבית @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 שוודית @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 טורקית @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 סינית מופשטת @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 הושלמה בהצלחה העברה חד פעמית של הגדרות למסד הנתונים! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 לא ניתן לבצע העברה של הגדרות למסד הנתונים, נסה לשמור באופן ידני. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 מידע @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 מתחבר... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Uploading... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Upload complete, waiting... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP error: diff --git a/src-ui/src/locale/messages.hr_HR.xlf b/src-ui/src/locale/messages.hr_HR.xlf index 70bb5de8a..5923c0072 100644 --- a/src-ui/src/locale/messages.hr_HR.xlf +++ b/src-ui/src/locale/messages.hr_HR.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument dodan @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument je dodan u paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Otvori dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Bezuspješno dodavanje : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Novi dokument detektiran @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument je u fazi obrade. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Pokretanje prijenosa... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Postavke @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Otvoreni dokumenti @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Zatvori sve @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Upravljaj @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Dopisnici @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Vrste dokumenta @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Putanje pohrane @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentacija @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Predloži ideju @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 je dostupno. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klikni za prikaz. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Dostupno ažuriranje @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Potvrdi @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Spremi @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Stvori novog dopisnika @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Preuredi dopisnika @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Stvori novu vrstu dokumenta @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Preuredi vrstu dokumenta @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Stvori novu stavku @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Uredi stavku @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Nije moguće spremiti element: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Učitavanje... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Error @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Delete @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Putanja @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 npr. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 ili koristite kose crte za dodavanje imenika, npr. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Stvori novu putanju pohrane @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Uredi putanju pohrane @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Boja @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Izradi novu oznaku @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Preuredi oznaku + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Bilo koji + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Primijeni @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Pritisnite ponovo da biste isključili stavke. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nije dodijeljen @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Prijedlozi: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + View + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Edit + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Dodaj predmet + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Dodaj oznaku + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Molimo odaberite objekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Učitavanje... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistika - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenti u pristigloj pošti: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Sveukupno dokumenata: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Processing: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Failed: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Added: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Searching document with asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Download @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Close @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Archived document metadata + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Enter Password - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Discard @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Save & next + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirm delete @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Do you really want to delete document ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 The files for this document will be deleted permanently. This operation cannot be undone. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Delete document - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Error deleting document: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 This operation cannot be undone. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filter correspondents @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filter document types @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" and "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' and "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirm tags assignment @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 This operation will add the tag "" to selected document(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 This operation will remove the tag "" from selected document(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirm correspondent assignment @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 This operation will assign the correspondent "" to selected document(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 This operation will remove the correspondent from selected document(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirm document type assignment @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 This operation will assign the document type "" to selected document(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 This operation will remove the document type from selected document(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Delete confirm @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 This operation will permanently delete selected document(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Delete document(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filter by correspondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filter by tag - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Edit + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - View + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Score: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Views Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Save "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Save as... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {One document} other { documents}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtered) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 View "" saved successfully. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 View "" created successfully. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Reset filters @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Without correspondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Without document type @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Without any tag @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Title: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Title & content @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Advanced search @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 More like @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 equals @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is empty @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 is not empty @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 greater than @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 less than @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Show in sidebar @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Show on dashboard @@ -3470,11 +4060,63 @@ The error returned was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondents @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Last used @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Do you really want to delete the correspondent ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 document type @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 document types @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Do you really want to delete the document type ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatic + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Associated documents will not be deleted. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Apply on close - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ This will suppress all messages about document processing status on the dashboard. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Appears on @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 No saved views defined. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Saved view "" deleted. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Use system language @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Use date format of display language @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Do you really want to delete the tag ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Not Found + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Learn matching automatically + Any word src/app/data/matching-model.ts - 14 + 20 Any word @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Any: Document contains any of these words (space separated) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 All words @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 All: Document contains all of these words (space separated) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exact match @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Document contains this string @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regular expression @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regular expression: Document matches this regular expression @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy word @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Document contains a word similar to this word - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Learn matching automatically + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Unsaved Changes @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 You have unsaved changes. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Are you sure you want to close this document? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Close document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Are you sure you want to close all documents? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Close documents @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Search score @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 English (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Czech @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danish @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 German @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 English (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spanish @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 French @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italian @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxembourgish @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Dutch @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polish @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portuguese (Brazil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portuguese @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romanian @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russian @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Swedish @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinese Simplified @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Information @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Connecting... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Uploading... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Upload complete, waiting... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP error: diff --git a/src-ui/src/locale/messages.id_ID.xlf b/src-ui/src/locale/messages.id_ID.xlf new file mode 100644 index 000000000..076262521 --- /dev/null +++ b/src-ui/src/locale/messages.id_ID.xlf @@ -0,0 +1,5894 @@ + + + + + + Close + + node_modules/src/ngb-config.ts + 13 + + Tutup + + + HH + + node_modules/src/ngb-config.ts + 13 + + HH + + + Close + + node_modules/src/ngb-config.ts + 13 + + Tutup + + + «« + + node_modules/src/ngb-config.ts + 13 + + «« + + + Select month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Pilih bulan + + + Previous month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Bulan sebelumnya + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + Slide of + + node_modules/src/ngb-config.ts + 13 + + Currently selected slide number read by screen reader + Slide of + + + Hours + + node_modules/src/ngb-config.ts + 13 + + Jam + + + « + + node_modules/src/ngb-config.ts + 13 + + « + + + Previous + + node_modules/src/ngb-config.ts + 13 + + Sebelumnya + + + MM + + node_modules/src/ngb-config.ts + 13 + + MM + + + » + + node_modules/src/ngb-config.ts + 13 + + » + + + Select year + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Pilih tahun + + + Next month + + node_modules/src/ngb-config.ts + 13 + + + node_modules/src/ngb-config.ts + 13 + + Bulan depan + + + Next + + node_modules/src/ngb-config.ts + 13 + + Selanjutnya + + + Minutes + + node_modules/src/ngb-config.ts + 13 + + Menit + + + »» + + node_modules/src/ngb-config.ts + 13 + + »» + + + Increment hours + + node_modules/src/ngb-config.ts + 13 + + Increment hours + + + First + + node_modules/src/ngb-config.ts + 13 + + Pertama + + + Previous + + node_modules/src/ngb-config.ts + 13 + + Sebelumnya + + + Decrement hours + + node_modules/src/ngb-config.ts + 13 + + Decrement hours + + + Next + + node_modules/src/ngb-config.ts + 13 + + Selanjutnya + + + Increment minutes + + node_modules/src/ngb-config.ts + 13 + + Increment minutes + + + Last + + node_modules/src/ngb-config.ts + 13 + + Terahkir + + + Decrement minutes + + node_modules/src/ngb-config.ts + 13 + + Decrement minutes + + + SS + + node_modules/src/ngb-config.ts + 13 + + SS + + + Seconds + + node_modules/src/ngb-config.ts + 13 + + Detik + + + Increment seconds + + node_modules/src/ngb-config.ts + 13 + + Increment seconds + + + Decrement seconds + + node_modules/src/ngb-config.ts + 13 + + Decrement seconds + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + + + + + node_modules/src/ngb-config.ts + 13 + + + + Drop files to begin upload + + src/app/app.component.html + 7 + + Drop files to begin upload + + + Document added + + src/app/app.component.ts + 90 + + + src/app/app.component.ts + 100 + + Dokumen tertambah + + + Document was added to paperless. + + src/app/app.component.ts + 92 + + + src/app/app.component.ts + 102 + + Document was added to paperless. + + + Open document + + src/app/app.component.ts + 93 + + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 46 + + Buka dokumen + + + Could not add : + + src/app/app.component.ts + 116 + + Tidak dapat menambahkan : + + + New document detected + + src/app/app.component.ts + 131 + + Dokumen baru terdeteksi + + + Document is being processed by paperless. + + src/app/app.component.ts + 133 + + Dokumen sedang diproses oleh Paperless. + + + Prev + + src/app/app.component.ts + 138 + + Sebelumnya + + + Next + + src/app/app.component.ts + 139 + + + src/app/components/document-detail/document-detail.component.html + 55 + + Selanjutnya + + + End + + src/app/app.component.ts + 140 + + Akhir + + + The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + + src/app/app.component.ts + 145 + + The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + + + Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + + src/app/app.component.ts + 155 + + Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + + + The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + + src/app/app.component.ts + 165 + + The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + + + The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. + + src/app/app.component.ts + 178 + + The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. + + + Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. + + src/app/app.component.ts + 189 + + Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. + + + Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + + src/app/app.component.ts + 199 + + Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + + + File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. + + src/app/app.component.ts + 209 + + File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. + + + Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + + src/app/app.component.ts + 219 + + Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + + + Thank you! 🙏 + + src/app/app.component.ts + 229 + + Terima kasih! 🙏 + + + There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. + + src/app/app.component.ts + 231 + + There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. + + + Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! + + src/app/app.component.ts + 233 + + Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! + + + Initiating upload... + + src/app/app.component.ts + 288 + + Mulai mengunggah... + + + Paperless-ngx + + src/app/components/app-frame/app-frame.component.html + 11 + + app title + Paperless-ngx + + + Search documents + + src/app/components/app-frame/app-frame.component.html + 18 + + Telusuri dokumen + + + Logged in as + + src/app/components/app-frame/app-frame.component.html + 39 + + Logged in as + + + Settings + + src/app/components/app-frame/app-frame.component.html + 45 + + + src/app/components/app-frame/app-frame.component.html + 174 + + + src/app/components/app-frame/app-frame.component.html + 177 + + + src/app/components/manage/settings/settings.component.html + 1 + + + src/app/components/manage/settings/settings.component.html + 192 + + Settings + + + Logout + + src/app/components/app-frame/app-frame.component.html + 50 + + Keluar + + + Dashboard + + src/app/components/app-frame/app-frame.component.html + 69 + + + src/app/components/app-frame/app-frame.component.html + 72 + + + src/app/components/dashboard/dashboard.component.html + 1 + + Dasbor + + + Documents + + src/app/components/app-frame/app-frame.component.html + 76 + + + src/app/components/app-frame/app-frame.component.html + 79 + + + src/app/components/document-list/document-list.component.ts + 97 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + + src/app/components/manage/management-list/management-list.component.html + 54 + + Dokumen + + + Saved views + + src/app/components/app-frame/app-frame.component.html + 85 + + + src/app/components/manage/settings/settings.component.html + 189 + + Saved views + + + Open documents + + src/app/components/app-frame/app-frame.component.html + 101 + + Buka dokumen + + + Close all + + src/app/components/app-frame/app-frame.component.html + 117 + + + src/app/components/app-frame/app-frame.component.html + 120 + + Tutup semua + + + Manage + + src/app/components/app-frame/app-frame.component.html + 127 + + Manage + + + Correspondents + + src/app/components/app-frame/app-frame.component.html + 131 + + + src/app/components/app-frame/app-frame.component.html + 134 + + Koresponden + + + Tags + + src/app/components/app-frame/app-frame.component.html + 138 + + + src/app/components/app-frame/app-frame.component.html + 141 + + + src/app/components/common/input/tags/tags.component.html + 2 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 28 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 27 + + Tags + + + Document types + + src/app/components/app-frame/app-frame.component.html + 145 + + + src/app/components/app-frame/app-frame.component.html + 148 + + Jenis dokumen + + + Storage paths + + src/app/components/app-frame/app-frame.component.html + 152 + + + src/app/components/app-frame/app-frame.component.html + 155 + + Storage paths + + + File Tasks + + src/app/components/app-frame/app-frame.component.html + 159 + + + src/app/components/manage/tasks/tasks.component.html + 1 + + File Tasks + + + File Tasks + + src/app/components/app-frame/app-frame.component.html + 163 + + File Tasks + + + Logs + + src/app/components/app-frame/app-frame.component.html + 167 + + + src/app/components/app-frame/app-frame.component.html + 170 + + + src/app/components/manage/logs/logs.component.html + 1 + + Logs + + + Info + + src/app/components/app-frame/app-frame.component.html + 183 + + + src/app/components/manage/tasks/tasks.component.html + 43 + + Informasi + + + Documentation + + src/app/components/app-frame/app-frame.component.html + 187 + + + src/app/components/app-frame/app-frame.component.html + 190 + + Dokumentasi + + + GitHub + + src/app/components/app-frame/app-frame.component.html + 195 + + + src/app/components/app-frame/app-frame.component.html + 198 + + GitHub + + + Suggest an idea + + src/app/components/app-frame/app-frame.component.html + 200 + + + src/app/components/app-frame/app-frame.component.html + 204 + + Sarankan ide + + + is available. + + src/app/components/app-frame/app-frame.component.html + 213 + + telah tersedia. + + + Click to view. + + src/app/components/app-frame/app-frame.component.html + 213 + + Ketuk untuk melihat. + + + Paperless-ngx can automatically check for updates + + src/app/components/app-frame/app-frame.component.html + 217 + + Paperless-ngx can automatically check for updates + + + How does this work? + + src/app/components/app-frame/app-frame.component.html + 224,226 + + Bagaimana ini dapat bekerja? + + + Update available + + src/app/components/app-frame/app-frame.component.html + 235 + + Pembaruan tersedia + + + An error occurred while saving settings. + + src/app/components/app-frame/app-frame.component.ts + 89 + + + src/app/components/manage/settings/settings.component.ts + 593 + + An error occurred while saving settings. + + + An error occurred while saving update checking settings. + + src/app/components/app-frame/app-frame.component.ts + 222 + + An error occurred while saving update checking settings. + + + Clear + + src/app/components/common/clearable-badge/clearable-badge.component.html + 1 + + + src/app/components/common/date-dropdown/date-dropdown.component.html + 24 + + + src/app/components/common/date-dropdown/date-dropdown.component.html + 47 + + Clear + + + Cancel + + src/app/components/common/confirm-dialog/confirm-dialog.component.html + 12 + + Cancel + + + Confirmation + + src/app/components/common/confirm-dialog/confirm-dialog.component.ts + 20 + + Konfirmasi + + + Confirm + + src/app/components/common/confirm-dialog/confirm-dialog.component.ts + 32 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 324 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 364 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 + + Confirm + + + After + + src/app/components/common/date-dropdown/date-dropdown.component.html + 19 + + Setelah + + + Before + + src/app/components/common/date-dropdown/date-dropdown.component.html + 42 + + Sebelum + + + Last 7 days + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 43 + + 7 hari terahkir + + + Last month + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 47 + + Bulan lalu + + + Last 3 months + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 51 + + 3 bulan terakhir + + + Last year + + src/app/components/common/date-dropdown/date-dropdown.component.ts + 55 + + Tahun lalu + + + Name + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 9 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 9 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 8 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 9 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/management-list/management-list.component.html + 19 + + + src/app/components/manage/settings/settings.component.html + 204 + + + src/app/components/manage/settings/settings.component.html + 257 + + + src/app/components/manage/settings/settings.component.html + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 + + + src/app/components/manage/tasks/tasks.component.html + 40 + + Name + + + Matching algorithm + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 10 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 13 + + Matching algorithm + + + Matching pattern + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 14 + + Matching pattern + + + Case insensitive + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 12 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 13 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 15 + + Case insensitive + + + Cancel + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 20 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 16 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 34 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 39 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 21 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 + + + src/app/components/common/select-dialog/select-dialog.component.html + 12 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 6 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 18 + + Batalkan + + + Save + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html + 21 + + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 17 + + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 35 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 40 + + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 + + + src/app/components/document-detail/document-detail.component.html + 196 + + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 19 + + + src/app/components/manage/settings/settings.component.html + 415 + + Simpan + + + Create new correspondent + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts + 25 + + Create new correspondent + + + Edit correspondent + + src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts + 29 + + Edit correspondent + + + Create new document type + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts + 25 + + Create new document type + + + Edit document type + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts + 29 + + Ubah jenis dokumen + + + Create new item + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 71 + + Create new item + + + Edit item + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 75 + + Edit item + + + Could not save element: + + src/app/components/common/edit-dialog/edit-dialog.component.ts + 79 + + Could not save element: + + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + + + IMAP Server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 11 + + IMAP Server + + + IMAP Port + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 12 + + IMAP Port + + + IMAP Security + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 13 + + IMAP Security + + + Username + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 16 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Username + + + Password + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 17 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Kata sandi + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + + + Character Set + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Character Set + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Memuat... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Tes + + + No encryption + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 13 + + Tanpa enkripsi + + + SSL + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 14 + + SSL + + + STARTTLS + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 15 + + STARTTLS + + + Create new mail account + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 39 + + Create new mail account + + + Edit mail account + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 43 + + Edit mail account + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + + + Account + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 11 + + + src/app/components/manage/settings/settings.component.html + 295 + + Akun + + + Folder + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 12 + + Direktori + + + Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 12 + + Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. + + + Maximum age (days) + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 13 + + Umur maksimal (hari) + + + Attachment type + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 14 + + Attachment type + + + Consumption scope + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 15 + + Consumption scope + + + See docs for .eml processing requirements + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 15 + + See docs for .eml processing requirements + + + Rule order + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 16 + + Urutan peraturan + + + Paperless will only process mails that match all of the filters specified below. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 19 + + Paperless will only process mails that match all of the filters specified below. + + + Filter from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 20 + + Filter from + + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + + + Filter subject + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 22 + + Filter subject + + + Filter body + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 23 + + Filter body + + + Filter attachment filename + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 24 + + Filter attachment filename + + + Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 24 + + Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. + + + Action + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 27 + + Aksi + + + Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 27 + + Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. + + + Action parameter + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 28 + + Action parameter + + + Assign title from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 29 + + Assign title from + + + Assign document type + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 31 + + Assign document type + + + Assign correspondent from + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 32 + + Assign correspondent from + + + Assign correspondent + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 33 + + Assign correspondent + + + Error + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 38 + + + src/app/services/toast.service.ts + 35 + + Kesalahan + + + Only process attachments + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 26 + + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 37 + + Hanya memproses lampiran + + + Process all files, including 'inline' attachments + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 30 + + Process all files, including 'inline' attachments + + + Process message as .eml + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 41 + + Proses pesan sebagai .eml + + + Process message as .eml and attachments separately + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 45 + + Process message as .eml and attachments separately + + + Delete + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 + + + src/app/components/document-detail/document-detail.component.html + 11 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 141 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 46 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.html + 65 + + + src/app/components/manage/management-list/management-list.component.ts + 213 + + + src/app/components/manage/settings/settings.component.html + 222 + + + src/app/components/manage/settings/settings.component.html + 270 + + + src/app/components/manage/settings/settings.component.html + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 + + Hapus + + + Move to specified folder + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 56 + + Move to specified folder + + + Mark as read, don't process read mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 60 + + Mark as read, don't process read mails + + + Flag the mail, don't process flagged mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 64 + + Flag the mail, don't process flagged mails + + + Tag the mail with specified tag, don't process tagged mails + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 68 + + Tag the mail with specified tag, don't process tagged mails + + + Use subject as title + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 75 + + Gunakan subjek sebagai judul + + + Use attachment filename as title + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 79 + + Use attachment filename as title + + + Do not assign a correspondent + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 86 + + Do not assign a correspondent + + + Use mail address + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 90 + + Use mail address + + + Use name (or mail address if not available) + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 94 + + Use name (or mail address if not available) + + + Use correspondent selected below + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 98 + + Use correspondent selected below + + + Create new mail rule + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 139 + + Buat aturan surat baru + + + Edit mail rule + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts + 143 + + Ubah peraturan surat + + + Path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html + 10 + + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 42 + + Path + + + e.g. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 26 + + contoh + + + or use slashes to add directories e.g. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 28 + + or use slashes to add directories e.g. + + + See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 30 + + See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. + + + Create new storage path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 35 + + Create new storage path + + + Edit storage path + + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts + 39 + + Edit storage path + + + Color + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 10 + + + src/app/components/manage/tag-list/tag-list.component.ts + 42 + + Warna + + + Inbox tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 12 + + Inbox tag + + + Inbox tags are automatically assigned to all consumed documents. + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html + 12 + + Inbox tags are automatically assigned to all consumed documents. + + + Create new tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts + 26 + + Create new tag + + + Edit tag + + src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts + 30 + + Edit tag + + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Surat elektronik + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Nama depan + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Nama akhir + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Aktif + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Grup + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Buat akun pengguna baru + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Ubah akun pengguna + + + All + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 16 + + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 20 + + Semua + + + Any + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 18 + + Setiap + + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + + + Apply + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 40 + + Terapkan + + + Click again to exclude items. + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 46 + + Click again to exclude items. + + + Not assigned + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts + 335 + + Filter drop down element to filter for documents with no correspondent/type/tag assigned + Not assigned + + + Invalid date. + + src/app/components/common/input/date/date.component.html + 13 + + Invalid date. + + + Suggestions: + + src/app/components/common/input/date/date.component.html + 16 + + + src/app/components/common/input/select/select.component.html + 32 + + + src/app/components/common/input/tags/tags.component.html + 43 + + Suggestions: + + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Pemilik: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + View + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Edit + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + + + Add item + + src/app/components/common/input/select/select.component.html + 12 + + Used for both types, correspondents, storage paths + Add item + + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + + + Add tag + + src/app/components/common/input/tags/tags.component.html + 12 + + Add tag + + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + + + Select + + src/app/components/common/select-dialog/select-dialog.component.html + 13 + + + src/app/components/common/select-dialog/select-dialog.component.ts + 17 + + + src/app/components/document-list/document-list.component.html + 8 + + Pilih + + + Please select an object + + src/app/components/common/select-dialog/select-dialog.component.ts + 20 + + Please select an object + + + Hello , welcome to Paperless-ngx + + src/app/components/dashboard/dashboard.component.ts + 36 + + Hello , welcome to Paperless-ngx + + + Welcome to Paperless-ngx + + src/app/components/dashboard/dashboard.component.ts + 38 + + Welcome to Paperless-ngx + + + Show all + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 3 + + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 27 + + Tampilkan semua + + + Created + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 9 + + + src/app/components/document-list/document-list.component.html + 172 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 63 + + + src/app/components/manage/tasks/tasks.component.html + 41 + + + src/app/services/rest/document.service.ts + 22 + + Created + + + Title + + src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html + 10 + + + src/app/components/document-detail/document-detail.component.html + 75 + + + src/app/components/document-list/document-list.component.html + 144 + + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 172 + + + src/app/services/rest/document.service.ts + 20 + + Judul + + + Statistics + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 1 + + Statistik + + + Go to inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 4 + + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total dokumen + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total huruf + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Lainnya + + + Upload new documents + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 1 + + Unggah dokumen baru + + + Dismiss completed + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 4 + + This button dismisses all status messages about processed documents on the dashboard (failed and successful) + Dismiss completed + + + Drop documents here or + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 13 + + Drop documents here or + + + Browse files + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 13 + + Cari berkas + + + {VAR_PLURAL, plural, =1 {One more document} other { more documents}} + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html + 25 + + This is shown as a summary line when there are more than 5 document in the processing pipeline. + {VAR_PLURAL, plural, =1 {One more document} other { more documents}} + + + Processing: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 39 + + Processing: + + + Failed: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 42 + + Failed: + + + Added: + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 45 + + Added: + + + , + + src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts + 48 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 269 + + this string is used to separate processing, failed and added on the file upload widget + , + + + Paperless-ngx is running! + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 3 + + Paperless-ngx sedang berjalan! + + + You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 4 + + You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + + + More detail on how to use and configure Paperless-ngx is always available in the documentation. + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 5 + + More detail on how to use and configure Paperless-ngx is always available in the documentation. + + + Thanks for being a part of the Paperless-ngx community! + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 8 + + Thanks for being a part of the Paperless-ngx community! + + + Start the tour + + src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html + 9 + + Mulai tur + + + Searching document with asn + + src/app/components/document-asn/document-asn.component.html + 1 + + Searching document with asn + + + Page + + src/app/components/document-detail/document-detail.component.html + 3 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 15 + + Halaman + + + of + + src/app/components/document-detail/document-detail.component.html + 5,6 + + of + + + Download + + src/app/components/document-detail/document-detail.component.html + 19 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 105 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 64 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 94 + + Unduh + + + Download original + + src/app/components/document-detail/document-detail.component.html + 25 + + Download original + + + Redo OCR + + src/app/components/document-detail/document-detail.component.html + 34 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 92 + + Redo OCR + + + More like this + + src/app/components/document-detail/document-detail.component.html + 40 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 44 + + More like this + + + Close + + src/app/components/document-detail/document-detail.component.html + 43 + + + src/app/guards/dirty-saved-view.guard.ts + 40 + + Tutup + + + Previous + + src/app/components/document-detail/document-detail.component.html + 50 + + Sebelumnya + + + Details + + src/app/components/document-detail/document-detail.component.html + 72 + + Rincian + + + Archive serial number + + src/app/components/document-detail/document-detail.component.html + 76 + + Archive serial number + + + Date created + + src/app/components/document-detail/document-detail.component.html + 77 + + Tanggal dibuat + + + Correspondent + + src/app/components/document-detail/document-detail.component.html + 79 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 40 + + + src/app/components/document-list/document-list.component.html + 137 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 36 + + + src/app/services/rest/document.service.ts + 19 + + Correspondent + + + Document type + + src/app/components/document-detail/document-detail.component.html + 81 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 51 + + + src/app/components/document-list/document-list.component.html + 158 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 44 + + + src/app/services/rest/document.service.ts + 21 + + Document type + + + Storage path + + src/app/components/document-detail/document-detail.component.html + 83 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 62 + + + src/app/components/document-list/document-list.component.html + 165 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 52 + + Storage path + + + Default + + src/app/components/document-detail/document-detail.component.html + 84 + + Bawaan + + + Content + + src/app/components/document-detail/document-detail.component.html + 91 + + Konten + + + Metadata + + src/app/components/document-detail/document-detail.component.html + 100 + + + src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts + 17 + + Metadata + + + Date modified + + src/app/components/document-detail/document-detail.component.html + 106 + + Tanggal dimodifikasi + + + Date added + + src/app/components/document-detail/document-detail.component.html + 110 + + Tanggal ditambahkan + + + Media filename + + src/app/components/document-detail/document-detail.component.html + 114 + + Media filename + + + Original filename + + src/app/components/document-detail/document-detail.component.html + 118 + + Original filename + + + Original MD5 checksum + + src/app/components/document-detail/document-detail.component.html + 122 + + Original MD5 checksum + + + Original file size + + src/app/components/document-detail/document-detail.component.html + 126 + + Original file size + + + Original mime type + + src/app/components/document-detail/document-detail.component.html + 130 + + Original mime type + + + Archive MD5 checksum + + src/app/components/document-detail/document-detail.component.html + 134 + + Archive MD5 checksum + + + Archive file size + + src/app/components/document-detail/document-detail.component.html + 138 + + Archive file size + + + Original document metadata + + src/app/components/document-detail/document-detail.component.html + 144 + + Original document metadata + + + Archived document metadata + + src/app/components/document-detail/document-detail.component.html + 145 + + Archived document metadata + + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + + + Enter Password + + src/app/components/document-detail/document-detail.component.html + 167 + + + src/app/components/document-detail/document-detail.component.html + 215 + + Enter Password + + + Notes + + src/app/components/document-detail/document-detail.component.html + 175,176 + + Notes + + + Discard + + src/app/components/document-detail/document-detail.component.html + 194 + + Discard + + + Save & next + + src/app/components/document-detail/document-detail.component.html + 195 + + Save & next + + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + + + Confirm delete + + src/app/components/document-detail/document-detail.component.ts + 571 + + + src/app/components/manage/management-list/management-list.component.ts + 209 + + Confirm delete + + + Do you really want to delete document ""? + + src/app/components/document-detail/document-detail.component.ts + 572 + + Do you really want to delete document ""? + + + The files for this document will be deleted permanently. This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 573 + + The files for this document will be deleted permanently. This operation cannot be undone. + + + Delete document + + src/app/components/document-detail/document-detail.component.ts + 575 + + Hapus dokumen + + + Error deleting document: + + src/app/components/document-detail/document-detail.component.ts + 595,597 + + Error deleting document: + + + Redo OCR confirm + + src/app/components/document-detail/document-detail.component.ts + 618 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 499 + + Redo OCR confirm + + + This operation will permanently redo OCR for this document. + + src/app/components/document-detail/document-detail.component.ts + 619 + + This operation will permanently redo OCR for this document. + + + This operation cannot be undone. + + src/app/components/document-detail/document-detail.component.ts + 620 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 462 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 501 + + + src/app/components/manage/settings/settings.component.ts + 688 + + + src/app/components/manage/settings/settings.component.ts + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 + + This operation cannot be undone. + + + Proceed + + src/app/components/document-detail/document-detail.component.ts + 622 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 503 + + + src/app/components/manage/settings/settings.component.ts + 690 + + + src/app/components/manage/settings/settings.component.ts + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 + + Proceed + + + Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. + + src/app/components/document-detail/document-detail.component.ts + 630 + + Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. + + + Error executing operation: + + src/app/components/document-detail/document-detail.component.ts + 641,643 + + Error executing operation: + + + Select: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 10 + + Select: + + + Edit: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 27 + + Edit: + + + Filter tags + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 29 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 28 + + Filter tags + + + Filter correspondents + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 41 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 37 + + Filter correspondents + + + Filter document types + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 52 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 45 + + Filter document types + + + Filter storage paths + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 63 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 53 + + Filter storage paths + + + Actions + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 89 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/management-list/management-list.component.html + 23 + + + src/app/components/manage/settings/settings.component.html + 221 + + + src/app/components/manage/settings/settings.component.html + 259 + + + src/app/components/manage/settings/settings.component.html + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 + + + src/app/components/manage/tasks/tasks.component.html + 44 + + Aksi + + + Include: + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 111 + + Include: + + + Archived files + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 115,117 + + Archived files + + + Original files + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 121,123 + + Original files + + + Use formatted filename + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 128,130 + + Use formatted filename + + + Error executing bulk operation: + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 185,187 + + Error executing bulk operation: + + + "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 261 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 267 + + "" + + + "" and "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 263 + + This is for messages like 'modify "tag1" and "tag2"' + "" and "" + + + and "" + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 271,273 + + this is for messages like 'modify "tag1", "tag2" and "tag3"' + and "" + + + Confirm tags assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 288 + + Confirm tags assignment + + + This operation will add the tag "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 294 + + This operation will add the tag "" to selected document(s). + + + This operation will add the tags to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 299,301 + + This operation will add the tags to selected document(s). + + + This operation will remove the tag "" from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 307 + + This operation will remove the tag "" from selected document(s). + + + This operation will remove the tags from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 312,314 + + This operation will remove the tags from selected document(s). + + + This operation will add the tags and remove the tags on selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 316,320 + + This operation will add the tags and remove the tags on selected document(s). + + + Confirm correspondent assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 357 + + Confirm correspondent assignment + + + This operation will assign the correspondent "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 359 + + This operation will assign the correspondent "" to selected document(s). + + + This operation will remove the correspondent from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 361 + + This operation will remove the correspondent from selected document(s). + + + Confirm document type assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 395 + + Confirm document type assignment + + + This operation will assign the document type "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 397 + + This operation will assign the document type "" to selected document(s). + + + This operation will remove the document type from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 399 + + This operation will remove the document type from selected document(s). + + + Confirm storage path assignment + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 433 + + Confirm storage path assignment + + + This operation will assign the storage path "" to selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 435 + + This operation will assign the storage path "" to selected document(s). + + + This operation will remove the storage path from selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 437 + + This operation will remove the storage path from selected document(s). + + + Delete confirm + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 460 + + Delete confirm + + + This operation will permanently delete selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 461 + + This operation will permanently delete selected document(s). + + + Delete document(s) + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 464 + + Delete document(s) + + + This operation will permanently redo OCR for selected document(s). + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 500 + + This operation will permanently redo OCR for selected document(s). + + + Filter by correspondent + + src/app/components/document-list/document-card-large/document-card-large.component.html + 20 + + + src/app/components/document-list/document-list.component.html + 194 + + Filter by correspondent + + + Filter by tag + + src/app/components/document-list/document-card-large/document-card-large.component.html + 24 + + + src/app/components/document-list/document-list.component.html + 199 + + Filter by tag + + + View notes + + src/app/components/document-list/document-card-large/document-card-large.component.html + 70 + + View notes + + + Notes + + src/app/components/document-list/document-card-large/document-card-large.component.html + 74 + + Notes + + + Filter by document type + + src/app/components/document-list/document-card-large/document-card-large.component.html + 76 + + + src/app/components/document-list/document-list.component.html + 212 + + Filter by document type + + + Filter by storage path + + src/app/components/document-list/document-card-large/document-card-large.component.html + 83 + + + src/app/components/document-list/document-list.component.html + 217 + + Filter by storage path + + + Created: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 98,99 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 56,57 + + Created: + + + Added: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 99,100 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 57,58 + + Added: + + + Modified: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 100,101 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 58,59 + + Modified: + + + Score: + + src/app/components/document-list/document-card-large/document-card-large.component.html + 110 + + Score: + + + Toggle tag filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 14 + + Toggle tag filter + + + Toggle correspondent filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 32 + + Toggle correspondent filter + + + Toggle document type filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 39 + + Toggle document type filter + + + Toggle storage path filter + + src/app/components/document-list/document-card-small/document-card-small.component.html + 46 + + Toggle storage path filter + + + Select none + + src/app/components/document-list/document-list.component.html + 11 + + Select none + + + Select page + + src/app/components/document-list/document-list.component.html + 12 + + Select page + + + Select all + + src/app/components/document-list/document-list.component.html + 13 + + Select all + + + Sort + + src/app/components/document-list/document-list.component.html + 38 + + Sort + + + Views + + src/app/components/document-list/document-list.component.html + 64 + + + src/app/components/manage/settings/settings.component.html + 199 + + Views + + + Save "" + + src/app/components/document-list/document-list.component.html + 76 + + Save "" + + + Save as... + + src/app/components/document-list/document-list.component.html + 78 + + Save as... + + + {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} + + src/app/components/document-list/document-list.component.html + 97 + + {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} + + + {VAR_PLURAL, plural, =1 {One document} other { documents}} + + src/app/components/document-list/document-list.component.html + 99 + + {VAR_PLURAL, plural, =1 {One document} other { documents}} + + + (filtered) + + src/app/components/document-list/document-list.component.html + 99 + + (filtered) + + + Error while loading documents + + src/app/components/document-list/document-list.component.html + 112 + + Error while loading documents + + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + + + ASN + + src/app/components/document-list/document-list.component.html + 131,130 + + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 177 + + + src/app/services/rest/document.service.ts + 18 + + ASN + + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + + + Added + + src/app/components/document-list/document-list.component.html + 179 + + + src/app/components/document-list/filter-editor/filter-editor.component.html + 69 + + + src/app/services/rest/document.service.ts + 23 + + Added + + + Edit document + + src/app/components/document-list/document-list.component.html + 198 + + Edit document + + + View "" saved successfully. + + src/app/components/document-list/document-list.component.ts + 205 + + View "" saved successfully. + + + View "" created successfully. + + src/app/components/document-list/document-list.component.ts + 246 + + View "" created successfully. + + + Reset filters + + src/app/components/document-list/filter-editor/filter-editor.component.html + 82 + + Reset filters + + + Correspondent: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 108,110 + + Correspondent: + + + Without correspondent + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 112 + + Without correspondent + + + Type: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 117,119 + + Type: + + + Without document type + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 121 + + Without document type + + + Tag: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 125,127 + + Tag: + + + Without any tag + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 131 + + Without any tag + + + Title: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 135 + + Title: + + + ASN: + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 138 + + ASN: + + + Title & content + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 175 + + Title & content + + + Advanced search + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 180 + + Advanced search + + + More like + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 186 + + More like + + + equals + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 205 + + equals + + + is empty + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 209 + + is empty + + + is not empty + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 213 + + is not empty + + + greater than + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 217 + + greater than + + + less than + + src/app/components/document-list/filter-editor/filter-editor.component.ts + 221 + + less than + + + Save current view + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 3 + + Save current view + + + Show in sidebar + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 9 + + + src/app/components/manage/settings/settings.component.html + 216 + + Show in sidebar + + + Show on dashboard + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 212 + + Show on dashboard + + + Filter rules error occurred while saving this view + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 12 + + Filter rules error occurred while saving this view + + + The error returned was + + src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html + 13 + + The error returned was + + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + + + correspondent + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 39 + + correspondent + + + correspondents + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 40 + + correspondents + + + Last used + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 45 + + Last used + + + Do you really want to delete the correspondent ""? + + src/app/components/manage/correspondent-list/correspondent-list.component.ts + 55 + + Do you really want to delete the correspondent ""? + + + document type + + src/app/components/manage/document-type-list/document-type-list.component.ts + 36 + + document type + + + document types + + src/app/components/manage/document-type-list/document-type-list.component.ts + 37 + + document types + + + Do you really want to delete the document type ""? + + src/app/components/manage/document-type-list/document-type-list.component.ts + 44 + + Do you really want to delete the document type ""? + + + Create + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + + src/app/components/manage/management-list/management-list.component.html + 2 + + Create + + + Filter by: + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + + src/app/components/manage/management-list/management-list.component.html + 8 + + Filter by: + + + Matching + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + + src/app/components/manage/management-list/management-list.component.html + 20 + + Matching + + + Document count + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + + src/app/components/manage/management-list/management-list.component.html + 21 + + Document count + + + Filter Documents + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + + src/app/components/manage/management-list/management-list.component.html + 44 + + Filter Documents + + + {VAR_PLURAL, plural, =1 {One } other { total }} + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + + src/app/components/manage/management-list/management-list.component.html + 74 + + {VAR_PLURAL, plural, =1 {One } other { total }} + + + Automatic + + src/app/components/manage/management-list/management-list.component.ts + 100 + + + src/app/data/matching-model.ts + 15 + + Automatic + + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + + + Successfully created . + + src/app/components/manage/management-list/management-list.component.ts + 147 + + Successfully created . + + + Error occurred while saving . + + src/app/components/manage/management-list/management-list.component.ts + 174,176 + + Error occurred while saving . + + + Successfully updated . + + src/app/components/manage/management-list/management-list.component.ts + 181 + + Successfully updated . + + + Error occurred while saving : . + + src/app/components/manage/management-list/management-list.component.ts + 187,189 + + Error occurred while saving : . + + + Do you really want to delete the ? + + src/app/components/manage/management-list/management-list.component.ts + 196 + + Do you really want to delete the ? + + + Associated documents will not be deleted. + + src/app/components/manage/management-list/management-list.component.ts + 211 + + Associated documents will not be deleted. + + + Error while deleting element: + + src/app/components/manage/management-list/management-list.component.ts + 224,226 + + Error while deleting element: + + + Start tour + + src/app/components/manage/settings/settings.component.html + 2 + + Start tour + + + Open Django Admin + + src/app/components/manage/settings/settings.component.html + 4 + + Open Django Admin + + + General + + src/app/components/manage/settings/settings.component.html + 15 + + General + + + Appearance + + src/app/components/manage/settings/settings.component.html + 18 + + Appearance + + + Display language + + src/app/components/manage/settings/settings.component.html + 22 + + Display language + + + You need to reload the page after applying a new language. + + src/app/components/manage/settings/settings.component.html + 30 + + You need to reload the page after applying a new language. + + + Date display + + src/app/components/manage/settings/settings.component.html + 37 + + Date display + + + Date format + + src/app/components/manage/settings/settings.component.html + 50 + + Date format + + + Short: + + src/app/components/manage/settings/settings.component.html + 56,57 + + Short: + + + Medium: + + src/app/components/manage/settings/settings.component.html + 60,61 + + Medium: + + + Long: + + src/app/components/manage/settings/settings.component.html + 64,65 + + Long: + + + Items per page + + src/app/components/manage/settings/settings.component.html + 72 + + Items per page + + + Document editor + + src/app/components/manage/settings/settings.component.html + 88 + + Document editor + + + Use PDF viewer provided by the browser + + src/app/components/manage/settings/settings.component.html + 92 + + Use PDF viewer provided by the browser + + + This is usually faster for displaying large PDF documents, but it might not work on some browsers. + + src/app/components/manage/settings/settings.component.html + 92 + + This is usually faster for displaying large PDF documents, but it might not work on some browsers. + + + Sidebar + + src/app/components/manage/settings/settings.component.html + 99 + + Sidebar + + + Use 'slim' sidebar (icons only) + + src/app/components/manage/settings/settings.component.html + 103 + + Use 'slim' sidebar (icons only) + + + Dark mode + + src/app/components/manage/settings/settings.component.html + 110 + + Dark mode + + + Use system settings + + src/app/components/manage/settings/settings.component.html + 113 + + Use system settings + + + Enable dark mode + + src/app/components/manage/settings/settings.component.html + 114 + + Enable dark mode + + + Invert thumbnails in dark mode + + src/app/components/manage/settings/settings.component.html + 115 + + Invert thumbnails in dark mode + + + Theme Color + + src/app/components/manage/settings/settings.component.html + 121 + + Theme Color + + + Reset + + src/app/components/manage/settings/settings.component.html + 130 + + Reset + + + Update checking + + src/app/components/manage/settings/settings.component.html + 135 + + Update checking + + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + src/app/components/manage/settings/settings.component.html + 140,142 + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + + No tracking data is collected by the app in any way. + + src/app/components/manage/settings/settings.component.html + 144,146 + + No tracking data is collected by the app in any way. + + + Enable update checking + + src/app/components/manage/settings/settings.component.html + 146 + + Enable update checking + + + Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. + + src/app/components/manage/settings/settings.component.html + 146 + + Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. + + + Bulk editing + + src/app/components/manage/settings/settings.component.html + 150 + + Bulk editing + + + Show confirmation dialogs + + src/app/components/manage/settings/settings.component.html + 154 + + Show confirmation dialogs + + + Deleting documents will always ask for confirmation. + + src/app/components/manage/settings/settings.component.html + 154 + + Deleting documents will always ask for confirmation. + + + Apply on close + + src/app/components/manage/settings/settings.component.html + 155 + + Apply on close + + + Enable notes + + src/app/components/manage/settings/settings.component.html + 163 + + Enable notes + + + Notifications + + src/app/components/manage/settings/settings.component.html + 171 + + Notifications + + + Document processing + + src/app/components/manage/settings/settings.component.html + 174 + + Document processing + + + Show notifications when new documents are detected + + src/app/components/manage/settings/settings.component.html + 178 + + Show notifications when new documents are detected + + + Show notifications when document processing completes successfully + + src/app/components/manage/settings/settings.component.html + 179 + + Show notifications when document processing completes successfully + + + Show notifications when document processing fails + + src/app/components/manage/settings/settings.component.html + 180 + + Show notifications when document processing fails + + + Suppress notifications on dashboard + + src/app/components/manage/settings/settings.component.html + 181 + + Suppress notifications on dashboard + + + This will suppress all messages about document processing status on the dashboard. + + src/app/components/manage/settings/settings.component.html + 181 + + This will suppress all messages about document processing status on the dashboard. + + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + + + Appears on + + src/app/components/manage/settings/settings.component.html + 209 + + Appears on + + + No saved views defined. + + src/app/components/manage/settings/settings.component.html + 226 + + No saved views defined. + + + Mail + + src/app/components/manage/settings/settings.component.html + 240,239 + + Mail + + + Mail accounts + + src/app/components/manage/settings/settings.component.html + 245 + + Mail accounts + + + Add Account + + src/app/components/manage/settings/settings.component.html + 250 + + Add Account + + + Server + + src/app/components/manage/settings/settings.component.html + 258 + + Server + + + No mail accounts defined. + + src/app/components/manage/settings/settings.component.html + 276 + + No mail accounts defined. + + + Mail rules + + src/app/components/manage/settings/settings.component.html + 282 + + Mail rules + + + Add Rule + + src/app/components/manage/settings/settings.component.html + 287 + + Add Rule + + + No mail rules defined. + + src/app/components/manage/settings/settings.component.html + 313 + + No mail rules defined. + + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + + + Saved view "" deleted. + + src/app/components/manage/settings/settings.component.ts + 475 + + Saved view "" deleted. + + + Settings saved + + src/app/components/manage/settings/settings.component.ts + 577 + + Settings saved + + + Settings were saved successfully. + + src/app/components/manage/settings/settings.component.ts + 578 + + Settings were saved successfully. + + + Settings were saved successfully. Reload is required to apply some changes. + + src/app/components/manage/settings/settings.component.ts + 582 + + Settings were saved successfully. Reload is required to apply some changes. + + + Reload now + + src/app/components/manage/settings/settings.component.ts + 583 + + Reload now + + + Use system language + + src/app/components/manage/settings/settings.component.ts + 601 + + Use system language + + + Use date format of display language + + src/app/components/manage/settings/settings.component.ts + 608 + + Use date format of display language + + + Error while storing settings on server: + + src/app/components/manage/settings/settings.component.ts + 628,630 + + Error while storing settings on server: + + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + + + Saved account "". + + src/app/components/manage/settings/settings.component.ts + 781 + + Saved account "". + + + Error saving account: . + + src/app/components/manage/settings/settings.component.ts + 791 + + Error saving account: . + + + Confirm delete mail account + + src/app/components/manage/settings/settings.component.ts + 801 + + Confirm delete mail account + + + This operation will permanently delete this mail account. + + src/app/components/manage/settings/settings.component.ts + 802 + + This operation will permanently delete this mail account. + + + Deleted mail account + + src/app/components/manage/settings/settings.component.ts + 811 + + Deleted mail account + + + Error deleting mail account: . + + src/app/components/manage/settings/settings.component.ts + 820 + + Error deleting mail account: . + + + Saved rule "". + + src/app/components/manage/settings/settings.component.ts + 839 + + Saved rule "". + + + Error saving rule: . + + src/app/components/manage/settings/settings.component.ts + 850 + + Error saving rule: . + + + Confirm delete mail rule + + src/app/components/manage/settings/settings.component.ts + 860 + + Confirm delete mail rule + + + This operation will permanently delete this mail rule. + + src/app/components/manage/settings/settings.component.ts + 861 + + This operation will permanently delete this mail rule. + + + Deleted mail rule + + src/app/components/manage/settings/settings.component.ts + 870 + + Deleted mail rule + + + Error deleting mail rule: . + + src/app/components/manage/settings/settings.component.ts + 879 + + Error deleting mail rule: . + + + storage path + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 36 + + storage path + + + storage paths + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 37 + + storage paths + + + Do you really want to delete the storage path ""? + + src/app/components/manage/storage-path-list/storage-path-list.component.ts + 52 + + Do you really want to delete the storage path ""? + + + tag + + src/app/components/manage/tag-list/tag-list.component.ts + 36 + + tag + + + tags + + src/app/components/manage/tag-list/tag-list.component.ts + 37 + + tags + + + Do you really want to delete the tag ""? + + src/app/components/manage/tag-list/tag-list.component.ts + 53 + + Do you really want to delete the tag ""? + + + Clear selection + + src/app/components/manage/tasks/tasks.component.html + 6 + + Clear selection + + + Refresh + + src/app/components/manage/tasks/tasks.component.html + 20 + + Refresh + + + Results + + src/app/components/manage/tasks/tasks.component.html + 42 + + Results + + + click for full output + + src/app/components/manage/tasks/tasks.component.html + 66 + + click for full output + + + Dismiss + + src/app/components/manage/tasks/tasks.component.html + 81 + + + src/app/components/manage/tasks/tasks.component.ts + 62 + + Dismiss + + + Open Document + + src/app/components/manage/tasks/tasks.component.html + 87 + + Open Document + + + Failed  + + src/app/components/manage/tasks/tasks.component.html + 105 + + Failed  + + + Complete  + + src/app/components/manage/tasks/tasks.component.html + 111 + + Complete  + + + Started  + + src/app/components/manage/tasks/tasks.component.html + 117 + + Started  + + + Queued  + + src/app/components/manage/tasks/tasks.component.html + 123 + + Queued  + + + Dismiss selected + + src/app/components/manage/tasks/tasks.component.ts + 26 + + Dismiss selected + + + Dismiss all + + src/app/components/manage/tasks/tasks.component.ts + 27 + + + src/app/components/manage/tasks/tasks.component.ts + 60 + + Dismiss all + + + Confirm Dismiss All + + src/app/components/manage/tasks/tasks.component.ts + 58 + + Confirm Dismiss All + + + tasks? + + src/app/components/manage/tasks/tasks.component.ts + 60 + + tasks? + + + 404 Not Found + + src/app/components/not-found/not-found.component.html + 7 + + 404 Not Found + + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Learn matching automatically + + + Any word + + src/app/data/matching-model.ts + 20 + + Any word + + + Any: Document contains any of these words (space separated) + + src/app/data/matching-model.ts + 21 + + Any: Document contains any of these words (space separated) + + + All words + + src/app/data/matching-model.ts + 25 + + All words + + + All: Document contains all of these words (space separated) + + src/app/data/matching-model.ts + 26 + + All: Document contains all of these words (space separated) + + + Exact match + + src/app/data/matching-model.ts + 30 + + Exact match + + + Exact: Document contains this string + + src/app/data/matching-model.ts + 31 + + Exact: Document contains this string + + + Regular expression + + src/app/data/matching-model.ts + 35 + + Regular expression + + + Regular expression: Document matches this regular expression + + src/app/data/matching-model.ts + 36 + + Regular expression: Document matches this regular expression + + + Fuzzy word + + src/app/data/matching-model.ts + 40 + + Fuzzy word + + + Fuzzy: Document contains a word similar to this word + + src/app/data/matching-model.ts + 41 + + Fuzzy: Document contains a word similar to this word + + + None: Disable matching + + src/app/data/matching-model.ts + 46 + + None: Disable matching + + + Warning: You have unsaved changes to your document(s). + + src/app/guards/dirty-doc.guard.ts + 17 + + Warning: You have unsaved changes to your document(s). + + + Unsaved Changes + + src/app/guards/dirty-form.guard.ts + 17 + + + src/app/guards/dirty-saved-view.guard.ts + 32 + + + src/app/services/open-documents.service.ts + 104 + + + src/app/services/open-documents.service.ts + 131 + + Unsaved Changes + + + You have unsaved changes. + + src/app/guards/dirty-form.guard.ts + 18 + + + src/app/services/open-documents.service.ts + 132 + + You have unsaved changes. + + + Are you sure you want to leave? + + src/app/guards/dirty-form.guard.ts + 19 + + Are you sure you want to leave? + + + Leave page + + src/app/guards/dirty-form.guard.ts + 21 + + Leave page + + + You have unsaved changes to the saved view + + src/app/guards/dirty-saved-view.guard.ts + 34 + + You have unsaved changes to the saved view + + + Are you sure you want to close this saved view? + + src/app/guards/dirty-saved-view.guard.ts + 38 + + Are you sure you want to close this saved view? + + + Save and close + + src/app/guards/dirty-saved-view.guard.ts + 42 + + Save and close + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + + + (no title) + + src/app/pipes/document-title.pipe.ts + 11 + + (no title) + + + Yes + + src/app/pipes/yes-no.pipe.ts + 8 + + Yes + + + No + + src/app/pipes/yes-no.pipe.ts + 8 + + No + + + Document already exists. + + src/app/services/consumer-status.service.ts + 15 + + Document already exists. + + + Document with ASN already exists. + + src/app/services/consumer-status.service.ts + 16 + + Document with ASN already exists. + + + File not found. + + src/app/services/consumer-status.service.ts + 17 + + File not found. + + + Pre-consume script does not exist. + + src/app/services/consumer-status.service.ts + 18 + + Pre-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Pre-consume script does not exist. + + + Error while executing pre-consume script. + + src/app/services/consumer-status.service.ts + 19 + + Pre-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Error while executing pre-consume script. + + + Post-consume script does not exist. + + src/app/services/consumer-status.service.ts + 20 + + Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Post-consume script does not exist. + + + Error while executing post-consume script. + + src/app/services/consumer-status.service.ts + 21 + + Post-Consume is a term that appears like that in the documentation as well and does not need a specific translation + Error while executing post-consume script. + + + Received new file. + + src/app/services/consumer-status.service.ts + 22 + + Received new file. + + + File type not supported. + + src/app/services/consumer-status.service.ts + 23 + + File type not supported. + + + Processing document... + + src/app/services/consumer-status.service.ts + 24 + + Processing document... + + + Generating thumbnail... + + src/app/services/consumer-status.service.ts + 25 + + Generating thumbnail... + + + Retrieving date from document... + + src/app/services/consumer-status.service.ts + 26 + + Retrieving date from document... + + + Saving document... + + src/app/services/consumer-status.service.ts + 27 + + Saving document... + + + Finished. + + src/app/services/consumer-status.service.ts + 28 + + Finished. + + + You have unsaved changes to the document + + src/app/services/open-documents.service.ts + 106 + + You have unsaved changes to the document + + + Are you sure you want to close this document? + + src/app/services/open-documents.service.ts + 110 + + Are you sure you want to close this document? + + + Close document + + src/app/services/open-documents.service.ts + 112 + + Close document + + + Are you sure you want to close all documents? + + src/app/services/open-documents.service.ts + 133 + + Are you sure you want to close all documents? + + + Close documents + + src/app/services/open-documents.service.ts + 135 + + Close documents + + + Modified + + src/app/services/rest/document.service.ts + 24 + + Modified + + + Search score + + src/app/services/rest/document.service.ts + 32 + + Score is a value returned by the full text search engine and specifies how well a result matches the given query + Search score + + + English (US) + + src/app/services/settings.service.ts + 159 + + English (US) + + + Arabic + + src/app/services/settings.service.ts + 165 + + Arabic + + + Belarusian + + src/app/services/settings.service.ts + 171 + + Belarusian + + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + + + Czech + + src/app/services/settings.service.ts + 183 + + Czech + + + Danish + + src/app/services/settings.service.ts + 189 + + Danish + + + German + + src/app/services/settings.service.ts + 195 + + German + + + English (GB) + + src/app/services/settings.service.ts + 201 + + English (GB) + + + Spanish + + src/app/services/settings.service.ts + 207 + + Spanish + + + French + + src/app/services/settings.service.ts + 213 + + French + + + Italian + + src/app/services/settings.service.ts + 219 + + Italian + + + Luxembourgish + + src/app/services/settings.service.ts + 225 + + Luxembourgish + + + Dutch + + src/app/services/settings.service.ts + 231 + + Dutch + + + Polish + + src/app/services/settings.service.ts + 237 + + Polish + + + Portuguese (Brazil) + + src/app/services/settings.service.ts + 243 + + Portuguese (Brazil) + + + Portuguese + + src/app/services/settings.service.ts + 249 + + Portuguese + + + Romanian + + src/app/services/settings.service.ts + 255 + + Romanian + + + Russian + + src/app/services/settings.service.ts + 261 + + Russian + + + Slovenian + + src/app/services/settings.service.ts + 267 + + Slovenian + + + Serbian + + src/app/services/settings.service.ts + 273 + + Serbian + + + Swedish + + src/app/services/settings.service.ts + 279 + + Swedish + + + Turkish + + src/app/services/settings.service.ts + 285 + + Turkish + + + Chinese Simplified + + src/app/services/settings.service.ts + 291 + + Chinese Simplified + + + ISO 8601 + + src/app/services/settings.service.ts + 308 + + ISO 8601 + + + Successfully completed one-time migratration of settings to the database! + + src/app/services/settings.service.ts + 419 + + Successfully completed one-time migratration of settings to the database! + + + Unable to migrate settings to the database, please try saving manually. + + src/app/services/settings.service.ts + 420 + + Unable to migrate settings to the database, please try saving manually. + + + Information + + src/app/services/toast.service.ts + 43 + + Information + + + Connecting... + + src/app/services/upload-documents.service.ts + 33 + + Connecting... + + + Uploading... + + src/app/services/upload-documents.service.ts + 45 + + Uploading... + + + Upload complete, waiting... + + src/app/services/upload-documents.service.ts + 48 + + Upload complete, waiting... + + + HTTP error: + + src/app/services/upload-documents.service.ts + 64 + + HTTP error: + + + + diff --git a/src-ui/src/locale/messages.it_IT.xlf b/src-ui/src/locale/messages.it_IT.xlf index 25f367ab6..3e41c6a94 100644 --- a/src-ui/src/locale/messages.it_IT.xlf +++ b/src-ui/src/locale/messages.it_IT.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Documento aggiunto @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Il documento è stato aggiunto a paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Apri documento @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Impossibile aggiungere : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nuovo documento trovato @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Paperless sta elaborando il documento . @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prec @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Fine @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 La dashboard può essere usata per mostrare le viste salvate, come una 'Inbox'. Queste impostazioni si trovano in Impostazioni > Viste salvate, dopo averne create alcune. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Trascina i documenti qui per iniziare a caricarli, oppure posizionali nella cartella di elaborazione. Puoi anche trascinare i documenti ovunque su tutte le altre pagine della web app. Una volta fatto, Paperless-ngx inizierà a formare i suoi algoritmi di machine learning. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 L'elenco dei documenti mostra tutti i tuoi documenti e consente di filtrarli e modificarli in blocco. Ci sono tre stili di visualizzazione diversi: elenco, carte piccole e carte grandi. Un elenco di documenti attualmente aperti per la modifica è mostrato nella barra laterale. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Gli strumenti di filtraggio ti consentono di trovare rapidamente documenti utilizzando vari termini di ricerca, date, tag, ecc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Qualsiasi combinazione di filtri può essere salvata come 'vista' che può essere visualizzata sulla dashboard e/o nella barra laterale. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tag, corrispondenti, tipi di documenti e percorsi di archiviazione possono essere gestiti utilizzando queste pagine. Possono anche essere creati dalla vista di modifica dei documenti. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Le Attività File mostrano i documenti che sono stati consumati, sono in attesa di esserlo, o possano aver portato a un fallimento durante l'Attività. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Controlla le impostazioni per svariate modifiche all'app web, per attivare o disattivare le impostazioni per le viste salvate o impostare il filtraggio delle email. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Grazie! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Ci sono <em>tonnellate</em> di caratteristiche e informazioni che non abbiamo coperto qui, ma questo dovrebbe essere abbastanza per cominciare. Consulta la documentazione o visita il progetto su GitHub per saperne di più o per segnalare problemi. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Infine, a nome di ogni collaboratore di questo progetto supportato dalla comunità, grazie per utilizzare Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Avvio caricamento... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Impostazioni @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Apri documenti @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Chiudi tutti @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Gestisci @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Corrispondenti @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipi di documento @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Percorsi di archiviazione @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Attività File @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentazione @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Suggerisci un'idea @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 è disponibile. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Clicca per visualizzare. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx può controllare automaticamente la presenza di aggiornamenti @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Come funziona? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Aggiornamento disponibile @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Si è verificato un errore durante il salvataggio delle impostazioni. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Si è verificato un errore durante il salvataggio delle impostazioni sugli aggiornamenti. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Conferma @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Salva @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Crea nuovo corrispondente @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Modifica corrispondente @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Crea nuovo tipo di documento @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Modifica tipo di documento @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Crea nuovo elemento @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Modifica elemento @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Non è possibile salvare l'elemento: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permessi + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Crea un nuovo gruppo utenti + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Modifica gruppo utenti + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Nome utente @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Set di Caratteri + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Caricamento in corso... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Nessuna crittografia @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Crea un nuovo account email @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Modifica account email + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Profilo @@ -1325,7 +1509,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 15 - Consumption scope + Ambito di applicazione See docs for .eml processing requirements @@ -1341,7 +1525,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 16 - Rule order + Ordine regola Paperless will only process mails that match all of the filters specified below. @@ -1359,11 +1543,19 @@ Filtra da + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtra per + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filtro oggetto @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filtro corpo messaggio @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filtro nome allegato @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Elabora esclusivamente i documenti che corrispondono completamente a questo nome. Puoi usare wildcard come *.pdf o *fattura*. Non fa differenza fra maiuscole e minuscole. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Azione @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 L'azione viene eseguita solo quando i documenti vengono elaborati dalle email. Le email senza allegati non vengolo toccate. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Azione parametro @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assegna tittolo da @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assegna tipo di documento @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assegna corrispondente da @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assegna corrispondente @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Errore @@ -1463,19 +1655,19 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 - Only process attachments + Elabora solo gli allegati Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,23 +1675,27 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 - Process message as .eml + Elabora il messaggio come .eml Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 - Process message as .eml and attachments separately + Elabora il messaggio come .eml e allegati separatamente Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Elimina @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Sposta nella cartella selezionata @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Segna come letto, non elaborare le email lette @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Contrassegna la email, non elaborare le email contrassegnate @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Etichetta la posta con il tag specificato, non processare le email etichettate @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Usa oggetto come titolo @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Usa il nome dell'allegato come titolo @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Non assegnare un corrispondente @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Usa indirizzo email @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Usa nome (o indirizzo email se non disponibile) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Usa il corrispondente selezionato qui sotto @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Crea nuova regola email @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Modifica regola email - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Percorso @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 ad es. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 o usa slash per aggiungere directory, ad es. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Crea un nuovo percorso di archiviazione @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Modifica percorso di archiviazione @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Colore @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Crea nuovo tag @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Modifica tag + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Nome + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Cognome + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Attivo + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superutente + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Concede tutti i permessi e può vedere gli oggetti) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Gruppi + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Crea nuovo account utente + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Modifica account utente + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Qualsiasi + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Applica @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Clicca di nuovo per escludere gli elementi. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Non assegnato @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Suggerimenti: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Modifica permessi + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Proprietario: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Mostra + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Utenti: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Gruppi: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Modifica + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Aggiungi elemento + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privato + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Aggiungi tag + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Imposta permessi + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Tipo + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Aggiungi + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Modifica + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Seleziona un elemento - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Caricamento in corso... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Ciao , benvenuto su Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Benvenuto su Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistiche - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documenti taggati in arrivo: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Documenti totali: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Elaborazione in corso: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Falliti: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Aggiunti: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Cercando documento con asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Inserisci commento - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Inserisci un commento. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Aggiungi commento - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Errore nel salvataggio del commento: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Errore nell'eliminazione del commento: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Scarica @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Ripeti OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Chiudi @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Percorso archiviazione @@ -2468,6 +2942,14 @@ Metadati del documento archiviato + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Anteprima + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Immettere Password - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Commenti + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Scarta @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Salva e vai al prossimo + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Errore nel recupero dei metadati + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Errore nel recupero dei suggerimenti + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Errore nel salvare il documento + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Conferma eliminazione @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Vuoi eliminare il documento ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 I file di questo documento saranno eliminati permanentemente. Questa operazione è irreversibile. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Elimina documento - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Errore nell'eliminazione del documento: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Ripeti la conferma OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Questa operazione effettuerà la rilettura OCR di questo documento. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Questa operazione non può essere annullata. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Procedi @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Errore nell'esecuzione dell'operazione: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtra corrispondenti @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtra tipi di documento @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtra percorsi di archiviazione @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,39 +3290,39 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 - Include: + Includere: Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 - Archived files + File archiviati Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 - Original files + File originali Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 - Use formatted filename + Usa nome file formattato Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Errore durante l'operazione di modifica in blocco: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" e "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' e "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Conferma assegnazione tag @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Questa operazione aggiungerà il tag "" a documento/i selezionato/i. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Questa operazione aggiungerà i tag a documento/i selezionato/i. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Questa operazione rimuoverà il tag "" da documento/i selezionato/i. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Questa operazione rimuoverà i tag da documento/i selezionato/i. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Questa operazione aggiungerà i tag e rimuoverà i tag a documento/i selezionato/i. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Conferma assegnazione corrispondente @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Questa operazione assegnerà il corrispondente "" a documento/i selezionato/i. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Questa operazione rimuoverà il corrispondente da documento/i selezionato/i. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Conferma assegnazione tipo di documento @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Questa operazione assegnerà il tipo di documento "" a documento/i selezionato/i. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Questa operazione eliminerà il tipo di documento da documento/i selezionato/i. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Conferma assegnazione percorso di archiviazione @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Questa operazione assegnerà il percorso di archiviazione "" a documento/i selezionato/i. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Questa operazione rimuoverà il percorso di archiviazione da documento/i selezionato/i. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Conferma eliminazione @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Questa operazione eliminerà definitivamente documento/i selezionato/i. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Elimina documento/i @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Questa operazione riesegue in modo permanente l'OCR per documento/i selezionato/i. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtra per corrispondente @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtra per tag - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Modifica + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Mostra + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtra per tipo di documento @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtra per percorso di archiviazione @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Creato il: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Aggiunto il: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modificato il: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Rilevanza: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Attiva/Disattiva filtro corrispondente @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Attiva/Disattiva filtro tipo documento @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Attiva/Disattiva filtro percorso di archiviazione @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Viste Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Salva "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Salva come... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selezionato di un documento} other {Selezionati di documenti}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Un documento} other { documenti}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrato) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Errore durante il caricamento dei documenti + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Modifica documento @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 La vista "" è stata salvata. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 La vista "" è stata creata. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Ripristina filtri @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Corrispondente: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Senza corrispondente @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Tipo: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Senza tipo di documento @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Senza alcun tag @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titolo: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titolo & contenuto @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Ricerca avanzata @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Più come @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 uguale a @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 è vuoto @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 non è vuoto @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 maggiore di @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 minore di @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Mostra nella barra laterale @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Mostra nella dashboard @@ -3470,11 +4060,63 @@ L'errore restituito era + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 corrispondente @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 corrispondenti @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Ultimo utilizzato @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Vuoi eliminare il corrispondente ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 tipo di documento @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 tipi di documento @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Vuoi eliminare il tipo di documento ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatico + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Niente + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 è stato creato con successo. - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Si è verificato un errore durante la creazione di : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 è stato aggiornato con successo. @@ -3686,15 +4352,15 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 - Si è verificato un errore durante il salvataggio di : . + Error occurred while saving : . Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Vuoi davvero eliminare "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 I documenti associati non verranno eliminati. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Errore durante l'eliminazione dell'elemento: @@ -3906,13 +4572,13 @@ Controllo aggiornamento - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Il controllo degli aggiornamenti funziona controllando l'ultima versione rilasciata tramite le API GitHub pubbliche for the pubbliche per determinare se sia disponibile una versione più recente. L'aggiornamento effettivo dell'app deve comunque essere eseguito manualmente. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Applica in chiusura - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Abilita i commenti + Enable notes Notifications @@ -4034,11 +4700,19 @@ Verranno interrotte tutte le notifiche nella dashboard riguardo lo stato dell'elaborazione dei documenti. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Appare in @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nessuna vista salvata. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 E-Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Account email @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Aggiungi Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Nessun account e-mail definito. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Regole email @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Aggiungi regola @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Nessuna regola email definita. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Utenti & gruppi + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Utenti + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Aggiungi utente + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Aggiungi gruppo + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 La vista "" è stata eliminata. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Impostazioni salvate @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Impostazioni salvate con successo. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Impostazioni salvate con successo. È necessario ricaricare per applicare alcune modifiche. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Ricarica ora @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Usa lingua di sistema @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Usa il formato data della lingua @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Errore durante il salvataggio delle impostazioni sul server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + La password è stata cambiata, sarai disconnesso momentaneamente. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Conferma eliminazione account utente + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Questa operazione eliminerà definitivamente l'account utente. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Utente eliminato + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Conferma eliminazione gruppo utenti + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Gruppo eliminato + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Account "" salvato. @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Errore durante il salvataggio dell'account:. @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Conferma eliminazione dell'account email @@ -4206,15 +5016,15 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 - This operation will permanently delete this mail account. + Questa operazione eliminerà definitivamente questo account email. Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Account email eliminato @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Errore durante l'eliminazione dell'account email: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Regola "" salvata. @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Errore durante il salvataggio della regola: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Conferma eliminazione della regola email @@ -4254,15 +5064,15 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 - This operation will permanently delete this mail rule. + Questa operazione eliminerà permanentemente questa regola di posta. Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Regola email eliminata @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Errore durante l'eliminazione della regola email: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 percorso di archiviazione @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 percorsi di archiviazione @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Vuoi eliminare il percorso di archiviazione ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tag @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Vuoi eliminare il tag ""? @@ -4330,16 +5140,6 @@ Azzera selezione - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Ignora @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Apri Documento @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Fallito  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Completato  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Avviato  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 In coda @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Ignora selezionati @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Ignora tutto @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Conferma Ignora Tutto @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 attività? @@ -4460,11 +5260,19 @@ 404 Non trovato + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Automatico: apprende l'assegnazione automaticamente + Any word src/app/data/matching-model.ts - 14 + 20 Qualsiasi parola @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Qualsiasi: il documento contiene una qualunque di queste parole (separate dallo spazio) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Tutte le parole @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Tutto: il documento contiene tutte queste parole (separate dallo spazio) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Corrispondenza esatta @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Puntuale: il documento contiene questa stringa @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Espressione regolare @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Espressione regolare: il documento corrisponde a questa espressione regolare @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Parola fuzzy @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: il documento contiene una parola simile a questa - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Automatico: apprende l'assegnazione automaticamente + Niente: disabilita la corrispondenza Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Modifiche non salvate @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Hai delle modifiche non salvate. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 Hai modifiche non salvate alla vista salvata @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Sei sicuro di voler chiudere questa vista salvata? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Salva e chiudi + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Non hai permessi per farlo + (no title) @@ -4666,7 +5482,7 @@ src/app/services/consumer-status.service.ts 16 - Document with ASN already exists. + Il documento con ASN esiste già. File not found. @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Hai modifiche non salvate nel documento @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Sei sicuro di voler chiudere questo documento? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Chiudi documento @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Sei sicuro di voler chiudere tutti i documenti? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Chiudi documenti @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Rilevanza ricerca @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Inglese (US) @@ -4837,23 +5653,31 @@ Arabic src/app/services/settings.service.ts - 151 + 165 - Arabic + Arabo Belarusian src/app/services/settings.service.ts - 157 + 171 Bielorusso + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Ceco @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danese @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Tedesco @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Inglese (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spagnolo @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francese @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiano @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Lussemburghese @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Olandese @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polacco @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portoghese (Brasile) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portoghese @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumeno @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russo @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Sloveno @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbo @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Svedese @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turco @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Cinese semplificato @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 La migrazione delle impostazioni al database è stata completata con successo! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Impossibile migrare le impostazioni nel database, prova a salvare manualmente. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informazione @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Connessione in corso... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Caricamento in corso... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Caricamento completato, in attesa... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Errore HTTP: diff --git a/src-ui/src/locale/messages.lb_LU.xlf b/src-ui/src/locale/messages.lb_LU.xlf index 97f329b7d..ddd4833aa 100644 --- a/src-ui/src/locale/messages.lb_LU.xlf +++ b/src-ui/src/locale/messages.lb_LU.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument dobäigesat @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument gouf a Paperless-ngx dobäigesat. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Dokument opmaachen @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Konnt de Fichier net dobäisetzen: @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Neit Dokument detektéiert @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument gëtt vu Paperless-ngx veraarbecht. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Merci! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Upload fänkt un... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Astellungen @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Oppen Dokumenter @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 All zoumaachen @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Verwalten @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korrespondenten @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Dokumententypen @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Späicherpfaden @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentatioun @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Eng Iddi virschloen @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 ass disponibel. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klicke fir unzeweisen. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Update disponibel @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bestätegen @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Späicheren @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Neie Korrespondent erstellen @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Korrespondent editéieren @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Neien Dokumententyp erstellen @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Dokumententyp änneren @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Neit Element erstellen @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Element beaarbechten @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Element konnt net gespäichert ginn: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Lueden... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Feeler @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Läschen @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Pfad @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 z. B. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Create new storage path @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Späicherpfad änneren @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Faarf @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Nei Etikett erstellen @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Etikett editéieren + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Applizéieren @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Klickt nach eng Kéier fir Elementer auszeschléissen. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Net zougewisen @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Virschléi: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Usiicht + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Editéieren + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Element dobäisetzen + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Etikett dobäisetzen + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ W. e. g. en Objet auswielen - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Lueden... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistiken - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Unzuel Dokumenter am Postagank: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Unzuel Dokumenter insgesamt: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Veraarbechten: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Feelgeschloen: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Dobäigesat: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Dokument mat ASN gëtt gesicht - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Kommentar antippen - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Tipp en Kommentar an. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Kommentar bäifügen - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Eroflueden @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Zoumaachen @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Späicherpfad @@ -2468,6 +2942,14 @@ Metadate vum Archiv-Dokument + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Passwuert aginn - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Kommentaren + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Verwerfen @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Späicheren a weider + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Läsche bestätegen @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Wëllt Dir d'Dokument "" wierklech läschen? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 D'Fichiere fir dëst Dokument gi permanent geläscht. Dës Operatioun kann net réckgängeg gemaach ginn. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Dokument läschen - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Feeler beim Läsche vum Dokument: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Dës Operatioun kann net réckgängeg gemaach ginn. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Weider @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Korrespondente filteren @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Dokumententype filteren @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" a(n) "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' a(n) "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Zouweisung vun der Etikett bestätegen @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Dës Operatioun setzt d'Etikett "" bei ausgewielt Dokument(er). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Dës Operatioun läscht d'Etikett "" bei ausgewielt Dokument(er). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 D'Zouweisung vum Korrespondent bestätegen @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Dës Operatioun weist de Korrespondent "" ausgewielt Dokument(er) zou. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Dës Operatioun läscht de Korrespondent bei ausgewielt Dokument(er). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Zouweisung vum Dokumententyp bestätegen @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Dës Operatioun weist den Dokumententyp "" ausgewielt Dokument(er) zou. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Dës Operatioun läscht den Dokumententyp bei ausgewielt Dokument(er). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Läsche bestätegen @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Dës Operatioun wäert ausgewielt Dokument(er) permanent läschen. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Dokument(er) läschen @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 No Korrespondent filteren @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 No Etikett filteren - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Editéieren + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Usiicht + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Erstallt: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Dobäigesat: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Verännert: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Relevanz: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Usiichten Save "" src/app/components/document-list/document-list.component.html - 75 + 76 "" späicheren @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Späicheren als... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 { vun 1 Dokument ausgewählt} other { vu(n) Dokumenter ausgewielt}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Een Dokument} other { Dokumenter}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (gefiltert) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Feeler beim Luede vun den Dokumenter + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Dokument editéieren @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Usiicht "" gouf erfollegräich gespäichert. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Vue "" gouf erfollegräich erstallt. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Filteren zrécksetzen @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Ouni Korrespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Ouni Dokumententyp @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Ouni Etikett @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titel: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titel an Inhalt @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Erweidert Sich @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Méi ähnleches @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 ass gläich @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 ass eidel @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 ass net eidel @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 ass méi grouss ewéi @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 ass méi kleng ewéi @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 An der Säiteleescht uweisen @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Op der Startsäit uweisen @@ -3470,11 +4060,63 @@ The error returned was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 Korrespondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 Korrespondenten @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Fir d'lescht benotzt @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Soll de Korrespondent "" wierklech geläscht ginn? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 Dokumententyp @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 Dokumententypen @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Soll den Dokumententyp "" wierklech geläscht ginn? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatesch + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Assoziéiert Dokumenter ginn net geläscht. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Aktualiséierungs Kontroll - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Späichere beim Zoumaachen - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Kommentaren erlaben + Enable notes Notifications @@ -4034,11 +4700,19 @@ Doduerch ginn all Messagen iwwer Dokumenteveraarbechtung op der Startsäit ënnerdréckt. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Erschéngt op @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Keng gespäichert Usiicht definéiert. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Gespäichert Usiicht "" geläscht. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Astellunge gespäichert @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Astellungen erfollegräich gespäichert. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Astellungen erfollegräich gespäichert. Nei lueden ass néideg fir verschidden Ännerungen ze applizéieren. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Elo nei lueden @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Systemsprooch benotzen @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Datumsformat vun der Sprooch vum Interface notzen @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 Späicherpfad @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 Späicherpfaden @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 Etikett @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 Etiketten @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Soll d'Etikett "" wierklech geläscht ginn? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Dokument opmaachen @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Net fonnt + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Zouweisung automatesch léieren + Any word src/app/data/matching-model.ts - 14 + 20 Iergendee Wuert @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Iergendee Wuert: Dokument enthält eent vun dëse Wierder (getrennt mat engem Espace) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 All d'Wierder @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Iergendee Wuert: Dokument enthält all dës Wierder (getrennt mat engem Espace) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exakten Treffer @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exakt: Dokument enthält dësen Text @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regulären Ausdrock @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regulären Ausdrock: D'Dokument passt zu dësem regulären Ausdrock @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Ongenaut Wuert @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Ongenau: Dokument enthält e Wuert dat ähnlech ass wéi dëst Wuert - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Zouweisung automatesch léieren + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Ongespäichert Ännerungen @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Dir hutt ongespäichert Ännerungen. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Späicheren an zoumaachen + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Et ginn ongespäichert Ännerungen um Dokument @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Sidd Dir sécher datt Dir dëst Dokument zoumaache wëllt? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Dokument zoumaachen @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Sidd Dir sécher datt Dir all Dokumenter zoumaache wëllt? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Dokument zoumaachen @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Pertinenz @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Englesch (USA) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusesch + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tschechesch @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Dänesch @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Däitsch @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Englesch (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spuenesch @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Franséisch @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italienesch @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Lëtzebuergesch @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Hollännesch @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polnesch @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugisesch (Brasilien) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugisesch @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumänesch @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russesch @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slowenesch @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbesch @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Schwedesch @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Tierkesch @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinesesch (Vereinfacht) @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informatioun @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Gëtt verbonnen... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Gëtt eropgelueden... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Fichier eropgelueden. Waarden... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP-Feeler: diff --git a/src-ui/src/locale/messages.nl_NL.xlf b/src-ui/src/locale/messages.nl_NL.xlf index 0636f6db9..72aee18ed 100644 --- a/src-ui/src/locale/messages.nl_NL.xlf +++ b/src-ui/src/locale/messages.nl_NL.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Document toegevoegd @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Document werd toegevoegd aan paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Open document @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Kon niet toevoegen : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nieuw document gedetecteerd @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Document wordt verwerkt door paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Vorige @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Einde @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Het dashboard kan worden gebruikt om opgeslagen weergaven te tonen, zoals een 'Inbox'. Deze instellingen zijn te vinden onder instellingen > opgeslagen weergaven zodra u er een hebt aangemaakt. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Documenten hier neerzetten om te beginnen met uploaden of plaats ze in de verwerkingsmap. Je kunt documenten ook overal naar toe slepen op alle andere pagina's van de web-app. Zodra je dat doet, zal Paperless-ngx de machine learning-algoritmen trainen. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 De documentenlijst toont al uw documenten en maakt zowel filteren als bulkbewerkingen mogelijk. Er zijn drie verschillende weergavestijlen: lijst, kleine kaarten en grote kaarten. In de zijbalk wordt een lijst weergegeven met documenten die momenteel zijn geopend voor bewerking. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Met de filtertools kunt u snel documenten vinden met behulp van verschillende zoekopdrachten, datums, labels, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Een combinatie van filters kan worden opgeslagen als een 'weergave' die vervolgens op het dashboard en/of de zijbalk kan worden getoond. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Labels, correspondenten, documenttypen en opslagpaden kunnen allemaal worden beheerd met behulp van deze pagina's. Ze kunnen ook worden aangemaakt vanuit de weergave voor documentbewerkingen. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Bestandstaken toont documenten die zijn verwerkt, wachten daarop, of zijn mislukt tijdens het proces. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Bekijk de instellingen voor verschillende aanpassingen aan de webapp, wijzig instellingen voor opgeslagen weergaven of stel e-mailcontrole in. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Bedankt! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Er zijn nog <em>veel</em> meer functies en informatie die we hier niet hebben behandeld, maar dit zou je op weg moeten helpen. Bekijk de documentatie of bezoek het project op GitHub voor meer informatie of om problemen te melden. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Ten slotte, namens elke bijdrager aan dit community ondersteund project, bedankt voor het gebruik van Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Upload starten... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Instellingen @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Open documenten @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Alles sluiten @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Beheren @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Correspondenten @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Documenttypen @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Opslagpaden @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Bestandstaken @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Handleiding @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Ideeënbus @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 is beschikbaar. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klik om te bekijken. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx kan automatisch controleren op updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Hoe werkt dit? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Update beschikbaar @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Er is een fout opgetreden bij het opslaan van de instellingen. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Er is een fout opgetreden tijdens het opslaan van de instellingen voor updatecontroles. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bevestig @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Opslaan @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Nieuwe correspondent maken @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Correspondent bewerken @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Nieuw documenttype maken @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Documenttype bewerken @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Maak nieuw item @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Item bewerken @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Kon het element niet opslaan: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Rechten + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Nieuwe gebruikersgroep maken + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Gebruikersgroep bewerken + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Gebruikersnaam @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Wachtwoord + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Karakterset + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Laden... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Geen versleuteling @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Nieuw e-mailaccount aanmaken @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 E-mailaccount bewerken + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter afzender + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filteren op + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter onderwerp @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter inhoud @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter bestandsnaam van bijlage @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Alleen documenten verwerken die volledig overeenkomen met deze bestandsnaam indien aangegeven. Je kunt jokertekens gebruiken, zoals *.pdf of *factuur*. Dit is niet hoofdlettergevoelig. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Actie @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Deze actie wordt alleen uitgevoerd wanneer documenten verwerkt worden uit de mail. Mails zonder bijlage worden genegeerd. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Actie parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Wijs titel toe van @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Wijs documenttype toe @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Wijs correspondent toe van @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Correspondent toewijzen @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Fout @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Alleen bijlagen verwerken @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Verwerk alle bestanden, inclusief 'inline' bijlagen @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Verwerk bericht als .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Bericht als .eml en bijlagen afzonderlijk verwerken @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Verwijderen @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Verplaatsen naar opgegeven map @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Markeer als gelezen, verwerk geen gelezen mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Markeer de mail, verwerk geen gemarkeerde mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Geef de mail een label, verwerk geen gelabelde mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Gebruik onderwerp als titel @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Gebruik bestandsnaam van bijlagen als titel @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Geen correspondent toewijzen @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Gebruik het e-mailadres @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Gebruik de naam (of het e-mailadres indien niet beschikbaar) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Gebruik hieronder geselecteerde correspondent @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Maak een nieuwe e-mailregel @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Bewerk e-mailregel - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Houd er rekening mee dat het bewerken van een pad geen wijzigingen toepast op opgeslagen bestanden totdat u het hulpprogramma 'document_renamer' hebt uitgevoerd. Raadpleeg de documentatie. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Pad @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 bijv. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 of gebruik slashes om mappen toe te voegen, bijv. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Bekijk de <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentatie</a> voor een volledige lijst. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Nieuw opslagpad maken @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Opslagpad bewerken @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Kleur @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Nieuw label aanmaken @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Etiket bewerken + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + E-mailadres + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Voornaam + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Achternaam + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Actief + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Beheerder + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Verleent alle rechten en kan objecten weergeven) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groepen + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Nieuw gebruikersaccount maken + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Bewerk gebruikersaccount + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Alle + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Insluiten + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Uitsluiten + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Toepassen @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Klik nogmaals om items uit te sluiten. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Zonder toewijzing @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Suggesties: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Wijzig rechten + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Eigenaar: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objecten zonder eigenaar kunnen door alle gebruikers worden weergegeven en bewerkt + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Bekijken + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Gebruikers: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groepen: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Bewerk + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Bewerkingsrechten verlenen ook weergaverechten + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Item toevoegen + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privé + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Label toevoegen + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Rechten toepassen + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Houd er rekening mee dat rechten die hier worden toegepast alle bestaande rechten overschrijven + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Toevoegen + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Wijzigen + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Selecteer een object - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Laden... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hallo , welkom bij Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welkom bij Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistieken - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documenten in "Postvak in": - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Totaal aantal documenten: + Ga naar postvak + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documenten in postvak + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Ga naar documenten + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Totaal aantal documenten + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Totaal aantal tekens + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Overige Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Bezig met verwerken: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Mislukt: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Toegevoegd: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Document zoeken met asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Opmerking toevoegen - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Voer een opmerking in. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Opmerking toevoegen - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Fout bij opslaan opmerking: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Fout bij verwijderen opmerking: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Downloaden @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 OCR opnieuw uitvoeren @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Sluiten @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Opslagpad @@ -2468,6 +2942,14 @@ Gearchiveerde document metadata + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Voorbeeld + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Wachtwoord invoeren - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Opmerkingen + Notities Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Negeren @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Opslaan & volgende + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Fout bij ophalen metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Fout bij ophalen suggesties + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Fout bij opslaan document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Bevestig het verwijderen @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Wilt u het document echt verwijderen ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 De bestanden voor dit document worden definitief verwijderd. Deze bewerking kan niet ongedaan worden gemaakt. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Verwijder document - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Fout bij het verwijderen van het document: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Bevestig OCR opnieuw uitvoeren @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Met deze bewerking wordt OCR permanent opnieuw uitgevoerd voor dit document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Deze actie kan niet ongedaan worden gemaakt. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Doorgaan @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Opnieuw uitvoeren van OCR-bewerking begint op de achtergrond. Sluit en heropen of herlaad dit document nadat de bewerking is voltooid om nieuwe inhoud te zien. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Fout tijdens uitvoeren bewerking: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Correspondenten filteren @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Documenttypes filteren @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Opslagpaden filteren @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Inclusief: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Gearchiveerde bestanden @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Originele bestanden @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Gebruik geformatteerde bestandsnaam @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Fout bij het uitvoeren van een batch operatie: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" en "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' en "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Bevestig toewijzen van labels @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Het label "" zal aan geselecteerd(e) document(en) worden toegewezen. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Deze bewerking zal de labels toevoegen aan geselecteerd(e) document(en). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Het label "" zal verwijderd worden van geselecteerd(e) document(en). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Deze bewerking zal de labels verwijderen van geselecteerd(e) document(en). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Deze bewerking zal de labels toevoegen en verwijdert de labels van geselecteerd(e) document(en). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Bevestig toewijzen van correspondent @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 De correspondent "" zal aan geselecteerd(e) document(en) worden toegewezen. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 De correspondent zal verwijderd worden van geselecteerd(e) document(en). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Bevestig toewijzen van documenttype @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Het documenttype "" zal aan geselecteerd(e) document(en) worden toegewezen. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Het documenttype zal verwijderd worden van geselecteerd(e) document(en). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Bevestig toewijzing opslagpad @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Het opslagpad zal toegewezen worden aan geselecteerd(e) document(en). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Het opslagpad zal verwijderd worden van geselecteerd(e) document(en). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Bevestig verwijderen @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 geselecteerd(e) document(en) zullen permanent worden verwijderd. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Verwijder document(en) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Met deze bewerking wordt OCR permanent opnieuw uitgevoerd voor geselecteerd(e) document(en). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Op correspondent filteren @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Op label filteren - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Bewerk + Bekijk notities - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Bekijken + notities Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Documenttypes filteren @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter op opslagpad @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Aangemaakt: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Toegevoegd: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Gewijzigd: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Score: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 In-/uitschakelen correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 In-/uitschakelen documenttype filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 In-/uitschakelen opslagpad filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Weergaven Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Opslaan "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Opslaan als... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 { van één document geselecteerd} other { van documenten geselecteerd}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Eén document} other { documenten}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (gefilterd) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Fout bij het laden van documenten + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notities + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Document bewerken @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 View "" met succes opgeslagen. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 View "" met succes gemaakt. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Filters terug zetten @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Zonder correspondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Zonder documenttype @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Label: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Zonder label @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titel: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titel en inhoud @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Geavanceerd zoeken @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Meer zoals @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 gelijk aan @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is leeg @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 is niet leeg @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 groter dan @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 kleiner dan @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Toon in de zijbalk @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Toon op het dashboard @@ -3470,11 +4060,63 @@ De geretourneerde fout was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Notitie invoeren + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Voer een notitie in. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Notitie toevoegen + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Verwijder notitie + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Fout bij opslaan notitie: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Fout bij verwijderen notitie: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondenten @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Laatst gebruikt @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Bent u zeker dat u correspondent "" wilt verwijderen? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 documenttype @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 documenttypen @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Wilt u het documenttype echt verwijderen ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatisch + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Geen + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Fout opgetreden tijdens aanmaken : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Succesvol aangemaakt. - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Fout opgetreden tijdens het aanmaken van : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 succesvol bijgewerkt. @@ -3686,15 +4352,15 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 - Fout opgetreden tijdens het opslaan van : . + Error occurred while saving : . Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Weet u zeker dat u de wilt verwijderen? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Gekoppelde documenten zullen niet worden verwijderd. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Fout tijdens verwijderen element: @@ -3906,13 +4572,13 @@ Updatecontrole - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Updatecontrole werkt door het aanroepen van de publieke Github API voor de laatste release om te bepalen of er een nieuwe versie beschikbaar is. De daadwerkelijke update van de app moet nog steeds handmatig worden uitgevoerd. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Toepassen bij het sluiten - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Opmerkingen inschakelen + Notities inschakelen Notifications @@ -4034,11 +4700,19 @@ Dit verbergt alle statusberichten op het dashboard die met het verwerken van documenten te maken hebben. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Toon waarschuwing bij het sluiten van weergaven met niet-opgeslagen wijzigingen + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Komt voor bij @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Geen opgeslagen views gedefinieerd. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 E-mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 E-mailaccounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Account toevoegen @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Geen e-mailaccounts gedefinieerd. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 E-mailregels @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Regel toevoegen @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Geen e-mailregels gedefinieerd. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Gebruikers & groepen + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Gebruikers + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Gebruiker toevoegen + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Groep toevoegen + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Opgeslagen view "" verwijderd. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Instellingen opgeslagen @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Instellingen zijn succesvol opgeslagen. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Instellingen zijn succesvol opgeslagen. Herladen is vereist om sommige wijzigingen toe te passen. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Nu herladen @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Gebruik de systeemtaal @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Datumopmaak van weergavetaal gebruiken @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Fout bij het opslaan van instellingen op server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Wachtwoord is gewijzigd, je wordt zo uitgelogd. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Gebruiker "" opgeslagen. + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Fout bij opslaan gebruiker: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Bevestig verwijderen gebruikersaccount + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Deze actie zal dit gebruikersaccount permanent verwijderen. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Gebruiker verwijderd + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Fout bij verwijderen gebruiker: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Groep "" opgeslagen. + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Fout bij opslaan groep: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Bevestig verwijderen gebruikersgroep + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Deze actie zal deze gebruikersgroep permanent verwijderen. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Groep verwijderd + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Fout bij verwijderen groep: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Account "" opgeslagen. @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Fout bij opslaan account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Bevestig e-mailaccount verwijderen @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 Met deze bewerking wordt dit e-mailaccount permanent verwijderd. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 E-mailaccount verwijderd @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Fout bij verwijderen van e-mailaccount: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Regel "" opgeslagen. @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Fout bij opslaan regel: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Bevestig e-mailregel verwijderen @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 Met deze bewerking wordt dit e-mailregel permanent verwijderd. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 E-mailregel verwijderd @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Fout bij verwijderen e-mailregel: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 opslagpad @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 opslagpaden @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Wil je dit opslagpad echt verwijderen ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 label @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 labels @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Wil je dit label echt verwijderen ""? @@ -4330,16 +5140,6 @@ Selectie wissen - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Verbergen @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Document openen @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Mislukt  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Voltooid  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Gestart  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Wachtrij  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Verberg geselecteerde @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Verberg alle @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Bevestig alles verbergen @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 taken? @@ -4460,11 +5260,19 @@ 404 Niet Gevonden + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Automatisch overeenkomsten aanleren + Any word src/app/data/matching-model.ts - 14 + 20 Eender welk woord @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Een of meer: Documenten die een of meer van deze woorden bevatten (gescheiden door spaties) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Alle woorden @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Alle: Documenten die elk van deze woorden bevatten (gescheiden door spaties) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exacte overeenkomst @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Document bevat deze tekenreeks @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Reguliere expressie @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Reguliere expressie: Document voldoet aan deze reguliere expressie @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Gelijkaardig woord @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Gelijkaardig: Document bevat een woord dat lijkt op dit woord - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Automatisch overeenkomsten aanleren + Geen: overeenkomsten uitschakelen Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Niet-opgeslagen wijzigingen @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 U heeft niet-opgeslagen wijzigingen. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 U heeft niet-opgeslagen wijzigingen in de opgeslagen weergave @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Weet u zeker dat u deze opgeslagen weergave wilt sluiten? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Opslaan en sluiten + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Je hebt geen rechten om dat te doen + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Je hebt niet opgeslagen wijzigingen in het document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Weet u zeker dat u dit document wilt sluiten? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Sluit document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Weet u zeker dat u alle documenten wilt sluiten? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Sluit documenten @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Zoekscore @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Engels (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabisch @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Wit-Russisch + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tsjechisch @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Deens @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Duits @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Engels (Brits) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spaans @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Frans @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiaans @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburgs @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Nederlands @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Pools @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugees (Brazilië) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugees @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Roemeens @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russisch @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Sloveens @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Servisch @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Zweeds @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turks @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinees (vereenvoudigd) @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Eenmalige migratie van instellingen naar de database is succesvol voltooid! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Kan instellingen niet migreren naar de database, probeer handmatig op te slaan. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informatie @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Bezig met verbinden... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Bezig met uploaden... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Upload voltooid, wachten op verwerking... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP fout: diff --git a/src-ui/src/locale/messages.no_NO.xlf b/src-ui/src/locale/messages.no_NO.xlf index 19b1a0ea6..4778b76b5 100644 --- a/src-ui/src/locale/messages.no_NO.xlf +++ b/src-ui/src/locale/messages.no_NO.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument lagt til @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokumentet ble lagt til papirløst. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Åpne dokumentet @@ -318,15 +326,15 @@ Could not add : src/app/app.component.ts - 97 + 116 - Could not add : + Kunne ikke legge til : New document detected src/app/app.component.ts - 112 + 131 Nytt dokument oppdaget @@ -334,23 +342,23 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 - Document is being processed by paperless. + Dokument blir behandlet av paperless. Prev src/app/app.component.ts - 119 + 138 - Prev + Forrige Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,39 +370,39 @@ End src/app/app.component.ts - 121 + 140 - End + Slutt The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 - The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + Dashbordet kan bli brukt til å vise lagrede visninger, som for eksampel en "Inboks". Disse innstillingene finnes under Innstillinger > Lagrede visninger når du har opprettet dem. Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 - Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + Dra-og-slipp dokumenter hit for å laste dem opp, eller plasser dem i opplastningsmappen. Du kan også dra-og-slippe dokumenter hvor som helst på alle andre sider av nettsiden. Da vil Paperless-ngx starte å trene opp maskinlæringsalgoritmene sine. The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 - The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + Dokumentlisten viser alle dokumentene dine og tillater filtrering i tillegg til masseredigering. Det finnes tre forskjellige visningsstiler: liste, små kort og store kort. En liste over dokumenter som er åpnet for redigering vises i sidepanelet. The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,15 +442,15 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Tusen takk! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Starter opplasting... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Innstillinger @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Åpne dokumenter @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Lukk alle @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Behandle @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korrespondenter @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Dokumenttyper @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Lagringssti @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentasjon @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Foreslå en idé @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 er tilgjengelig. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klikk for å se. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Oppdatering er tilgjengelig @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Det oppstod en feil under lagring av innstillingene. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bekreft @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Lagre @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Opprett ny korrespondent @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Rediger korrespondent @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Opprett ny dokumenttype @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Rediger dokumenttype @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 + Opprett produkt @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Rediger produkt @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Kunne ikke lagre elementet: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Tillatelser + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Opprett en ny brukergruppe + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Rediger brukergruppe + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + IMAP tjener IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + IMAP port IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + IMAP Sikkerhet Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Brukernavn Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Passord + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Tegnsett + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html 18 - Character Set + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Laster... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Ingen kryptering SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Opprett ny e-postkonto Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Rediger e-postkonto + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server Account @@ -1283,9 +1467,9 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 - Account + Konto Folder @@ -1293,7 +1477,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Folder + Mappe Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. @@ -1317,7 +1501,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 14 - Attachment type + Vedlegg type Consumption scope @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Feil @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Slett @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,23 +1799,23 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 - Use subject as title + Bruk emne som tittel Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 - Use attachment filename as title + Bruk vedleggets filnavn som tittel Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,15 +1823,15 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 - Use mail address + Bruk e-postadresse Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Fil sti @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 f.eks. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 eller bruk skråstreker for å legge til kataloger, f.eks. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Lag ny lagringssti @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Redigere lagringssti @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Farger @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Opprett ny tagg @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Rediger Tag + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Enhver + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Bruk @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Klikk igjen for å ekskludere elementer. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Ikke tildelt @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Forslag: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vis + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Rediger + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Legg til element + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Legg til tag + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Velg et objekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Laster... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistikk - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenter i innboks: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Totalt antall dokumenter: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Processing: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Mislyktes: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Lagt til: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Searching document with asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Last ned @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Lukk @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Lagringssti @@ -2468,6 +2942,14 @@ Arkivert dokumentmetadata + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Skriv inn passord - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Forkast @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Lagre & Avslutt + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Bekreft sletting @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Ønsker du virkelig å slette dokumentet ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Filene til dokumentet vil bli slettet permanent. Denne operasjonen kan ikke angres. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Slett dokument - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Feil ved sletting av dokument: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Gjenta OCR bekreft @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Denne operasjonen vil permanent gjenta OCR for dette dokumentet. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Denne handlingen kan ikke angres. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Fortsett @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrere korrespondenter @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrer dokumenttyper @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtrere lagringsbaner @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" and "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' and "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Bekreft tildeling av tagger @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 This operation will add the tag "" to selected document(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Denne handlingen vil fjerne taggen "" fra valgte dokument(er). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Bekreft korrespondent tildeling @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 This operation will assign the correspondent "" to selected document(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 This operation will remove the correspondent from selected document(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Bekreft tildeling av dokumenttype @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 This operation will assign the document type "" to selected document(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 This operation will remove the document type from selected document(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Bekreft tildeling av lagringssti @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Sletting bekreftet @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 This operation will permanently delete selected document(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Slett dokument(er) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrer etter korrespondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrer etter tagger - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Rediger + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vis + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtrer etter dokumenttype @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Scoring: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Veksle tilsvarende filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Veksle filter for dokumenttype @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Veksle lagringsplass-filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Visninger Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Lagre "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Lagre som... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {One document} other { documents}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrert) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Feil ved lasting av dokumenter + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Rediger dokument @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 View "" saved successfully. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 View "" created successfully. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Tilbakestille filtre @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Uten korrespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Uten dokumenttype @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Uten noe tag @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Title: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Title & content @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Avansert søk @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Mer lik @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 er lik @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 er tom @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 er ikke tom @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 større enn @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 mindre enn @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Vis i sidestolpen @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Vis på dashbordet @@ -3470,11 +4060,63 @@ Felmelding som oppsto var + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 korrespondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 korrespondenter @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Sist brukt @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Do you really want to delete the correspondent ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 dokument type @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 dokumenttyper @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Ønsker du virkelig å slette dokumenttype "? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatisk + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Ønsker du virkelig å slette dokumentet "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Tilknyttede dokumenter vil ikke bli slettet. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Feil under sletting av element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Bruk ved lukking - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ This will suppress all messages about document processing status on the dashboard. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Vises på @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Ingen lagrede visninger definert. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Saved view "" deleted. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Innstillingene ble lagret. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Oppfrisk nå @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Bruk systemspråk @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Bruk datoformat for visningsspråk @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 lagringssti @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 lagringsstier @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Ønsker du virkelig å slette lagringsstien ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tagg @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tagger @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Ønsker du virkelig å slette taggen ""? @@ -4330,16 +5140,6 @@ Nullstill valg - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Avvis @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Avvis valgte @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Avvis alle @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Bekreft avvisning av alle @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 oppgaver? @@ -4460,11 +5260,19 @@ 404 ikke funnet + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Learn matching automatically + Any word src/app/data/matching-model.ts - 14 + 20 Hvilket som helst ord @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Any: Document contains any of these words (space separated) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Alle ord @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 All: Document contains all of these words (space separated) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Nøyaktig samsvar @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Document contains this string @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regular expression @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regular expression: Document matches this regular expression @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy word @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Document contains a word similar to this word - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Learn matching automatically + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Ulagrede endringer @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Du har ulagrede endringer. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Er du sikker på at du vil lukke dette dokumentet? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Lukk dokument @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Er du sikker på at du vil lukke alle dokumenter? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Lukk dokument @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Søk etter score @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 English (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Czech @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danish @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 German @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 English (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spanish @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 French @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italian @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxembourgish @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Dutch @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polish @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portuguese (Brazil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portuguese @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romanian @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russian @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Swedish @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Kinesisk forenklet @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Engangs migrering av innstillinger ble fullført til databasen! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Kunne ikke overføre innstillinger til databasen, prøv å lagre manuelt. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informasjon @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Kobler til... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Laster opp... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Opplasting fullført, venter... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP error: diff --git a/src-ui/src/locale/messages.pl_PL.xlf b/src-ui/src/locale/messages.pl_PL.xlf index b947104ff..fde1402e6 100644 --- a/src-ui/src/locale/messages.pl_PL.xlf +++ b/src-ui/src/locale/messages.pl_PL.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument dodano @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument został dodany do paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Otwórz dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Nie można dodać : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Wykryto nowy dokument @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument jest przetwarzany przez paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,15 +418,15 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 - Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + Tagi, korespondenci, typy dokumentów i ścieżki przechowywania danych mogą być zarządzane za pomocą tych stron. Mogą być również tworzone z widoku edycji dokumentu. File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,23 +434,23 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 - Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + Sprawdź ustawienia dla różnych ulepszeń aplikacji webowej, zmień ustawienia dla zapisanych widoków lub skonfiguruj sprawdzanie skrzynki pocztowej. Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Dziękujemy! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Rozpoczęcie wysyłania... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Ustawienia @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Otwarte dokumenty @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Zamknij wszystkie @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Zarządzaj @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Nadawcy @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Typy dokumentów @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Ścieżki składowania @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentacja @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Zaproponuj pomysł @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 jest dostępny. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Kliknij, aby zobaczyć. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,15 +787,15 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 - How does this work? + Jak to działa? Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Aktualizacja jest dostępna @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Wystąpił błąd podczas zapisywania ustawień. @@ -803,9 +815,9 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 - An error occurred while saving update checking settings. + Wystąpił błąd podczas zapisywania ustawień sprawdzania aktualizacyj. Clear @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Potwierdź @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Zapisz @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Dodaj nowego nadawcę @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Edytuj nadawcę @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Utwórz nowy dokument @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Edytuj typ dokumentu @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Utwórz nowy element @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Edytuj element @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Nie można zapisać elementu: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Uprawnienia + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Utwórz nową grupę użytkowników + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edytuj grupę użytkowników + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + Serwer IMAP IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + Port IMAP IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + Bezpieczeństwo IMAP Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Nazwa użytkownika Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Hasło + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 19 + + Zestaw znaków + + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html 18 - Character Set + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Wczytywanie... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Brak szyfrowania SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Utwórz nowe konto pocztowe Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Edytuj konto pocztowe + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server Account @@ -1283,9 +1467,9 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 - Account + Konto Folder @@ -1293,7 +1477,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Folder + Katalog Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. @@ -1317,7 +1501,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 14 - Attachment type + Typ załącznika Consumption scope @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Błąd @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Usuń @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Ścieżka @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 np. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 lub użyj ukośników, aby dodać katalogi, np. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Utwórz nową ścieżkę przechowywania @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Edytuj ścieżkę przechowywania @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Kolor @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Utwórz tag @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Edytuj tag + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Zastosuj @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Kliknij ponownie, aby wykluczyć elementy. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nieprzypisane @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugestie: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Pokaż + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Edytuj + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Dodaj element + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Dodaj tag + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Wybierz obiekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Wczytywanie... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statystyki - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenty w skrzynce odbiorczej: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Łącznie dokumentów: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Przetwarzane: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Błąd: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Dodano: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Wyszukiwanie dokumentu z ASN - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Pobierz @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Zamknij @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Ścieżki składowania @@ -2468,6 +2942,14 @@ Metadane zarchiwizowanego dokumentu + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Wprowadź hasło - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Zaniechaj @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Zapisz & następny + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Potwierdź usunięcie @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Czy na pewno chcesz usunąć dokument""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Pliki tego dokumentu zostaną trwale usunięte. Tej operacji nie można cofnąć. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Usuń dokument - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Błąd podczas usuwania dokumentu: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Ta czynność nie może być cofnięta. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtruj nadawców @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtruj typy dokumentów @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtruj ścieżkę przechowywania @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Błąd podczas wykonywania operacji zbiorczej: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" i "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' i "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Potwierdź przypisanie tagów @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Ta operacja doda tag "" do wybranych dokumentów. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Ta operacja doda tagi to wybranych dokumentów. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Ta operacja usunie tag "" z wybranych dokumentów. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Ta operacja usunie tagi from wybranych dokumentu(ów). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Ta operacja doda tagi and remove the tags w wybranych dokumentach. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Potwierdź przypisanie nadawcy @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Ta operacja przypisze nadawcę "" do wybranych dokumentów. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Ta operacja usunie nadawcę z wybranych dokumentów. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Potwierdź przypisanie typu dokumentu @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Ta operacja przypisze typ dokumentu "" do zaznaczonych dokumentów. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Ta operacja usunie typ dokumentu z wybranych dokumentów. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Potwierdź przypisanie ścieżki przechowywania @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Ta operacja przypisze ścieżkę przechowywania "" do wybranych dokumentów. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Ta operacja usunie ścieżkę przechowywania z wybranych dokumentów. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Potwierdź Usunięcie @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Ta operacja trwale usunie zaznaczonych dokumentów. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Usuń dokument(y) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtruj według nadawcy @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtruj po tagach - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Edytuj + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Pokaż + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtruj według typu dokumentu @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtruj według ścieżki przechowywania @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Utworzono: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Dodano: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Zmieniono: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Wynik: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Widoki Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Zapisz "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Zapisz jako... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, one {} few {Wybrano z dokumentów} many {Wybrano z dokumentów} =1 {Wybrano z jednego dokumentu} other {Wybrano z dokumentów}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, one {} few { dokumenty} many { dokumentów} =1 {Jeden dokument} other { dokumenty}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 Filtrowane @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Błąd podczas ładowania dokumentów + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ Numer archiwum + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edytuj dokument @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Widok "" został zapisany. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Widok "" został utworzony pomyślnie. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Zresetuj filtry @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Odpowiedni: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Bez nadawcy @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Typ: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Bez typu dokumentu @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Bez żadnego tagu @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Tytuł: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 Numer archiwum: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Tytuł & treść @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Wyszukiwanie zaawansowane @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Podobne do @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 równa się @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 jest pusty @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 nie jest pusty @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 większy niż @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 mniejsze niż @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Pokaż w panelu bocznym @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Pokaż na pulpicie @@ -3470,11 +4060,63 @@ Zwrócony błąd to + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 korespondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 korespondenci @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Ostatnio używane @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Czy na pewno chcesz usunąć nadawcę "? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 typ dokumentu @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 typy dokumentów @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Czy na pewno chcesz usunąć typ dokumentu ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatyczny + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Czy na pewno chcesz usunąć tag ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Powiązane dokumenty nie będą usunięte. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Błąd podczas usuwania elementu: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Zamknięcie zapisuje zmiany - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Wyłącz pokazywanie wszystkich wiadomości o statusie przetwarzania dokumentów na pulpicie. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Wyświetlanie @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nie zdefiniowano zapisanych widoków. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Zapisany widok "" został usunięty. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Ustawienia zostały zapisane @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Ustawienia zapisane pomyślnie. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Ustawienia zostały pomyślnie zapisane. Przeładowanie jest wymagane do zastosowania zmian. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Załaduj ponownie @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Użyj języka systemowego @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Użyj formatu daty według wyświetlanego języka @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Błąd podczas zapisywania ustawień na serwerze: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 ścieżki składowania @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 ścieżki składowania @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Czy na pewno chcesz usunąć ścieżkę do przechowywania? ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tagi @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Czy na pewno chcesz usunąć tag "? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Nie znaleziono + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: ucz się dopasowywać automatycznie + Any word src/app/data/matching-model.ts - 14 + 20 Dowolne słowo @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Dowolny: Dokument zawiera dowolne z tych słów (oddzielone spacją) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Wszystkie słowa @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Wszystkie: Dokument zawiera wszystkie poniższe słowa (oddzielone spacją) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Dokładne dopasowanie @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Dokładne: Dokument zawiera ten ciąg znaków @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Wyrażenie regularne @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Wyrażenie regularne: Dokument pasuje do tego wyrażenia regularnego @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Dopasowanie rozmyte @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Rozmyte: Dokument zawiera słowo podobne do tego słowa - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: ucz się dopasowywać automatycznie + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Niezapisane zmiany @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Masz niezapisane zmiany. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Masz niezapisane zmiany w dokumencie @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Czy na pewno chcesz zamknąć ten dokument? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Zamknij dokument @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Czy na pewno chcesz zamknąć wszystkie dokumenty? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Zamknij dokumenty @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Dopasowanie @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Angielski (USA) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Białoruski + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Czeski @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Duński @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Niemiecki @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Angielski (Wielka Brytania) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Hiszpański @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francuski @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Włoski @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luksemburski @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holenderski @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polski @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugalski (Brazylia) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugalski @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumuński @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Rosyjski @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Słoweński @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbski @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Szwedzki @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turecki @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chiński uproszczony @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Pomyślnie zakończona jednorazowa migracja ustawień do bazy danych! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Nie można przenieść ustawień do bazy danych, spróbuj zapisać ręcznie. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informacje @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Łączenie... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Wysyłanie... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Przesyłanie zakończone, oczekuje... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Błąd HTTP: diff --git a/src-ui/src/locale/messages.pt_BR.xlf b/src-ui/src/locale/messages.pt_BR.xlf index 6794c9e3b..ed3ad32e5 100644 --- a/src-ui/src/locale/messages.pt_BR.xlf +++ b/src-ui/src/locale/messages.pt_BR.xlf @@ -8,7 +8,7 @@ node_modules/src/ngb-config.ts 13 - Close + Fechar HH @@ -16,7 +16,7 @@ node_modules/src/ngb-config.ts 13 - HH + HH Close @@ -24,7 +24,7 @@ node_modules/src/ngb-config.ts 13 - Close + Fechar «« @@ -44,7 +44,7 @@ node_modules/src/ngb-config.ts 13 - Select month + Selecione o mês Previous month @@ -56,7 +56,7 @@ node_modules/src/ngb-config.ts 13 - Previous month + Mês anterior @@ -82,7 +82,7 @@ node_modules/src/ngb-config.ts 13 - Hours + Horas « @@ -98,7 +98,7 @@ node_modules/src/ngb-config.ts 13 - Previous + Anterior MM @@ -106,7 +106,7 @@ node_modules/src/ngb-config.ts 13 - MM + MM » @@ -126,7 +126,7 @@ node_modules/src/ngb-config.ts 13 - Select year + Selecione o ano Next month @@ -138,7 +138,7 @@ node_modules/src/ngb-config.ts 13 - Next month + Próximo mês Next @@ -146,7 +146,7 @@ node_modules/src/ngb-config.ts 13 - Next + Próximo Minutes @@ -154,7 +154,7 @@ node_modules/src/ngb-config.ts 13 - Minutes + Minutos »» @@ -178,7 +178,7 @@ node_modules/src/ngb-config.ts 13 - First + Primeiro Previous @@ -186,7 +186,7 @@ node_modules/src/ngb-config.ts 13 - Previous + Anterior Decrement hours @@ -202,7 +202,7 @@ node_modules/src/ngb-config.ts 13 - Next + Próximo Increment minutes @@ -218,7 +218,7 @@ node_modules/src/ngb-config.ts 13 - Last + Último Decrement minutes @@ -234,7 +234,7 @@ node_modules/src/ngb-config.ts 13 - SS + SS Seconds @@ -242,7 +242,7 @@ node_modules/src/ngb-config.ts 13 - Seconds + Segundos Increment seconds @@ -284,13 +284,17 @@ src/app/app.component.html 7 - Drop files to begin upload + Solte os arquivos aqui para começar o envio Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Documento adicionado @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Documento foi adicionado ao paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Abrir documento @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Não foi possível adicionar : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Novo documento detectado @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Documento está sendo processado pelo paperless. @@ -342,27 +350,27 @@ Prev src/app/app.component.ts - 119 + 138 - Prev + Anterior Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html 55 - Next + Próximo End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,15 +442,15 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Obrigado! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,9 +466,9 @@ Initiating upload... src/app/app.component.ts - 256 + 288 - Initiating upload... + Iniciando o upload... Paperless-ngx @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Configurações @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Abrir documentos @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Fechar todos @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Gerenciar @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Correspondentes @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipos de documento @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Storage paths @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentação @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Sugerir uma idéia @@ -751,59 +763,59 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 - is available. + está disponível. Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 - Click to view. + Clique para visualizar. Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 - Paperless-ngx can automatically check for updates + Paperless-ngx pode verificar atualizações automaticamente How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 - How does this work? + Como é que isso funciona? Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 - Update available + Atualização disponível An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 - An error occurred while saving settings. + Ocorreu um erro ao salvar as configurações. An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Confirmar @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Salvar @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Criar novo correspondente @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Editar correspondente @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Criar novo tipo de documento @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Editar tipo de documento @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Criar novo item @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Editar item @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Não podemos salvar elemento: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissões + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Criar novo grupo de usuários + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Editar grupo de usuário + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + Servidor IMAP IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + Porta IMAP IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + Segurança IMAP Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Usuário Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Senha + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Carregando... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Sem criptografia SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Criar nova conta de e-mail Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Editar conta de e-mail + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server Account @@ -1283,9 +1467,9 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 - Account + Conta Folder @@ -1293,7 +1477,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Folder + Pasta Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. @@ -1309,7 +1493,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 13 - Maximum age (days) + Idade máxima (dias) Attachment type @@ -1317,7 +1501,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 14 - Attachment type + Tipo de anexo Consumption scope @@ -1333,7 +1517,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 15 - See docs for .eml processing requirements + Consulte a documentação para requisitos de processamento .eml Rule order @@ -1341,7 +1525,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 16 - Rule order + Ordem da regra Paperless will only process mails that match all of the filters specified below. @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,15 +1587,15 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 - Action + Ação Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,43 +1611,43 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 - Assign title from + Atribuir título de Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 - Assign document type + Atribuir tipo de documento Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 - Assign correspondent from + Atribuir correspondente de Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 - Assign correspondent + Atribuir correspondente Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Erro @@ -1463,43 +1655,47 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 - Only process attachments + Processar somente anexos Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 - Process all files, including 'inline' attachments + Processar todos os arquivos, incluindo anexos 'inline' Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 - Process message as .eml + Processar mensagem como .eml Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 - Process message as .eml and attachments separately + Processar mensagem como .eml e anexos separadamente Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Excluir @@ -1563,15 +1767,15 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 - Move to specified folder + Mover para a pasta especificada Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,99 +1799,91 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 - Use subject as title + Usar assunto como título Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 - Use attachment filename as title + Usar nome do arquivo anexo como título Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 - Do not assign a correspondent + Não atribuir um correspondente Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 - Use mail address + Usar endereço de e-mail Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 - Use name (or mail address if not available) + Usar nome (ou endereço de e-mail se não disponível) Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 - Use correspondent selected below + Usar correspondente selecionado abaixo Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 - Create new mail rule + Criar nova regra de e-mail Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 - Edit mail rule - - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. + Editar regra de e-mail Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 - Path + Caminho e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 - e.g. + ex. or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,17 +1899,17 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 - Create new storage path + Criar novo caminho de armazenamento Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 - Edit storage path + Editar caminho de armazenamento Color @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Cor @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Criar nova etiqueta @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Editar etiqueta + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + E-mail + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Primeiro nome + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Sobrenome + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Ativo + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Super usuário + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Grupos + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Criar uma nova conta de usuário + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Editar conta de usuário + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Aplicar @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Clique novamente para excluir itens. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Não atribuído @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugestões: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Editar Permissões + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Proprietário: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Ver + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Usuários: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Grupos: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Editar + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + As permissões de edição também concedem permissões de visualização + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Adicionar Item + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Adicionar etiqueta + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Definir Permissões + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Observe que as permissões aqui irão substituir quaisquer permissões existentes + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Tipo + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Adicionar + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Alterar + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Por favor selecione um objeto - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Carregando... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,9 +2395,9 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 - Welcome to Paperless-ngx + Bem-vindo ao Paperless-ngx Show all @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Estatísticas - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documentos na caixa de entrada: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Total de documentos: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Processando: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Falha: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Adicionado: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2086,7 +2600,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 3 - Paperless-ngx is running! + Paperless-ngx está em execução! You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. @@ -2094,7 +2608,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 4 - You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + Você está pronto para começar a enviar documentos! Explore os vários recursos deste aplicativo web por conta própria, ou inicie um tour rápido usando o botão abaixo. More detail on how to use and configure Paperless-ngx is always available in the documentation. @@ -2102,7 +2616,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 5 - More detail on how to use and configure Paperless-ngx is always available in the documentation. + Mais detalhes sobre como usar e configurar Paperless-ngx estão sempre disponíveis na documentação. Thanks for being a part of the Paperless-ngx community! @@ -2110,7 +2624,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 8 - Thanks for being a part of the Paperless-ngx community! + Obrigado por fazer parte da comunidade Paperless-ngx! Start the tour @@ -2118,7 +2632,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 9 - Start the tour + Iniciar o tour Searching document with asn @@ -2128,46 +2642,6 @@ Procurando documento com asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Baixar @@ -2224,9 +2698,9 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 - Redo OCR + Refazer OCR More like this @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Fechar @@ -2258,7 +2732,7 @@ src/app/components/document-detail/document-detail.component.html 50 - Previous + Anterior Details @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,17 +2814,17 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 - Storage path + Caminho de armazenamento Default @@ -2358,7 +2832,7 @@ src/app/components/document-detail/document-detail.component.html 84 - Default + Padrão Content @@ -2410,7 +2884,7 @@ src/app/components/document-detail/document-detail.component.html 118 - Original filename + Nome do arquivo original Original MD5 checksum @@ -2468,6 +2942,14 @@ Metadados do documento arquivado + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Pré-visualizar + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 - Enter Password + Digite a senha - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Descartar @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Salvar & próximo + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Erro ao recuperar metadados + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Erro ao recuperar sugestões + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Erro ao salvar documento + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirmar exclusão @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Você realmente deseja excluir o documento ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Os arquivos desse documento serão excluídos permanentemente. Essa operação não pode ser revertida. @@ -2540,59 +3066,67 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Excluir documento - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Erro ao excluir documento: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 - Redo OCR confirm + Refazer OCR confirmar This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 - This operation will permanently redo OCR for this document. + Esta operação irá refazer o OCR permanentemente para este documento. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Essa operação não pode ser revertida. @@ -2600,27 +3134,35 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 - Proceed + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 + + Prosseguir Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrar correspondentes @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrar tipos de documento @@ -2688,19 +3230,19 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 - Filter storage paths + Filtrar caminhos de armazenamento Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,15 +3290,15 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 - Include: + Incluir: Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,23 +3306,23 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 - Original files + Arquivos originais Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 - Use formatted filename + Usar o nome do arquivo formatado Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" e "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' e "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirmar atribuição de etiqueta @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Essa operação irá adicionar a etiqueta "" em documento(s) selecionado(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Essa operação irá remover a etiqueta "" de documento(s) selecionado(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirmar atribuição de correspondente @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Essa operação irá atribuir o correspondente "" para documento(s) selecionado(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Essa operação irá remover o correspondente de documento(s) selecionado(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirmar atribuição de tipo de documento @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Essa operação irá atribuir o tipo de documento "" para documento(s) selecionado(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Essa operação irá remover o tipo de documento de documento(s) selecionado(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Confirmar exlcusão @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Essa operação irá excluir permanentemente documento(s) selecionado(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Apagar documento(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrar por correspondente @@ -2978,103 +3528,59 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrar por etiqueta - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Editar + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Ver + Notes Filter by document type - - src/app/components/document-list/document-card-large/document-card-large.component.html - 69 - - - src/app/components/document-list/document-list.component.html - 187 - - Filter by document type - - - Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html 76 src/app/components/document-list/document-list.component.html - 192 + 212 - Filter by storage path + Filtrar por tipo de documento + + + Filter by storage path + + src/app/components/document-list/document-card-large/document-card-large.component.html + 83 + + + src/app/components/document-list/document-list.component.html + 217 + + Filtrar por caminho de armazenamento Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Nota: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Visualizações Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Salvar "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Salvar como... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selecionado de um documento} other {Selecionado of documentos}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Um documento} other { documentos}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrado) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 - Error while loading documents + Erro ao carregar os documentos + + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ NSA + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,15 +3856,15 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 - Edit document + Editar documento View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Visualização "" salva com sucesso. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Visualização "" criada com sucesso. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Limpar filtros @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Sem correspondente @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Sem tipo de documento @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Sem etiquetas @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Título: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 NSA: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Título & conteúdo @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Pesquisa avançada @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Mais parecido @@ -3386,41 +3976,41 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 - equals + igual a is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 - is empty + está vazio is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 - is not empty + não está vazio greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 - greater than + maior que less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 - less than + menor que Save current view @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Mostrar na navegação lateral @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Exibir no painel de controle @@ -3468,37 +4058,89 @@ src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html 13 - The error returned was + O erro retornado foi + + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 - correspondent + correspondente correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 - correspondents + correspondentes Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 - Last used + Última utilização Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Você realmente deseja excluir o correspondente ""? @@ -3506,23 +4148,23 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 - document type + tipo de documento document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 - document types + tipos de documento Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Você realmente deseja excluir o tipo de documento ""? @@ -3624,7 +4266,7 @@ src/app/components/manage/management-list/management-list.component.html 44 - Filter Documents + Filtrar Documentos {VAR_PLURAL, plural, =1 {One } other { total }} @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automático + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Nenhum + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Documentos associados não serão excluidos. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3720,7 +4386,7 @@ src/app/components/manage/settings/settings.component.html 2 - Start tour + Iniciar o tour Open Django Admin @@ -3736,7 +4402,7 @@ src/app/components/manage/settings/settings.component.html 15 - General + Geral Appearance @@ -3840,7 +4506,7 @@ src/app/components/manage/settings/settings.component.html 99 - Sidebar + Barra lateral Use 'slim' sidebar (icons only) @@ -3888,7 +4554,7 @@ src/app/components/manage/settings/settings.component.html 121 - Theme Color + Cor do tema Reset @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3928,7 +4594,7 @@ src/app/components/manage/settings/settings.component.html 146 - Enable update checking + Habilitar verificação de atualizações Note that for users of third-party containers e.g. linuxserver.io this notification may be 'ahead' of the current third-party release. @@ -3970,13 +4636,13 @@ Aplicar ao fechar - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Aparece em @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nenhuma visualização definida. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,63 +4736,95 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 - Mail accounts + Contas de e-mail Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 - Add Account + Adicionar Conta Server src/app/components/manage/settings/settings.component.html - 249 + 258 - Server + Servidor No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 - No mail accounts defined. + Nenhuma conta de e-mail definida. Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 - Mail rules + Regras de e-mail Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 - Add Rule + Adicionar Regra No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 - No mail rules defined. + Nenhuma regra de e-mail definida. + + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Usuários + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Adicionar Usuário + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Adicionar Grupo Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Visualização "" excluída. @@ -4126,39 +4832,39 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 - Settings saved + Configurações salvas Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 - Settings were saved successfully. + As configurações foram salvas com sucesso. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 - Settings were saved successfully. Reload is required to apply some changes. + As configurações foram salvas com sucesso. Recarregar é necessário para aplicar algumas alterações. Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 - Reload now + Recarregar agora Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Usar linguagem do sistema @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Usar formato de data da linguagem de exibição @@ -4174,23 +4880,127 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Erro ao salvar usuário: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirmar exclusão de conta de usuário + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Esta operação excluirá permanentemente esta conta de usuário. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Usuário excluído + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Erro ao excluir usuário: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Erro ao salvar grupo: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirmar exclusão de grupo de usuário + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Esta operação excluirá este grupo de usuários permanentemente. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Grupo excluído + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 - Saved account "". + Conta salva "". Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,47 +5008,47 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 - Confirm delete mail account + Confirmar exclusão da conta de e-mail This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 - This operation will permanently delete this mail account. + Esta operação excluirá permanentemente esta conta de e-mail. Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 - Deleted mail account + Conta de e-mail excluída Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 - Error deleting mail account: . + Erro ao excluir conta de e-mail: . Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 - Saved rule "". + Regra salva "". Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,55 +5064,55 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 - This operation will permanently delete this mail rule. + Esta operação excluirá permanentemente esta regra de e-mail. Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 - Deleted mail rule + Regra de e-mail excluída Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 - Error deleting mail rule: . + Erro ao excluir regra de e-mail: . storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 - storage path + caminho de armazenamento storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 - storage paths + caminhos de armazenamento Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 - Do you really want to delete the storage path ""? + Você realmente deseja excluir o caminho de armazenamento ""? tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Você realmente deseja excluir a etiqueta ""? @@ -4328,17 +5138,7 @@ src/app/components/manage/tasks/tasks.component.html 6 - Clear selection - - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - + Limpar seleção Refresh @@ -4346,7 +5146,7 @@ src/app/components/manage/tasks/tasks.component.html 20 - Refresh + Atualizar Results @@ -4354,7 +5154,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Resultados click for full output @@ -4362,7 +5162,7 @@ src/app/components/manage/tasks/tasks.component.html 66 - click for full output + clique para obter a saída completa Dismiss @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,15 +5180,15 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 - Open Document + Abrir Documento Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Não Encontrado + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Aprender detecção automaticamente + Any word src/app/data/matching-model.ts - 14 + 20 Qualquer palavra @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Qualquer: Documento contém qualquer uma dessas palavras (separadas por espaço) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Todas as palavras @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Todas: Documento contém todas essas palavras (separadas por espaço) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Detecção exata @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exata: Documento contém essa palavra @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Expressão regular @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Expressão regular: Documento condiz com essa expressão regular @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Palavra difusa @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Documento contém uma palavra similar à essa. - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Aprender detecção automaticamente + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4554,7 +5362,7 @@ src/app/guards/dirty-doc.guard.ts 17 - Warning: You have unsaved changes to your document(s). + Aviso: Você tem alterações não salvas em seu(s) documento(s). Unsaved Changes @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Alterações não salvas @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Você tem alterações não salvas. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,9 +5432,17 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 - Save and close + Salvar e Fechar + + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Você não tem permissão para fazer isso (no title) @@ -4772,15 +5588,15 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 - You have unsaved changes to the document + Você tem alterações não salvas no documento Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Tem certeza de que deseja fechar este documento? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Fechar documento @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Tem certeza de que deseja fechar todos os documentos? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Fechar documentos @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Pontuação da pesquisa @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Inglês (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Tcheco @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Dinamarquês @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Alemão @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Inglês (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Espanhol @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francês @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiano @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburguês @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holandês @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polonês @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Português (Brasil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Português @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romeno @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russo @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Sueco @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,15 +5821,15 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 - Chinese Simplified + Chinês Simplificado ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,23 +5837,23 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 - Successfully completed one-time migratration of settings to the database! + A migração de configurações para o banco de dados foi concluída com sucesso! Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 - Unable to migrate settings to the database, please try saving manually. + Não foi possível migrar as configurações para o banco de dados, por favor tente salvar manualmente. Information src/app/services/toast.service.ts - 36 + 43 Informação @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Conectando... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Enviando... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Envio concluído, esperando... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Erro HTTP: diff --git a/src-ui/src/locale/messages.pt_PT.xlf b/src-ui/src/locale/messages.pt_PT.xlf index 8235d43a1..2cf5d35f2 100644 --- a/src-ui/src/locale/messages.pt_PT.xlf +++ b/src-ui/src/locale/messages.pt_PT.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Documento adicionado @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Documento foi adicionado ao paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Abrir documento @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Não foi possível adicionar : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Novo documento detetado @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Documento está a ser processado pelo paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Obrigado! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 A iniciar o carregamento... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Configurações @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Abrir documentos @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Fechar todos @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Gerir @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Correspondentes @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipos de documento @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Storage paths @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentação @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 Github @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Sugerir uma ideia @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 está disponível. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Clique para ver. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Como é que isto funciona? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Atualização disponível @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Confirmar @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Guardar @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Criar novo correspondente @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Editar correspondente @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Criar novo tipo de documento @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Editar tipo de documento @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Criar novo item @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Editar item @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Não foi possível guardar elemento: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + A carregar... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Erro @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Apagar @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Path @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 e.g. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Create new storage path @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Edit storage path @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Cor @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Criar uma nova etiqueta @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Editar etiqueta + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Aplicar @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Clique novamente para excluir itens. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Não atribuído @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugestões: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Ver + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Editar + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Adicionar item + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Adicionar etiqueta + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Por favor selecione um objeto - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - A carregar... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Olá , bem-vindo ao Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Bem-vindo ao Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Estatísticas - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documentos na caixa de entrada: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Total de documentos: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 A processar: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Falharam: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Adicionado: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ A pesquisar documento com nsa - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Descarregar @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Fechar @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Metadados do documento arquivado + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Introduzir Palavra-Passe - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Descartar @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Guardar & próximo + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirmar eliminação @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Tem a certeza que quer apagar o documento ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Os ficheiros deste documento serão excluídos permanentemente. Esta operação não pode ser revertida. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Apagar documento - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Erro ao apagar documento: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Esta operação não pode ser revertida. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrar correspondentes @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrar tipos de documentos @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Erro na execução da operação em massa: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" e "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' e "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirmar atribuição de etiquetas @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Esta operação irá adicionar a etiqueta "" ao(s) documento(s) selecionado(s). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Esta operação irá adicionar as etiquetas ao(s) documento(s) selecionado(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Esta operação irá remover a etiqueta "" do(s) documento(s) selecionado(s). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Esta operação irá remover as etiquetas do(s) documento(s) selecionado(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Esta operação irá adicionar as etiquetas e remover as etiquetas no(s) documento(s) selecionado(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirmar atribuição de correspondente @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Esta operação irá atribuir o correspondente ao(s) documento(s) selecionado(s). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Esta operação irá remover o correspondente do(s) documento(s) selecionado(s). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirmar atribuição de tipo de documentos @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 A operação irá atribuir o tipo de documento "" ao(s) documento(s) selecionado(s). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Esta operação irá remover o tipo de documento do(s) documento(s) selecionado(s). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Confirmar eliminação @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Esta operação irá apagar permanentemente o(s) documento(s) selecionado(s). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Apagar documento(s) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrar por correspondente @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrar por etiqueta - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Editar + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Ver + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Pontuação: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Visualizações Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Guardar "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Guardar como... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, one {} =1 {Selecionado de um documento} other {Selecionados de documentos}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, one {} =1 {Um documento} other { documentos}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrado) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Erro ao carregar documentos + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ NSA + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Visualização "" guardado com sucesso. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Visualização "" criada com sucesso. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Limpar filtros @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondente: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Sem correspondente @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Tipo: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Sem tipo de documento @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Etiqueta: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Sem etiquetas @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Título: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 NSA: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Título & conteúdo @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Pesquisa avançada @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Semelhantes a @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 é igual a @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 está vazio @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 não está vazio @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 é maior que @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 é menor que @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Mostrar na barra lateral @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Exibir no dashboard @@ -3470,11 +4060,63 @@ O erro devolvido foi + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondente @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondentes @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Última utilização @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Tem a certeza que quer eliminar a correspondência ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 tipo de documento @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 tipos de documento @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Tem a certeza que quer apagar o tipo de documento ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automático + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Tem a certeza que pretende apagar ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Documentos associados não serão apagados. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Erro ao eliminar elemento: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Aplicar ao fechar - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Aparece em @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nenhuma vista gravada definida. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Visualização "" apagada. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Configurações guardadas @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 As configurações foram guardadas com sucesso. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Usar linguagem do sistema @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Usar formato de data da linguagem de exibição @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Erro ao armazenar configurações no servidor: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 etiqueta @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 etiquetas @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Tem a certeza que quer apagar a etiqueta ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Não encontrado + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Aprender correspondência automaticamente + Any word src/app/data/matching-model.ts - 14 + 20 Qualquer palavra @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Qualquer: Documento contém qualquer uma destas palavras (separadas por espaço) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Todas as palavras @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Todas: Documento contém todas estas palavras (separadas por espaço) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Detecção exata @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exata: Documento contém esta palavra @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Expressão regular @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Expressão regular: Documento condiz com esta expressão regular @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Palavra difusa @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Documento contém uma palavra similar à esta - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Aprender correspondência automaticamente + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Alterações não guardadas @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Tem alterações não guardadas. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Guardar e fechar + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Existem alterações não guardadas neste documento @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Tem a certeza de que deseja fechar este documento? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Fechar documento @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Tem a certeza de que pretende fechar todos os documentos? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Fechar documentos @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Pesquisar pontuação @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Inglês (US) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Bielorrusso + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Checo @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Dinamarquês @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Alemão @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Inglês (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Espanhol @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francês @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiano @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburguês @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holandês @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polaco @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Português (Brasil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Português @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romeno @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Russo @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Esloveno @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Sérvio @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Sueco @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turco @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinês Simplificado @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informação @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 A ligar... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 A carregar... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Carregamento concluído, à espera... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Erro HTTP: diff --git a/src-ui/src/locale/messages.ro_RO.xlf b/src-ui/src/locale/messages.ro_RO.xlf index bba86aa32..bd46fff14 100644 --- a/src-ui/src/locale/messages.ro_RO.xlf +++ b/src-ui/src/locale/messages.ro_RO.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Document adăugat @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Documentul a fost adăugat. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Deschide document @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Nu s-a putut adăuga : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Document nou detectat @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Documentul este în procesare. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Initiating upload... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Setări @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Deschide documente @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Închide tot @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Administrează @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Corespondenți @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipuri de documente @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Storage paths @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Documentație @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Sugestii @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 is available. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Click to view. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Update available @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Confirmă @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Salvează @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Creare corespondent nou @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Modifică un corespondent @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Crează un nou tip de document @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Modifică un tip de document @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Crează articol nou @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Modifică articol @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Nu s-a putut salva elementul: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Se încarcă... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Eroare @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Șterge @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Path @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 e.g. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Create new storage path @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Edit storage path @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Culoare @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Crează o etichetă nouă @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Modifică o etichetă + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Aplică @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Click din nou pentru a exclude elemente. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nealocate @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugestii: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vizualizare + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Editează + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Adaugă element + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Adaugă etichetă + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Selectați un obiect - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Se încarcă... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistici - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Documente in inbox: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Total documente: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 În procesare: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Eșuate: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Adăugate: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Se caută documentul cu asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Descarcă @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Închide @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Metadatele documentului arhivat + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Enter Password - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Renunță @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Salvează și continuă + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Confirmă ștergerea @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Sunteţi sigur că doriţi să ştergeţi documentul ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Fișierele pentru acest document vor fi șterse permanent. Operațiunea este ireversibila. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Șterge document - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Eroare la ștergerea documentului: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Această operațiune este ireversibilă. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrează corespondenți @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrează tipuri de documente @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" și "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' și "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Confirmați atribuirea etichetelor @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Va fi adăugată eticheta "" la document(e) selectat(e). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Va fi eliminată eticheta "" din document(e) selectat(e). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Confirmați atribuirea corespondentului @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Va fi adăugat corespondentul "" la document(e) selectat(e). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Va fi eliminat corespondentul din document(e) selectat(e). @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Confirmați atribuirea tipului de document @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Va fi atribuit tipul "" pentru document(e) selectat(e). @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Va fi eliminat tipul pentru document(e) selectat(e). @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Confirmați stergerea @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 document(e) selectat(e) vor fi șterse permanent. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Șterge document(e) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrează dupa corespondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrează dupa etichetă - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Editează + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vizualizare + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Scor: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Vizualizări Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Salvează "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Salvează ca... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Am selectat din 1 document} other {Am selectat din documente}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Un document} other { documente}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrat) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ Aviz prealabil de expediție + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Vizualizarea "" a fost salvată. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Vizualizarea "" a fost creată. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Resetare filtre @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Fără corespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Fară tip @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Fară etichete @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titlu: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 Aviz prealabil de expediție: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titlu si conținut @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Căutare avansată @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Asemănătoare @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 equals @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is empty @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 is not empty @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 greater than @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 less than @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Afișează in bara laterala @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Afișează pe tabloul de bord @@ -3470,11 +4060,63 @@ The error returned was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondents @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Last used @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Sunteți sigur că doriți să ștergeți corespondentul ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 document type @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 document types @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Sunteți sigur că doriți să ștergeți tipul de document ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automat + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Documentele asociate nu vor fi șterse. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Aplică la ieșire - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Această setare va opri mesajele despre procesarea documentelor pe tabloul de bord. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Apare pe @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nu sunt definite vizualizări. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Vizualizarea "" a fost ștearsă. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Utilizați limba sistemului @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Folosiți formatul datei corespunzător limbii de afișare @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 tags @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Sunteți sigur că doriți să ștergeți documentul ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Pagina nu a fost gasită + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Învață potrivirea automat + Any word src/app/data/matching-model.ts - 14 + 20 Oricare cuvânt @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Oricare: Documentul conține oricare dintre aceste cuvinte (separate prin spațiu) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Toate cuvintele @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Toate: Documentul conține toate aceste cuvinte (separate prin spațiu) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Potrivire exacta @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Documentul conține acest șir de caractere @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Expresie regulată @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Expresie regulată: Documentul se potrivește cu această expresie regulată @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Cuvânt neclar @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Neclar: Documentul conține un cuvânt similar cu acesta - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Învață potrivirea automat + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Modificări nesalvate @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Aveți modificări nesalvate. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Sigur doriți să închideți acest document? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Închide document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Sigur doriți să închideți toate documentele? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Închide documentele @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Scor de căutare @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Engleză (Americană) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusian + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Cehă @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Daneză @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Germană @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Engleză (Britanică) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spaniolă @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Franceză @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italiană @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxemburgheză @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Olandeză @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Poloneză @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugheză (Brazilia) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugheză @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Română @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Rusă @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenian @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Serbian @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Suedeză @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turkish @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Chinese Simplified @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informații @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Conectare... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Încarcare... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Încarcare completa, în așteptare... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Eroare HTTP: diff --git a/src-ui/src/locale/messages.ru_RU.xlf b/src-ui/src/locale/messages.ru_RU.xlf index c771f28c4..afe7443a9 100644 --- a/src-ui/src/locale/messages.ru_RU.xlf +++ b/src-ui/src/locale/messages.ru_RU.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Документ добавлен @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Документ был добавлен в paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Открыть документ @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Невозможно добавить : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Обнаружен новый документ @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Документ обрабатывается paperless @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Предыдущий @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Конец @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Панель инструментов может быть использована для отображения сохраненных представлений, таких как «Входящие». Это можно настроить в разделе Настройки > Представления после того, как вы создадите их. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Перетащите сюда документы, чтобы начать загрузку, или поместите их в папку потребления. Вы также можете перетаскивать документы в любое место на других страницах приложения. Как только вы это сделаете, Paperless-ngx начнет тренировать свои алгоритмы машинного обучения. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 Список документов отображает все ваши документы и позволяет фильтровать их, а также производить массовое редактирование. Есть три различных стиля просмотра: список, маленькие карты и большие карты. Список открытых для редактирования документов показан в боковой панели. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Инструменты фильтрации позволяют быстро находить документы, используя различные поисковые запросы, даты, теги и прочее. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Любая комбинация фильтров может быть сохранена как «представление», которое затем может быть отображено на панели инструментов и/или в боковой панели. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Теги, корреспонденты, типы документов и пути хранения можно редактировать с помощью этих страниц. Они также могут быть созданы из страницы редактирования документа. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Файловые задачи показывают документы, которые были импортированы, ожидают или были импортированы с ошибкой. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Просматривайте различные настройки приложения, настраивайте представления или электронную почту. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Спасибо! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Есть <em>множество</em> других функций и возможностей, которые мы не рассмотрели, но этого должно быть достаточно для начала. Посмотрите документацию или посетите проект на GitHub, чтобы узнать больше или сообщить о проблемах. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Наконец, от имени каждого участника этого поддерживаемого сообществом проекта, благодарим вас за использование Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Начинается загрузка... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Настройки @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Открыть документы @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Закрыть всё @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Управлять @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Корреспонденты @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Типы документов @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Пути хранения @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Файловые задачи @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Документация @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Предложить идею @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 доступно. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Нажмите для просмотра. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx может автоматически проверять наличие обновлений @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Как это работает? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Доступно обновление @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Произошла ошибка при сохранении настроек. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Произошла ошибка при сохранении настроек проверки обновлений. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Подтвердить @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Сохранить @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Создать нового корреспондента @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Редактировать корреспондента @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Создать новый тип документа @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Редактировать тип документа @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Создать новый объект @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Редактировать объект @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Не могу сохранить элемент: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Права доступа + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Создать новую группу пользователей + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Редактировать группу пользователей + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Имя пользователя @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Пароль + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Кодировка + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Загрузка... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Без шифрования @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Создать почтовую учётную запись @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Изменить почтовую учётную запись + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Учётная запись @@ -1359,11 +1543,19 @@ Фильтр по отправителю + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Отфильтровать по + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Фильтр по теме @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Фильтр по тексту сообщения @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Фильтр по имени вложения @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Обрабатывать только документы, которые полностью совпадают с именем файла (если оно указано). Маски, например *.pdf или *счет*, разрешены. Не учитывает регистр. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Действие @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Действие выполняется только тогда, когда документы импортированы из письма. Письма без вложений остаются полностью нетронутыми. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Параметр действия @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Присвоить заголовок из @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Присвоить тип документа @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Присвоить корреспондента из @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Присвоить корреспондента @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Ошибка @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Обрабатывать только вложения @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Обрабатывать все файлы, включая «встроенные» вложения @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Обрабатывать сообщение как .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Обрабатывать сообщение как .eml и вложения отдельно @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Удалить @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Переместить в указанную папку @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Пометить как прочитанное, не обрабатывать прочитанные письма @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Отметить письмо, не обрабатывать отмеченные письма @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Отметить письмо указанным тегом, не обрабатывать письма с тегами @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Использовать тему как заголовок @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Использовать имя вложенного файла как заголовок @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Не назначать корреспондента @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Использовать почтовый адрес @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Использовать имя (или почтовый адрес, если недоступно) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Использовать корреспондента, выбранного ниже @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Создать новое почтовое правило @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Редактировать почтовое правило - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Обратите внимание, что редактирование пути не применяет изменения к хранимым файлам, пока вы не запустите утилиту 'document_renamer'. Обратитесь к документации. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Путь @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 напр. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 или используйте слэши для добавления каталогов, например. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Обратитесь к <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">документации</a> за полным списком. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Создать новый путь хранения @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Редактировать путь хранения @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Цвет @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Создать новый тег @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Редактировать тег + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Электронная почта + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Имя + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Фамилия + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Активный + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Суперпользователь + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Даёт все разрешения и может просматривать объекты) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Группы + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Создать новую учетную запись пользователя + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Редактировать учетную запись пользователя + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Любой + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Включить + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Исключить + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Подтвердить @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Нажмите еще раз, чтобы исключить элементы. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Не назначено @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Рекомендации: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Редактировать права доступа + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Владелец: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Объекты без владельца могут просматриваться и редактироваться всеми пользователями + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Представление + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Пользователи: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Группы: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Редактировать + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Право на редактирование также дает право на просмотр + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Добавить элемент + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Личный + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Добавить тег + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Установить разрешения + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Обратите внимание, что права доступа, заданные здесь, заменяют все существующие права доступа + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Тип + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Добавить + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Изменить + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Пожалуйста, выберите объект - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Загрузка... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Здравствуйте, , добро пожаловать в Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Добро пожаловать в Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Статистика - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Документов во входящих: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Всего документов: + Перейти во Входящие + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Документы в папке входящих сообщений + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Перейти к документам + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Всего документов + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Всего символов + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Прочее Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Обрабатываются: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Ошибка: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Добавлено: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Поиск документа с asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Введите текст комментария - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Пожалуйста, введите комментарий. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Добавить комментарий - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Ошибка сохранения комментария: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Ошибка удаления комментария: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Скачать @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Повторить распознавание @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Закрыть @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Путь к хранилищу @@ -2468,6 +2942,14 @@ Метаданные архивного документа + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Предпросмотр + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Введите пароль - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Комментарии + Заметки Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Отменить @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Сохранить & следующий + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Ошибка при получении метаданных + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Ошибка при получении предложений + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Ошибка при сохранении документа + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Подтвердите удаление @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Вы действительно хотите удалить документ ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Файлы из этого документа будут удалены незамедлительно. Это операцию нельзя отменить. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Удалить документ - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Ошибка удаления документа: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Подтверждение повторного распознавания @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Это действие перезапишет результаты распознавания текста для этого документа. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Эту операцию нельзя отменить. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Продолжить @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Операция повторного распознавания начнется в фоновом режиме. Закройте и повторно откройте или перезагрузите этот документ после завершения операции, чтобы увидеть новое содержимое. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Ошибка выполнения операции: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Фильтр корреспондентов @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Фильтр типа документов @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Фильтр по пути хранения @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Включить: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Архивированные файлы @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Оригинальные файлы @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Использовать форматированное имя файла @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Ошибка при выполнении массовой операции: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" и "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' и "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Подтвердить применяемый тег @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Эта операция добавит тег "" выбранным документам . @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Эта операция добавит теги к выбранному(ым) документу(ам). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Эта операция удалит теги "" с выбранных документов. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Эта операция удалит теги из выбранного(ых) документа(ов). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Эта операция добавит теги и удалит теги из выбранного(ых) документа(ов). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Подтвердите назначения корреспондента @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Эта операция назначит корреспондента "" выбранным документам. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Эта операция удалит корреспондента из выбранных документов. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Подтвердите назначение типа документа @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Эта операция присвоит тип "" выбранным документам. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Эта операция удалит тип из выбранных документов. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Подтвердите назначение путь хранения @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Эта операция присвоит путь хранения "" к выбранному(ым) документу(ам). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Эта операция удалит путь хранения из выбранного(ых) документа(ов). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Подтвердите удаление @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Эта операция навсегда удалит выбранных документов. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Удалить документ(ы) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Эта операция повторит распознавание для выбранного(ых) документа(ов). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Отфильтровать по корреспонденту @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Отфильтровать по тегу - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Редактировать + Просмотреть заметки - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Представление + Заметки Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Фильтр по типу документа @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Фильтр по пути хранения @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Создано: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Добавлено: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Изменено: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Оценка: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Переключить соответствующий фильтр @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Переключить фильтр типа документа @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Переключить фильтр пути хранения @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Представления Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Сохранить "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Сохранить как... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Выделено документов: из 1} other {Выделено документов: из }} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Один документ} other { документа(ов)}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (отфильтровано) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Ошибка при загрузке документов + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ АН + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Заметки + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Изменить документ @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Представление "" успешно сохранено. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Представление "" успешно создано. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Сбросить фильтры @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Корреспондент: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Без корреспондента @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Тип: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Без типа документа @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Тег: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Без тегов @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Название: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 Архивный номер: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Название и содержимое @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Расширенный поиск @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Больше похожих @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 совпадает с @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 не заполнено @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 не является пустым @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 больше чем @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 меньше чем @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Показать в боковой панели @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Показать на главной @@ -3470,11 +4060,63 @@ Произошла ошибка + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Введите заметку + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Пожалуйста, напишите примечание. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Добавить заметку + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Удалить заметку + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Ошибка при сохранении заметки: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Ошибка при удалении заметки: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 корреспондент @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 корреспонденты @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Последний использованный @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Вы действительно хотите удалить этого корреспондента ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 тип документа @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 типы документов @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Вы действительно хотите удалить этот тип документа: ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Автоматически + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Отсутствует + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Произошла ошибка во время создания : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Успешно создано . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Произошла ошибка при создании : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Успешно обновлено . @@ -3686,15 +4352,15 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 - Ошибка при сохранении : . + Error occurred while saving : . Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Вы действительно хотите удалить "? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Связанные документы не будут удалены. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Возникла ошибка при удалении элемента: @@ -3906,13 +4572,13 @@ Проверка обновлений - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Проверка обновлений работает путем запроса последнего выпуска у публичного Github API, чтобы определить, доступна ли новая версия. Фактическое обновление приложения выполнятется вручную. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Применить при закрытии - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Включить комментарии + Включить заметки Notifications @@ -4034,11 +4700,19 @@ Это отключит все сообщения о статусе обработки документов на главной. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Показывать предупреждение при закрытии сохраненных видов с несохраненными изменениями + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Появляется на @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Нет сохраненных представлений. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Почта @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Учётные записи почты @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Добавить учётную запись @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Сервер @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Нет заданных учётных записей почты. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Правила почты @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Добавить правило @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Нет заданных почтовых правил. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Пользователи & Группы + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Пользователи + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Добавить пользователя + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Добавить группу + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Сохраненное представление "" удалено. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Сохранено @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Настройки успешно сохранены. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Настройки успешно сохранены. Для применения некоторых изменений необходимо перезагрузить. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Перезагрузить @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Использовать язык системы @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Использовать формат даты, соответствующий языку @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Ошибка при хранении настроек на сервере: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Пароль был изменен, через некоторое время вы будете разлогинены. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Сохранён пользователь "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Ошибка при сохранении пользователя: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Подтвердите удаление учетной записи пользователя + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Эта операция окончательно удалит учетную запись пользователя. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Пользователь удален + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Ошибка при удалении пользователя: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Сохранена группа "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Ошибка при сохранении группы: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Подтвердите удаление группы пользователей + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Эта операция окончательно удалит данную группу пользователей. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Группа удалена + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Ошибка при удалении группы: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Учётная запись "" сохранена. @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Ошибка сохранения учетной записи: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Подтвердите удаление учётной записи почты @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 Это действие навсегда удалит эту учётную запись. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Учётная запись почты удалена @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Ошибка удаления учётной записи почты: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Сохранено правило "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Ошибка сохранения правила: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Подтвердите удаление почтового правила @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 Это действие навсегда удалит это почтовое правило. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Почтовое правило удалено @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Ошибка удаления почтового правила: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 путь к хранилищу @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 пути хранения @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Вы действительно хотите удалить путь до хранилища данных ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 тег @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 теги @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Вы действительно хотите удалить тег ""? @@ -4330,16 +5140,6 @@ Отменить выбор - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Отклонить @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Открыть документ @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Неудачно  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Выполнено @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Запущено @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 В очереди @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Отменить выбранное @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Отменить все @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Подтвердить отмену всех @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 задачи? @@ -4460,11 +5260,19 @@ 404 Не найдено + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Авто: Автоматически изучать соответствие + Any word src/app/data/matching-model.ts - 14 + 20 Любые слова @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Любой: Документ содержит любое из этих слов (разделитель - пробел) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Все слова @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Все: Документ содержит все эти слова (разделитель - пробел) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Точное соответствие @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Точное: Документ содержит эту строку @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Регулярное выражение @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Регулярное выражение: Документ соответствует этому регулярному выражению @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 "Нечёткий" режим @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Нечетко: Документ содержит слово, подобное этому слову - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Авто: Автоматически изучать соответствие + Ничего: Отключить сравнение Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Несохранённые изменения @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 У вас есть несохраненные изменения. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 У вас есть несохраненные изменения в представлении @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Вы уверены, что хотите закрыть это представление? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Сохранить и закрыть + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + У вас нет разрешения на выполнение этого действия + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 У вас есть несохраненные изменения в документе @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Вы уверены, что хотите закрыть этот документ? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Закрыть документ @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Вы уверены, что хотите закрыть все документы? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Закрыть документы @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Релевантность @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Английский (США) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Арабский @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Белорусский + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Чешский @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Датский @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Немецкий @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Английский (Великобритании) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Испанский @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Французский @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Итальянский @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Люксембургский @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Голландский @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Польский @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Португальский (Бразилия) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Португальский @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Румынский @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Русский @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Словенский @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Сербский @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Шведский @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Турецкий @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Китайский упрощенный @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Одноразовая миграция настроек в базу данных завершена! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Не удается перенести настройки в базу данных, пожалуйста, попробуйте сохранить вручную. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Информация @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Подключение... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Загрузка... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Загрузка завершена, ждите... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Ошибка HTTP: diff --git a/src-ui/src/locale/messages.sl_SI.xlf b/src-ui/src/locale/messages.sl_SI.xlf index 2eae58b79..36fe490ed 100644 --- a/src-ui/src/locale/messages.sl_SI.xlf +++ b/src-ui/src/locale/messages.sl_SI.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument dodan @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument je bil dodan v paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Odpri dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Ni bilo mogoče dodati : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nov dokument zaznan @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument je v postopku obdelave. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Začetek nalaganja... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Nastavitve @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Odpri dokumente @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Zapri vse @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Upravljaj @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Dopisniki @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Vrste dokumentov @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Poti do shrambe @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentacija @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Podaj predlog @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 je na voljo. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klikni za ogled. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Posodobitev na voljo @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Prišlo je do napake ob shranjevanju nastavitev. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Potrdi @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Shrani @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Ustvarite novega dopisnika @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Uredi dopisnika @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Ustvarite novo vrsto dokumenta @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Uredite vrsto dokumenta @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Ustvari nov element @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Uredi vnos @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Elementa ni bilo mogoče shraniti: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Nalaganje... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Napaka @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Izbriši @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Pot @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 npr. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 ali uporabljaj slash za dodajanje map npr. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Ustvari novo pot shrambe @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Uredi pot shrambe @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Barva @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Ustvari novo oznako @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Uredi oznako + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Poljuben + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Uporabi @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Kliknite znova, da izključite elemente. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Ni dodeljeno @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Predlogi: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Poglej + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Uredi + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Dodaj vnos + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Dodaj oznako + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Prosimo, izberite vrednost - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Nalaganje... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistika - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenti v nabiralniku: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Skupaj dokumentov: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Obravnavanje: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Neuspešno: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Dodani: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Iskanje dokumenta z asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Vnesite komentar - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Prosimo, vpišite komentar. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Dodaj komentar - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Napaka pri shranjevanju komentarja: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Napaka pri brisanju komentarja: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Prenesi @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Ponovno naredi OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Zapri @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Pot do shrambe @@ -2468,6 +2942,14 @@ Arhivirani metapodatki dokumenta + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Vnesi geslo - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Komentarji + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Zavrzi @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Shrani & naslednjo + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Potrdi brisanje @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Ali res želite izbrisati dokument ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Datoteke za ta dokument bodo trajno izbrisane. Te operacije ni mogoče razveljaviti. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Izbriši dokument - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Napaka pri brisanju dokumenta: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Potrdi ponovno izdelavo OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Ta izbira bo permanentno izvedla ponovni OCR na tem dokumentu. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Te operacije ni mogoče razveljaviti. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Nadaljuj @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Napaka pri izvajanju operacije: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrirajte dopisnike @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrirajte vrste dokumentov @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtriraj poti shrambe @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Napaka pri izvajanju operacije v velikem obsegu: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" in "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' in "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Potrdite dodelitev oznak @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Ta operacija bo dodala oznako "" izbranemu dokumentu . @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Ta operacija bo dodala oznake na izbrane dokumente. @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Ta operacija bo odstranila oznako "" iz izbranega dokumenta(ov). @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Ta operacija bo odstranila oznake iz izbranih dokumentov. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Ta operacija bo dodala oznake in odstranila oznake na izbranih dokumentih. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Potrdite dopisnika @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Ta operacija bo dodelila ustrezniega dopisnika "" izbranemu dokumentu(om). @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Ta operacija bo odstranila dopisnika iz izbranih dokumentov. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Potrdite dodelitev vrste dokumenta @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Ta operacija bo dodelila vrsto dokumenta "" izbranim dokumentom. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Ta operacija bo odstranila vrsto dokumenta iz izbranih dokumentov. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Potrdite dodelitev oznak poti @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Ta operacija bo dodelila pot shranjevanja "" v izbran dokument/e. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Ta operacija bo odstranila pot shranjevanja iz izbranih dokumentov. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Potrdi izbris @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Ta operacija bo trajno izbrisala izbrane dokumente. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Izbriši dokument(e) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Ta operacija bo trajno obnovila OCR za izbrane dokumente. @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtriraj po dopisnikih @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtriraj po oznakah - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Uredi + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Poglej + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtriraj po vrsti dokumenta @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtriraj po poti shrambe @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Ustvarjeno: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Dodano: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Spremenjeno: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Rezultat: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Preklop korespondenčnega filtra @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Preklop filtra vrste dokumenta @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Preklop filtra poti za shranjevanje @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Pogledi Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Shrani "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Shrani kot... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Izbrano enega dokumenta} other {Izbrano od dokumentov}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Dokument} other { dokumentov}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrirano) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Napaka pri nalaganju dokumentov + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Uredi dokument @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Pogled »" je uspešno shranjen. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Pogled »" je bil uspešno ustvarjen. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Ponastavi filtre @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Dopisnik: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Brez dopisnika @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Vrsta: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Brez vrste dokumenta @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Oznaka: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Brez kakršne koli oznake @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Naslov: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Naslov & vsebina @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Napredno iskanje @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Bolj podobno @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 je enako @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 je prazno @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 ni prazno @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 večje kot @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 manj kot @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Prikaži v stranski vrstici @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Prikaži na pregledni plošči @@ -3470,11 +4060,63 @@ Vrnjena napaka je bila + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 dopisnik @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 dopisniki @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Nazadnje uporabljen @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Ali res želite izbrisati dopisnika ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 vrsta dokumenta @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 vrste dokumentov @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Ali res želite izbrisati vrsto dokumenta ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Samodejno + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Ali res želite izbrisati ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Povezani dokumenti ne bodo izbrisani. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Napaka pri brisanju elementa: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Potrdite ob zaprtju - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Omogoči komentarje + Enable notes Notifications @@ -4034,11 +4700,19 @@ S tem bodo na plošči prekinjena vsa sporočila o stanju obdelave dokumentov. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Pojavi se na @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Ni določenih shranjenih pogledov. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Shranjen pogled "" je izbrisan. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Nastavitve shranjene @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Nastavitve uspešno shranjene. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Nastavitve so bile uspešno shranjene. Za uveljavitev nekaterih sprememb je potreben ponovni zagon. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Ponovno zaženi @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Uporabi sistemski jezik @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Uporabite obliko datuma prikaznega jezika @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Napaka pri shranjevanju nastavitev na strežnik: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 pot do shrambe @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 poti do shrambe @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Ali res želite izbrisati pot shranjevanja ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 oznaka @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 oznake @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Ali res želite izbrisati oznako ""? @@ -4330,16 +5140,6 @@ Počisti izbiro - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Opusti @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Neuspešno @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Dokončano @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Začetek @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 V čakalni vrsti @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Opusti izbrano @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Opusti vse @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Potrdi Opusti vse @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 naloge? @@ -4460,11 +5260,19 @@ 404 ni mogoče najti + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Samodejno: Nauči se samodejnega ujemanja + Any word src/app/data/matching-model.ts - 14 + 20 Katerakoli beseda @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Karkoli: dokument vsebuje katero koli od teh besed (ločeno s presledkom) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Vse besede @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Vse: dokument vsebuje vse te besede (ločene s presledkom) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Točno ujemanje @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Točno: dokument vsebuje ta niz @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regularni izraz @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regularni izraz: dokument se ujema s tem regularnim izrazom @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy beseda @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: dokument vsebuje besedo, podobno tej besedi - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Samodejno: Nauči se samodejnega ujemanja + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Neshranjene spremembe @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Imate neshranjene spremembe. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Imate neshranjene spremembe dokumenta @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Ali ste prepričani, da želite zapreti ta dokument? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Zapri dokument @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Ali ste prepričani, da želite zapreti vse dokumente? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Zapri dokumente @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Rezultat iskanja @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Angleščina (ZDA) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Beloruščina + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Češčina @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danščina @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Nemščina @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Angleščina (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Španščina @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francoščina @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italijanščina @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luksemburški @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Nizozemščina @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Poljščina @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugalščina (Brazilija) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugalščina @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romunščina @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Ruščina @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenščina @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Srbščina @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Švedščina @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turščina @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Poenostavljena kitajščina @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Uspešno opravljena enkratna migracija nastavitev v bazo! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Nastavitev ni mogoče preseliti v bazo podatkov, poskusite jih shraniti ročno. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informacija @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Povezovanje... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Nalaganje... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Nalaganje je končano, čakam... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 Napaka HTTP: diff --git a/src-ui/src/locale/messages.sr_CS.xlf b/src-ui/src/locale/messages.sr_CS.xlf index 82e603fcf..718d44c42 100644 --- a/src-ui/src/locale/messages.sr_CS.xlf +++ b/src-ui/src/locale/messages.sr_CS.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument je dodat @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument je dodat u Paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Otvori dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Nije moguće dodati : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Novi dokument je otkriven @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument obrađuje Paperless. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prethodni @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 Kraj @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 Kontrolna tabla se može koristiti za prikazivanje sačuvanih pogleda, kao što je 'Inbox'. Kada kreirate neke poglede ta podešavanja će se nalazati pod Podešavanja > Sačuvani pogledi. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Prevucite i otpustite dokumente ovde da biste započeli otpremanje ili ih stavite u folder za konzumiranje. Takođe možete da prevučete i otpustite dokumente bilo gde na svim drugim stranicama veb aplikacije. Kada to učinite, Paperless-ngx će početi da trenira svoje algoritme za mašinsko učenje. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 Lista dokumenata prikazuje sve vaše dokumente i omogućava filtriranje kao i grupno uređivanje. Postoje tri različita stila prikaza: lista, male kartice i velike kartice. Na bočnoj traci je prikazana lista dokumenata koji su trenutno otvoreni za uređivanje. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 Alati za filtriranje vam omogućavaju da brzo pronađete dokumente koristeći različite pretrage, datume, oznake itd. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Bilo koja kombinacija filtera se može sačuvati kao 'pogled' koji se zatim može prikazati na kontrolnoj tabli i/ili bočnoj traci. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Oznake, korespodenti, tipovi dokumenata i putanje skladištenja svi se mogu se uređivati pomoću ovih stranica. Takođe se mogu kreirati iz prikaza za uređivanje dokumenta. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 Obrada dokumenata vam prikazuje dokumenta koja su obrađena, čekaju da budu obrađena ili možda nisu uspešno obrađena. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Proverite podešavanja za različita podešavanja veb aplikacije, uključili podešavanja za sačuvane poglede ili podesite proveru elektronske pošte. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Hvala vam! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 Ima <em>tona</em> više funkcija i informacija koje ovde nismo pokrili, ali ovo bi trebalo da vas pokrene. Pogledajte dokumentaciju ili posetite projekat na GitHub-u da biste saznali više ili prijavili probleme. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Na kraju, u ime svih koji doprinose ovom projektu koji podržava zajednica, hvala vam što koristite Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Pokretanje otpremanja... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Podešavanja @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Otvorena dokumenta @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Zatvori svе @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Upravljanje @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korespodenti @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Tipovi dokumenta @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Putanja skladišta @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 Obrada dokumenata @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentacija @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Predložite ideju @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 je dostupno. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Klik za prеglеd. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx može automatski da proveri da li postoje ažuriranja @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 Kako ovo radi? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Dostupno jе ažuriranjе @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 Došlo je do greške prilikom čuvanja podešavanja. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 Došlo je do greške prilikom čuvanja podešavanja. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Potvrdi @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Sačuvaj @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Krairaj novog korespodenta @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Izmeni korespodenta @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Kreiraj novi tip dokumenta @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Uredi tip dokumenta @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Kreiraj novu stavku @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Izmeni stavku @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Nije moguće sačuvati elelement: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Dozvole + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Kreiraj novu korisničku grupu + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Izmeni korisničku grupu + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Korisničko ime @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Lozinka + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Lozinka je token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Proverite da li je gornja lozinka token koji se koristi za autentifikaciju + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Karakter set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Učitavanje... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 Nema enkripcije @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Kreirajte novi e-mail nalog @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Izmeni e-mail nalog + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Uspešno povezano na mejl server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Nije moguće povezivanje sa mejl serverom + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Nalog @@ -1359,11 +1543,19 @@ Filter od + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filtriraj po + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter naslova @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter tela poruke @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter naziva fajla priloga @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Konzumirajte samo dokumente koji u potpunosti odgovaraju ovom nazivu datoteke ako je navedeno. Dopušteni su zamenski znakovi kao što su *.pdf ili *faktura*. Neosetljivo je na mala i mala slova. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Radnja @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Radnja se izvodi samo ako su dokumenti konzumirani iz e-pošte. E-pošta bez priloga ostat će u potpunosti netaknuta. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Parametar radnje @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Dodeli naziv iz @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Dodeli tip dokumenta @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Dodeli korespodenta iz @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Dodeli korespodenta @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Grеška @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Obradi samo priloge @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Obradite sve fajlove, uključujući "umetnute" priloge @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Obradi poruku kao .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Obradite poruku kao .eml i priloge odvojeno @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Obriši @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Premesti u određen folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Označi kao pročitano, ne obrađuj pročitanu e-poštu @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Označi poštu zastavicom, ne obrađuj e-poštu sa zastavicom @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Označite poštu specifičnom oznakom., ne obrađuj e-poštu s specifičnom oznakom @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Koristi predmet kao naziv @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Koristi naziv datoteke priloga kao naziv @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Ne dodeljuj korespodenta @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Koristi e-mail adresu @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Koristi naziv (ili e-mail adresu ako nije dostupno) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Koristi korespodenta ispod @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Kreiraj novo e-mail pravilo @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Izmeni e-mail pravilo - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Imajte na umu da uređivanje putanje ne primenjuje promene na sačuvane datoteke sve dok ne pokrenete uslužni program 'document_renamer'. Pogledajte dokumentaciju. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Putanja @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 npr. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 ili koristite kose crte za dodavanje direktorijuma, npr. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 Pogledaj <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">dokumentaciju</a> za kompletnu listu. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Kreiraj novu putanju skladišta @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Izmeni putanju skladišta @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Boja @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Kreiraj novu oznaku @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Izmeni oznaku + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Ime + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Prezime + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Aktivan + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Super-korisnik + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Daje sve dozvole i može da vidi objekte) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Grupe + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Kreirajte novi korisnički nalog + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Izmeni korisnički nalog + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Bilo koja + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Uključi + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Isključi + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Primeni @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Kliknite ponovo da biste isključili stavke. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Nije dodeljen @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Sugestije: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Izmeni dozvole + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Vlasnik: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objekte bez vlasnika mogu pregledati i uređivati svi korisnici + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Prikaz + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Korisnici: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Grupe: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Izmeni + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Dozvole za uređivanje takođe dodeljuju dozvole za gledanje + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Dodaj stavku + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Privatno + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Dodaj oznaku + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Postavi dozvole + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Imajte na umu da će dozvole postavljene ovde zameniti sve postojeće dozvole + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Tip + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Dodaj + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Izmeni + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Nasleđeno iz grupe + Select @@ -1869,43 +2383,11 @@ Molimo odaberete objekat - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Učitavanje... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Pozdrav , dobro došao u Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Dobro došli u Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistika - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokumenta u prijemnom sandučetu: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Ukupno dokumenata: + Idi u prijemno sanduče + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Dokumenta u prijemnom sandučetu + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Idi u dokumenta + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Ukupno dokumenata + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Ukupno karaktera + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Ostalo Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Obrada: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Neuspešno: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Dodato: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Pretraži dokument sa ASN - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Unesi komentar - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Molimo unesite komentar. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Dodaj komentar - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Greška prilikom čuvanja komentara: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Greška prilikom brisanja komentara: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Preuzmi @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Ponovi OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Zatvori @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Putanja skladišta @@ -2468,6 +2942,14 @@ Metapodaci arhivnog dokumenta + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Pregled + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Unesite lozinku - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Komentari + Beleške Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Odbaci @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Sačuvaj & sledeći + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + Greške se pojavila prilikom učitavanja sadržaja: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Greška pri preuzimanju metapodataka + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Greška pri preuzimanju predloga + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Dokument je uspešno sačuvan. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Greška prilikom čuvanja dokumenta + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Potvrdi brisanje @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Da li stvarno želite da obrišite dokument ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Fajlovi za ovaj dokument će biti trajno obrisani. Ova operacija se ne može opozvati. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Obriši dokument - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Greška prilikom brisanja dokumenta: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Ponovi OCR potvrda @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 Ova će operacija trajno ponoviti OCR za ovaj dokument. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Ovu radnju nije moguće opozvati. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Nastavi @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Ponovna OCR operacija će početi u pozadini. Zatvorite i ponovo otvorite ili ponovo učitajte ovaj dokument nakon što se operacija završi da biste videli novi sadržaj. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Greška pri izvršavanju operacije: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtriraj korespodente @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtriraj tip dokumenta @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filtriraj po putanji skladišta @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Uključi: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Arhivni fajlovi @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Originalni fajlovi @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Koristi formatirano ime fajla @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Greška pri izvršavanju grupne operacije: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" i "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' i "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Potvrdi dodelu oznaka @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Ova operacija će dodati oznaku "" to na selektovan(e) dokument(e). @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 Ova operacija će dodati oznake na selektovan(e) dokument(e). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Ova radnja će obrisati oznaku "" iz selektovanih dokumenata. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 Ova radnja će obrisati oznake iz selektovanih dokumenata. @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 Ova radnja će dodati oznake i ukloniti oznake na selektovanim dokumentima. @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Potvrdi dodelu korespodenta @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Ova radnja će dodati korespodenta "" na selektovane dokumente. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Ova radnja će obrisati korespodente sa selektovanih dokumenata. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Potvrdi dodelu tipa dokumenta @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Ova radnja će dodati tip dokumenta "" na selektovane dokumente. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Ova radnja će obrisati tip dokumenta sa selektovanih dokumenata. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Potvrdi dodelu putanje skladišta @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 Ova radnja će dodati putanju skladišta "" na selektovane dokumente. @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 Ova radnja će obrisati putanju skladišta selektovanih dokumenata. @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Potvrdi brisanje @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Ova radnja će trajno obrisati selektovan(a) dokument(a). @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Obriši dokument(e) @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 Ova radnja će trajno ponoviti OCR za selektovan(a) dokument(a). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtriraj po korespodentu @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtriraj po oznaci - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Izmeni + Pregled beleški - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Prikaz + Beleške Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filtriraj po tipu dokumenta @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filtriraj po putanji skladišta @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Kreirano: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Dodato: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Izmenjeno: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Rezultat: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Isključi filter korespodenta @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Isključi filter tipova dokumenata @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Isključiti filter putanje skladišta @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Pogledi Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Sačuvaj "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Sačuvaj kao... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Selektovan od jednog dokumenta} other {Selektovano od dokumenata}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Jedan dokument} other { dokumenata}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrirano) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Greška pri učitavanju dokumenata + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sortiraj po ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sortiraj po korespodentu + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sortiraj po naslovu + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sortiraj po beleškama + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Beleške + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sortiraj po tipu dokumenata + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sortiraj po putanji skladišta + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sortiraj po datumu kreiranja + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sortiraj po datumu dodavanja + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Uredi dokument @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Prikaz "" je uspešno sačuvan. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Prikaz "" je uspešno kreiran. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Poništavanje filtera @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Korespodent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Bez korespodenta @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Tip: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Bez tipa dokumenta @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Oznaka: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Bez oznake @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Naslov: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Naslov & sadržaj @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Napredna pretraga @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Više sličnog @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 jednako @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 je prazan @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 nije prazan @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 veće od @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 manje od @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Prikaži u bočnoj traci @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Prikaži na kontrolnoj tabli @@ -3470,11 +4060,63 @@ Greška je + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Unesi belešku + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Molimo unesite belešku. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Dodaj belešku + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Obriši belešku + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Greška prilikom čuvanja beleške: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Greška prilikom brisanje beleške: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 korespodent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 korespodenti @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Poslednje korišćenje @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Da li stvarno želite da obrišete ovog korespodenta ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 tip dokumenta @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 tipovi dokumenta @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Da li stvarno želite da obrišite ovaj tip dokumenta ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatski + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + Nijedan + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Došlo je do greške pri kreiranju : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Uspešno kreirano . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Došlo je do greške pri kreiranju : . + Došlo je do greške pri čuvanju . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Uspešno izmenjeno . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Došlo je do greške pri čuvanju : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Da li stvarno želite da obrišete ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Povezani dokumenti neće biti obrisani. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Greška prilikom brisanja elementa: @@ -3906,13 +4572,13 @@ Provera ažuriranja - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Provera ažuriranja funkcioniše pingovanjem javnog Github API za najnovije izdanje da bi se utvrdilo da li je nova verzija dostupna. Stvarno ažuriranje aplikacije i dalje mora da se obavlja ručno. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Primeni pri zatvaranju - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Omogući komentare + Omogući beleške Notifications @@ -4034,11 +4700,19 @@ Ovo će potisnuti sve poruke o statusu obrade dokumenta na kontrolnoj tabli. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Prikaži upozorenje kada se zatvara sačuvani pogled sa ne sačuvanim izmenama + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Pojavljuje se na @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Nema definisanih sačuvanih pogleda. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 E-pošta @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 E-mail nalozi @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Dodaj nalog @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 Nema definisanih e-mail naloga. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Pravila e-pošte @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Dodaj pravilo @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 Nema definisanih e-mail pravila. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Korisnici & Grupe + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Korisnici + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Dodaj korisnika + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Dodaj grupu + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Sačuvan pogled "" je obrisan. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Podešavanja su sačuvana @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Podešavanja su uspešno sačuvana. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Podešavanja su uspešno sačuvana. Potrebno je ponovno učitavanje da biste primenili neke promene. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Sad ponovo učitaj @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Koristi sistemski jezik @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Koristi format datuma jezika prikaza @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Greška pri čuvanju podešavanja na serveru: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Lozinka je promenjena, bićete odjavljeni trenutno. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Sačuvan korisnik "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Greška prilikom čuvanja korisnika: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Potvrdi brisanje korisničkog naloga + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + Ova operacija će trajno obrisati ovaj korisnički nalog. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Obrisan korisnik + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Greška prilikom brisanja korisnika: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Sačuvana grupa "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Greška prilikom čuvanje grupe: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Potvrdi brisanje korisničke grupe + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + Ova operacija će trajno obrisati ovu korisničku grupu. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Obrisana grupa + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Greška prilikom brisanja grupa: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Sačuvan nalog "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Greška prilikom čuvanja naloga: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Potvrdi brisanje e-mail naloga @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 Ova operacija će trajno obrisati ovaj e-mail nalog. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Obrisan je e-mail nalog @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Greška prilikom brisanja e-mail naloga: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Sačuvano pravilo "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Greška prilikom čuvanja pravila: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Potvrdi brisanje e-mail pravila @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 Ova operacija će trajno obrisati ovo e-mail pravilo. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Obrisano je e-mail pravilo @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Greška prilikom brisanja e-mail pravila: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 putanja skladišta @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 putanja skladišta @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Da li stvarno želite da obrišete putanju skladišta ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 oznaka @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 oznake @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Da li stvarno želite da obrišete oznaku ""? @@ -4330,16 +5140,6 @@ Poništi izbor - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Odbaci @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Otvori dokument @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Neuspešno  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Završeno @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Pokrenuto @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Na čekanju  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Odbaci selektovano @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Odbaci sve @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Potvrdi odbacivanje svega @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 obrade? @@ -4460,11 +5260,19 @@ 404 Nije pronađeno + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Automatski: nauči automatsko podudaranje + Any word src/app/data/matching-model.ts - 14 + 20 Bilo koja reč @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Bilo koja: dokument sadrži bilo koju od ovih reči (razdvojenih razmacima) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Sve reči @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Sve: Dokument sadrži sve ove reči (razdvojene razmakom) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Tačno podudaranje @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Tačno: dokument sadrži ovaj niz @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Regularni izraz @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Regularni izraz: Dokument odgovara ovom regularnom izrazu @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy reč @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Dokument sadrži reč sličnu ovoj reči - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Automatski: nauči automatsko podudaranje + Nijedan: Onemogućite podudaranje Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Nesačuvane izmene @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Imate nesačuvanih izmena. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 Imate nesačuvane promene u sačuvanom pogledu @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Da li ste sigurni da želite da zatvorite ovaj sačuvan pogled? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Sačuvaj i zatvori + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + Nemate dozvole da uradite to + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 Imate nesačuvane promene u dokumentu @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Da li ste sigurni da želite da zatvorite ovaj dokument? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Zatvori dokument @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Da li ste sigurni da želite da zatvorite sve dokumente? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Zatvori dokumenta @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Rezultate pretrage @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Engleski (USA) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arapski @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Beloruski + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Češki @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danski @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Nemački @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Engleski (UK) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Španski @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Francuski @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italijanski @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luksemburški @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holandski @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Poljski @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugalski (Brazil) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugalski @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumunski @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Ruski @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovenački @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Srpski @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 Švedski @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Turski @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Kineski pojednostavljen @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Uspešno završena jednokratna migracija podešavanja u bazu podataka! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Nije moguće preneti podešavanja u bazu podataka, pokušajte da ih sačuvate ručno. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Informacija @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Povezivanje... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Otpremanje... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Otpremanje je završeno, čeka se... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP greška: diff --git a/src-ui/src/locale/messages.sv_SE.xlf b/src-ui/src/locale/messages.sv_SE.xlf index 3118621df..7e956497a 100644 --- a/src-ui/src/locale/messages.sv_SE.xlf +++ b/src-ui/src/locale/messages.sv_SE.xlf @@ -8,7 +8,7 @@ node_modules/src/ngb-config.ts 13 - Close + Stäng HH @@ -16,7 +16,7 @@ node_modules/src/ngb-config.ts 13 - HH + HH Close @@ -24,7 +24,7 @@ node_modules/src/ngb-config.ts 13 - Close + Stäng «« @@ -44,7 +44,7 @@ node_modules/src/ngb-config.ts 13 - Select month + Välj månad Previous month @@ -56,7 +56,7 @@ node_modules/src/ngb-config.ts 13 - Previous month + Föregående månad @@ -82,7 +82,7 @@ node_modules/src/ngb-config.ts 13 - Hours + Timmar « @@ -98,7 +98,7 @@ node_modules/src/ngb-config.ts 13 - Previous + Föregående MM @@ -106,7 +106,7 @@ node_modules/src/ngb-config.ts 13 - MM + MM » @@ -126,7 +126,7 @@ node_modules/src/ngb-config.ts 13 - Select year + Välj år Next month @@ -138,7 +138,7 @@ node_modules/src/ngb-config.ts 13 - Next month + Nästa månad Next @@ -146,7 +146,7 @@ node_modules/src/ngb-config.ts 13 - Next + Nästa Minutes @@ -154,7 +154,7 @@ node_modules/src/ngb-config.ts 13 - Minutes + Minuter »» @@ -178,7 +178,7 @@ node_modules/src/ngb-config.ts 13 - First + Första Previous @@ -186,7 +186,7 @@ node_modules/src/ngb-config.ts 13 - Previous + Föregående Decrement hours @@ -202,7 +202,7 @@ node_modules/src/ngb-config.ts 13 - Next + Nästa Increment minutes @@ -218,7 +218,7 @@ node_modules/src/ngb-config.ts 13 - Last + Sista Decrement minutes @@ -234,7 +234,7 @@ node_modules/src/ngb-config.ts 13 - SS + SS Seconds @@ -242,7 +242,7 @@ node_modules/src/ngb-config.ts 13 - Seconds + Sekunder Increment seconds @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Dokument tillagt @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Dokument lades till i paperless. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Öppna dokument @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 Kunde inte lägga till : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Nytt dokument upptäckt @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 Dokument behandlas av paperless. @@ -342,123 +350,123 @@ Prev src/app/app.component.ts - 119 + 138 - Prev + Föregående Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html 55 - Next + Nästa End src/app/app.component.ts - 121 + 140 - End + Avsluta The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 - The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. + Instrumentpanelen kan användas för att visa sparade vyer, till exempel en "Inkorg". Dessa inställningar finns under Inställningar > Sparade Vyer när du har skapat några. Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 - Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. + Släpp dokument här för att börja ladda upp eller placera dem i konsumtionsmappen. Du kan också släppa dokument var som helst på alla andra sidor i webbappen. När du gör det kommer Paperless-ngx börja träna sina algoritmer för maskininlärning. The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 - The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. + Dokumentlistan visar alla dina dokument och möjliggör filtrering samt massredigering. Det finns tre olika vystilar: lista, små kort och stora kort. En lista med dokument som för närvarande är öppna för redigering visas i sidofältet. The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 - The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. + Med filtreringsverktygen kan du snabbt hitta dokument med hjälp av olika sökningar, datum, taggar osv. Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 - Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. + En kombination av filter kan sparas som en "vy" som sedan kan visas på instrumentpanelen och/eller i sidofältet. Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 - Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. + Taggar, korrespondenter, dokumenttyper och lagringsplatser kan alla hanteras med hjälp av dessa sidor. De kan också skapas från dokumentredigeringsvyn. File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 - File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. + Filuppgifter visar dokument som har behandlats, väntar på att bli behandlade, eller där fel uppstått vid behandling. Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 - Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. + Kolla in inställningarna för olika inställningar till webbappen, växla inställningar för sparade vyer eller konfigurering av e-postkontroll. Thank you! 🙏 src/app/app.component.ts - 203 + 229 - Thank you! 🙏 + Tack! 🙏 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 - There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. + Det finns <em>massor</em> av funktioner och information som vi inte täckte här, men detta bör ge dig hjälp på traven. Läs dokumentationen eller besök projektet på GitHub om du vill lära dig mer eller rapportera problem. Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 - Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! + Till sist, från alla oss som bidragit till detta gemenskapsstödda projekt, tack för att du använder Paperless-ngx! Initiating upload... src/app/app.component.ts - 256 + 288 Initiating upload... @@ -469,7 +477,7 @@ 11 app title - Paperless-ngx + Paperless-ngx Search documents @@ -485,7 +493,7 @@ src/app/components/app-frame/app-frame.component.html 39 - Logged in as + Inloggad som Settings @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Inställningar @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Öppna dokument @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Stäng alla @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Hantera @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Korrespondenter @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Dokumenttyper @@ -655,31 +667,31 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 - Storage paths + Lagringsplatser File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html 1 - File Tasks + Filuppgifter File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokumentation @@ -727,23 +739,23 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 - GitHub + GitHub Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Föreslå en idé @@ -751,23 +763,23 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 - is available. + är tillgänglig. Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 - Click to view. + Klicka för att visa. Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,19 +795,19 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 - Update available + Uppdatering tillgänglig An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Bekräfta @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Spara @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Skapa ny korrespondent @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Senaste korrespondent @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Skapa ny dokumenttyp @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Redigera dokumenttyp @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Skapa nytt objekt @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Redigera objekt @@ -1183,17 +1231,57 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 Kunde inte spara element: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Rättigheter + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Skapa ny användargrupp + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Redigera användargrupp + IMAP Server src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 11 - IMAP Server + IMAP-server IMAP Port @@ -1201,7 +1289,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 12 - IMAP Port + IMAP-port IMAP Security @@ -1209,7 +1297,7 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 13 - IMAP Security + IMAP-säkerhet Username @@ -1217,7 +1305,15 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 - Username + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + + Användarnamn Password @@ -1225,55 +1321,143 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 - Password + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + + Lösenord + + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Laddar... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 - No encryption + Ingen kryptering SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 - SSL + SSL STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 - STARTTLS + STARTTLS Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 - Create new mail account + Skapa nytt mailkonto Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 - Edit mail account + Redigera mailkonto + + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server Account @@ -1283,9 +1467,9 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 - Account + Konto Folder @@ -1293,7 +1477,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 12 - Folder + Mapp Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server. @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Fel @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Radera @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,69 +1855,61 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 - Path + Sökväg e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 - e.g. + t.ex. or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 - or use slashes to add directories e.g. + eller använd snedstreck för att lägga till kataloger t.ex. See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 - See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. + Se <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">dokumentation</a> för en komplett lista. Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 - Create new storage path + Skapa ny lagringsplats Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 - Edit storage path + Redigera lagringsplats Color @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Färg @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Skapa ny tagg @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Redigera tag + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + Förnamn + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Efternamn + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Tillämpa @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Click again to exclude items. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Inte tilldelad @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Förslag: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Vy + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Redigera + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Lägg till objekt + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Lägg till tagg + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,53 +2383,21 @@ Välj ett objekt - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Loading... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 - Hello , welcome to Paperless-ngx + Hej , välkommen till Paperless-ngx Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 - Welcome to Paperless-ngx + Välkommen till Paperless-ngx Show all @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ Statistik - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Dokument i inkorg: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Totalt antal dokument: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Bearbetar: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Misslyckades: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Tillagda: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2086,7 +2600,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 3 - Paperless-ngx is running! + Paperless-ngx är igång! You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. @@ -2094,7 +2608,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 4 - You're ready to start uploading documents! Explore the various features of this web app on your own, or start a quick tour using the button below. + Du kan nu börja ladda upp dokument! Utforska de olika funktionerna på egen hand, eller starta en snabb rundtur med hjälp av knappen nedanför. More detail on how to use and configure Paperless-ngx is always available in the documentation. @@ -2110,7 +2624,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 8 - Thanks for being a part of the Paperless-ngx community! + Tack för att du är en del av gemenskapen kring Paperless-ngx! Start the tour @@ -2118,7 +2632,7 @@ src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html 9 - Start the tour + Starta rundturen Searching document with asn @@ -2128,46 +2642,6 @@ Söker dokument med asn - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 Ladda ner @@ -2224,9 +2698,9 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 - Redo OCR + Gör om OCR More like this @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Stäng @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,17 +2814,17 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 - Storage path + Lagringsplats Default @@ -2358,7 +2832,7 @@ src/app/components/document-detail/document-detail.component.html 84 - Default + Standard Content @@ -2468,6 +2942,14 @@ Arkiverade dokument metadata + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Enter Password - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Avfärda @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Spara & nästa + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Bekräfta borttagning @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 Vill du verkligen ta bort dokumentet ""? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Filerna för detta dokument kommer att raderas permanent. Den här åtgärden kan inte ångras. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Ta bort dokument - - Error deleting document: + + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - Fel vid borttagning av dokument: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Den här åtgärden kan inte ångras. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Proceed @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Filtrera korrespondenter @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Filtrera dokument typ @@ -2688,19 +3230,19 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 - Filter storage paths + Filtrera lagringsplatser Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" och "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' " och "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Bekräfta tilldelning av taggar @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Denna åtgärd kommer att lägga till taggen "" till valda dokument. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Denna åtgärd kommer att ta bort taggen "" från valda dokument. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Bekräfta korrespondenttilldelning @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Den här åtgärden kommer att tilldela korrespondenten "" till valda dokument. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Den här åtgärden kommer att ta bort korrespondenten från valda dokument. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Bekräfta tilldelning av dokumenttyp @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Den här åtgärden kommer att tilldela dokumenttypen "" till valda dokument. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Den här åtgärden kommer att ta bort dokumenttypen från valda dokument. @@ -2906,31 +3456,31 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 - Confirm storage path assignment + Bekräfta tilldelning av lagringsplats This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 - This operation will assign the storage path "" to selected document(s). + Den här åtgärden kommer att tilldela lagringsplatsen "" till valda dokument. This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 - This operation will remove the storage path from selected document(s). + Den här åtgärden kommer att ta bort lagringsplatsen från valda dokument. Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Bekräfta borttagning @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Den här åtgärden kommer att permanent ta bort markerade dokument. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Ta bort dokument @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Filtrera på korrespondent @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Filtrera efter tagg - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Redigera + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Vy + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,23 +3564,23 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 - Filter by storage path + Filtrera efter lagringsplatser Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Poäng: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,9 +3644,9 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 - Toggle storage path filter + Växla filter för lagringsplats Select none @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Vyer Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Spara "" @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Spara som... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, one {} =1 {Vald av ett dokument} other {Vald av dokument}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, one {} =1 {Ett dokument} other { dokument}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrerad) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Edit document @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 Vy "" sparades. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 Vy "" skapades. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Återställ filter @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Utan korrespondent @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Utan dokumenttyp @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Utan tagg @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Titel: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Titel & innehåll @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Avancerad sökning @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Mer som @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 equals @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 is empty @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 is not empty @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 greater than @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 less than @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Visa i sidofältet @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Visa på instrumentpanelen @@ -3470,11 +4060,63 @@ The error returned was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 correspondent @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 correspondents @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Last used @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 Vill du verkligen ta bort korrespondenten ""? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 document type @@ -3514,15 +4156,15 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 - document types + dokumenttyper Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 Vill du verkligen ta bort dokumenttypen ""? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Automatisk + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 Kopplade dokument kommer inte att raderas. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3736,7 +4402,7 @@ src/app/components/manage/settings/settings.component.html 15 - General + Allmänt Appearance @@ -3840,7 +4506,7 @@ src/app/components/manage/settings/settings.component.html 99 - Sidebar + Sidofält Use 'slim' sidebar (icons only) @@ -3848,7 +4514,7 @@ src/app/components/manage/settings/settings.component.html 103 - Use 'slim' sidebar (icons only) + Visa endast ikoner Dark mode @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Tillämpa vid stängning - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Detta kommer att förhindra alla meddelanden om status för dokumenthantering på instrumentpanelen. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Visas på @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Inga sparade vyer har definierats. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 Sparad vy "" borttagen. @@ -4126,23 +4832,23 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 - Settings saved + Inställningarna har sparats Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 - Settings were saved successfully. + Inställningarna sparades. Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Reload now @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Använd systemspråk @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Använd datumformat för visningsspråk @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,31 +5088,31 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 - storage path + lagringsplats storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 - storage paths + lagringsplatser Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 - Do you really want to delete the storage path ""? + Vill du verkligen ta bort lagringsplatsen ""? tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 tag @@ -4310,15 +5120,15 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 - tags + taggar Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 Vill du verkligen ta bort taggen ""? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4354,7 +5154,7 @@ src/app/components/manage/tasks/tasks.component.html 42 - Results + Resultat click for full output @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,15 +5180,15 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 - Open Document + Öppna Dokument Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Hittades inte + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Auto: Lär matchning automatiskt + Any word src/app/data/matching-model.ts - 14 + 20 Valfritt ord @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Any: Dokumentet innehåller något av dessa ord (mellanslag separerade) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Alla ord @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 All: Dokumentet innehåller alla dessa ord (mellanslag separerade) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Exakt matchning @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Exact: Dokumentet innehåller denna sträng @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Reguljära uttryck @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Reguljärt uttryck: Dokumentet matchar detta reguljära uttryck @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy word @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Dokumentet innehåller ett ord som liknar detta ord - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Auto: Lär matchning automatiskt + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,17 +5372,17 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 - Unsaved Changes + Osparade Ändringar You have unsaved changes. @@ -4584,9 +5392,9 @@ src/app/services/open-documents.service.ts - 131 + 132 - You have unsaved changes. + Du har ändringar som inte sparats. Are you sure you want to leave? @@ -4602,21 +5410,21 @@ src/app/guards/dirty-form.guard.ts 21 - Leave page + Lämna sidan You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 - You have unsaved changes to the saved view + Du har ändringar i vyn som inte sparats Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,15 +5588,15 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 - You have unsaved changes to the document + Du har ändringar i dokumentet som inte sparats Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Are you sure you want to close this document? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Close document @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Are you sure you want to close all documents? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Close documents @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Sök resultat @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 Engelska (USA) @@ -4837,39 +5653,47 @@ Arabic src/app/services/settings.service.ts - 151 + 165 - Arabic + Arabiska Belarusian src/app/services/settings.service.ts - 157 + 171 - Belarusian + Belarusiska + + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan Czech src/app/services/settings.service.ts - 163 + 183 - Czech + Tjeckiska Danish src/app/services/settings.service.ts - 169 + 189 - Danish + Danska German src/app/services/settings.service.ts - 175 + 195 Tyska @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 Engelska (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 Spanska @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Franska @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 Italienska @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Luxembourgish @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Holländska @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polska @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portugisiska (Brasilien) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portugisiska @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Rumänska @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Ryska @@ -4965,23 +5789,23 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 - Slovenian + Slovenska Serbian src/app/services/settings.service.ts - 253 + 273 - Serbian + Serbiska Swedish src/app/services/settings.service.ts - 259 + 279 Svenska @@ -4989,23 +5813,23 @@ Turkish src/app/services/settings.service.ts - 265 + 285 - Turkish + Turkiska Chinese Simplified src/app/services/settings.service.ts - 271 + 291 - Chinese Simplified + Kinesiska (förenklad) ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Information @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Ansluter... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Laddar upp... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Uppladdning klar, väntar... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP-fel: diff --git a/src-ui/src/locale/messages.tr_TR.xlf b/src-ui/src/locale/messages.tr_TR.xlf index b93b7f7a0..077318789 100644 --- a/src-ui/src/locale/messages.tr_TR.xlf +++ b/src-ui/src/locale/messages.tr_TR.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 Belge eklendi @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 Belge paperless'e eklendi. @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 Belgeyi aç @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 : 'i ekliyemiyorum @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 Yeni belge algılandı @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 adlı belge paperless tarafından işleniyor. @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 Initiating upload... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + Ayarlar @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 Belgeleri aç @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 Tümünü kapat @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 Yönet @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 Muhabirler @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 Belge türleri @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 Storage paths @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 Dokümantasyon @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 Github @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 Bir fikir öner @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 is available. @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 Görüntülemek için tıklayın. @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 Güncelleme mevcut @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 An error occurred while saving settings. @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 Onayla @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 Kaydet @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 Yeni bir muhabir oluşturun @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 Muhabiri düzenleyin @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 Yeni belge türü oluştur @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 Belge türünü düzenle @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 Yeni Öğe Oluştur @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 Öğeyi Düzenle @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 olan öğeyi kayıt edemiyorum + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + Yükleniyor... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 Hata @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 Sil @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 Path @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 ör. @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 or use slashes to add directories e.g. @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 Create new storage path @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 Edit storage path @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 Renk @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 Yeni etiket oluştur @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 Etiketi düzenle + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ Any + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 Uygula @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 Öğeleri hariç tutmak için yeniden tıklatın. @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned Atanmadı @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 Öneriler: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + Görüntüle + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + Düzenle + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths Öge ekle + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 Etiket ekle + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ Lütfen bir öğe seçin - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - Yükleniyor... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ İstatistikler - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - Gelen kutusundaki belgeler: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - Toplam belgeler: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 Işleniyor: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 Başarısız: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 Eklenen: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ Belgeyi asn ile arama - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 İndir @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 Redo OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 Kapat @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 Storage path @@ -2468,6 +2942,14 @@ Arşivlenen belge meta verileri + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 Parolayı girin - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 Gözardı et @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 Kaydet & sonraki + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 Silmeyi onayla @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 "" olan belgeyi gerçekten silmek istiyormusunuz? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 Bu belgeye ait dosyalar kalıcı olarak siliniecektir. Bu işlem geri alınamaz. @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 Belgeyi sil - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - belgeyi silerken hata + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 Redo OCR confirm @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 Bu işlem geri alınamaz. @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 Devam et @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 Muhabire göre filtrele @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 Belge türlerini göre filtrele @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 Filter storage paths @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 Error executing bulk operation: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 "" @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' "" ve "" @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' ve "" @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 Etiket atanmayi doğrulayın @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 Bu işlem "" etiketini seçili belge(ye/lere) ekliyecektir. @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 This operation will add the tags to selected document(s). @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 Bu işlem "" etiketini seçili belge(den/lerden) kaldıracaktır. @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 This operation will remove the tags from selected document(s). @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 This operation will add the tags and remove the tags on selected document(s). @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 Muhabir atanmayı onaylayın @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 Bu işlem "" muhabirini seçili belge(ye/lere) atıyacaktır. @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 Bu işlem, muhabiri "" seçili belge(den/lerden) kaldıracaktır. @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 Belge türü atanmayı onaylayın @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 Bu işlem "" belge türünü seçili belge(ye/lere) atıyacaktır. @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 Bu işlem, belge türünü "" seçili belge(den/lerden) kaldıracaktır. @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 Confirm storage path assignment @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 This operation will assign the storage path "" to selected document(s). @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 This operation will remove the storage path from selected document(s). @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 Silmeyi onaylayın @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 Bu işlem, "" seçili belge(leri) kalıcı olarak silecektir. @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 Belge(yi/leri) sil @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 This operation will permanently redo OCR for selected document(s). @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 Muhabire göre filtrele @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 Etikete göre filtrele - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - Düzenle + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - Görüntüle + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 Filter by document type @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 Filter by storage path @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 Created: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 Added: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 Modified: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 Puan: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 Toggle correspondent filter @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 Toggle document type filter @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 Toggle storage path filter @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + Görünümler Save "" src/app/components/document-list/document-list.component.html - 75 + 76 Kayıt et @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 Farklı kaydet... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {Seçili bir belgeden} other {Seçili , belgeden}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {Bir belge} other { belgeler}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (filtrelenmiş) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 Error while loading documents + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 Belgeyi düzenle @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 "" adlı görünüm başarı ile kayıt edildi. @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 adlı görünüm başarı ile oluşturuldu. @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 Filtreleri sıfırla @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 Correspondent: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 Muhabiri olmayan @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 Type: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 Belge türü olmayan @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 Tag: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 Herhangi bir etiket olmayan @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 Başlık: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 Başlık & İçerik @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 Gelişmiş arama @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 Benzeri gibi @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 eşittir @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 boş @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 boş değil @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 greater than @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 less than @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 Kenar çubuğunda göster @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 Kontrol paneli'nde göster @@ -3470,11 +4060,63 @@ The error returned was + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 ek yazar @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 ek yazarlar @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 Last used @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 "" muhabirini gerçekten silmek istiyor musunuz? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 document type @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 document types @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 "" belge türünü gerçekten silmek istiyor musunuz? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 Otomatik + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 Do you really want to delete the ? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 İlişkilendirilmiş belgeler silinmeyecektir. @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 Error while deleting element: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ Kapanışta uygula - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ Bu, kontrol panodaki belge işleme durumuyla ilgili tüm iletileri bastırır. + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 Görünür @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 Kaydedilmiş görünüm tanımlanmadı. @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 adlı görünüm silindi. @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 Settings saved @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 Settings were saved successfully. @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 Settings were saved successfully. Reload is required to apply some changes. @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 Şimdi yenile @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 Sistem dilini kullan @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 Görüntüleme dilinin tarih formatını kullan @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 Error while storing settings on server: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 storage path @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 storage paths @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 Do you really want to delete the storage path ""? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 etiket @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 etiketler @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 "" olan etiketi gerçekten silmek istiyormusunuz? @@ -4330,16 +5140,6 @@ Clear selection - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 Dismiss @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 Failed  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 Complete  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 Started  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 Queued  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 Dismiss selected @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 Dismiss all @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 Confirm Dismiss All @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 tasks? @@ -4460,11 +5260,19 @@ 404 Sayfa Bulunamadı + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + Otomatik mod: Eşleşmeyi otomatik olarak öğrenir + Any word src/app/data/matching-model.ts - 14 + 20 Herhangi bir kelime @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 Herhangi biri: Belge bu sözcüklerden herhangi birini içerir (boşlukla ayrılmış olarak) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 Tüm Kelimeler @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 Tümü: Belge bu sözcüklerin tümünü içerir (boşlukla ayrılmış olarak) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 Tam eşleşme @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 Tam: Belge bu ifadeyi içerir @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 Düzenli ifade @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 Düzenli ifade: Belge bu düzenli ifade ile eşleşir @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 Fuzzy Kelime @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 Fuzzy: Belge bu kelimeye benzer bir ifade içerir - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - Otomatik mod: Eşleşmeyi otomatik olarak öğrenir + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 Kaydedilmemiş değişiklikler @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 Kaydedilmemiş değişiklikleriniz var. @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 You have unsaved changes to the document @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 Bu belgeyi kapatmak istediğinizden emin misin? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 Belgeyi kapat @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 Tüm belgeleri kapatmak istediğinizden emin misiniz? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 Belgeleri kapat @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query Puanı ara @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 İngilizce (Birleşik Devletler) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 Belarusça + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 Çekçe @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 Danca @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 Almanca @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 İngilizce (GB) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 İspanyolca @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 Fransızca @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 İtalyanca @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 Lüksemburgca @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 Hollandaca @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 Polonyaca @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 Portekizce (Brezilya) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 Portekizce @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 Romence @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 Rusça @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 Slovakça @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 Sırpça @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 İsveççe @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 Türkçe @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 Basitleştirilmiş Çince @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 Successfully completed one-time migratration of settings to the database! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 Unable to migrate settings to the database, please try saving manually. @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 Bilgi @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 Bağlaniyor... @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 Yükleniyor... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 Yükleme tamamlanmıştır, bekliyor... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP hatası: diff --git a/src-ui/src/locale/messages.zh_CN.xlf b/src-ui/src/locale/messages.zh_CN.xlf index 92db9ad04..3bef9c845 100644 --- a/src-ui/src/locale/messages.zh_CN.xlf +++ b/src-ui/src/locale/messages.zh_CN.xlf @@ -290,7 +290,11 @@ Document added src/app/app.component.ts - 78 + 90 + + + src/app/app.component.ts + 100 文档已添加 @@ -298,7 +302,11 @@ Document was added to paperless. src/app/app.component.ts - 80 + 92 + + + src/app/app.component.ts + 102 文档 已添加到 paperless-ngx。 @@ -306,11 +314,11 @@ Open document src/app/app.component.ts - 81 + 93 src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html - 45 + 46 打开文档 @@ -318,7 +326,7 @@ Could not add : src/app/app.component.ts - 97 + 116 无法添加 : @@ -326,7 +334,7 @@ New document detected src/app/app.component.ts - 112 + 131 检测到新文档 @@ -334,7 +342,7 @@ Document is being processed by paperless. src/app/app.component.ts - 114 + 133 文档 正在被 paperless 处理中。 @@ -342,7 +350,7 @@ Prev src/app/app.component.ts - 119 + 138 Prev @@ -350,7 +358,7 @@ Next src/app/app.component.ts - 120 + 139 src/app/components/document-detail/document-detail.component.html @@ -362,7 +370,7 @@ End src/app/app.component.ts - 121 + 140 End @@ -370,7 +378,7 @@ The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. src/app/app.component.ts - 126 + 145 The dashboard can be used to show saved views, such as an 'Inbox'. Those settings are found under Settings > Saved Views once you have created some. @@ -378,7 +386,7 @@ Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. src/app/app.component.ts - 136 + 155 Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms. @@ -386,7 +394,7 @@ The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. src/app/app.component.ts - 145 + 165 The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar. @@ -394,7 +402,7 @@ The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. src/app/app.component.ts - 157 + 178 The filtering tools allow you to quickly find documents using various searches, dates, tags, etc. @@ -402,7 +410,7 @@ Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. src/app/app.component.ts - 167 + 189 Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar. @@ -410,7 +418,7 @@ Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. src/app/app.component.ts - 176 + 199 Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view. @@ -418,7 +426,7 @@ File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. src/app/app.component.ts - 185 + 209 File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process. @@ -426,7 +434,7 @@ Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. src/app/app.component.ts - 194 + 219 Check out the settings for various tweaks to the web app, toggle settings for saved views or setup e-mail checking. @@ -434,7 +442,7 @@ Thank you! 🙏 src/app/app.component.ts - 203 + 229 Thank you! 🙏 @@ -442,7 +450,7 @@ There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. src/app/app.component.ts - 205 + 231 There are <em>tons</em> more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues. @@ -450,7 +458,7 @@ Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! src/app/app.component.ts - 207 + 233 Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx! @@ -458,7 +466,7 @@ Initiating upload... src/app/app.component.ts - 256 + 288 正在初始化上传... @@ -495,16 +503,20 @@ src/app/components/app-frame/app-frame.component.html - 171 + 174 src/app/components/app-frame/app-frame.component.html - 174 + 177 src/app/components/manage/settings/settings.component.html 1 + + src/app/components/manage/settings/settings.component.html + 192 + 设置 @@ -543,7 +555,7 @@ src/app/components/document-list/document-list.component.ts - 88 + 97 src/app/components/manage/management-list/management-list.component.html @@ -579,7 +591,7 @@ Open documents src/app/components/app-frame/app-frame.component.html - 99 + 101 打开文档 @@ -587,11 +599,11 @@ Close all src/app/components/app-frame/app-frame.component.html - 115 + 117 src/app/components/app-frame/app-frame.component.html - 118 + 120 全部关闭 @@ -599,7 +611,7 @@ Manage src/app/components/app-frame/app-frame.component.html - 124 + 127 管理 @@ -607,11 +619,11 @@ Correspondents src/app/components/app-frame/app-frame.component.html - 128 + 131 src/app/components/app-frame/app-frame.component.html - 131 + 134 联系人 @@ -619,11 +631,11 @@ Tags src/app/components/app-frame/app-frame.component.html - 135 + 138 src/app/components/app-frame/app-frame.component.html - 138 + 141 src/app/components/common/input/tags/tags.component.html @@ -643,11 +655,11 @@ Document types src/app/components/app-frame/app-frame.component.html - 142 + 145 src/app/components/app-frame/app-frame.component.html - 145 + 148 文档类型 @@ -655,11 +667,11 @@ Storage paths src/app/components/app-frame/app-frame.component.html - 149 + 152 src/app/components/app-frame/app-frame.component.html - 152 + 155 保存路径 @@ -667,7 +679,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 156 + 159 src/app/components/manage/tasks/tasks.component.html @@ -679,7 +691,7 @@ File Tasks src/app/components/app-frame/app-frame.component.html - 160 + 163 File Tasks @@ -687,11 +699,11 @@ Logs src/app/components/app-frame/app-frame.component.html - 164 + 167 src/app/components/app-frame/app-frame.component.html - 167 + 170 src/app/components/manage/logs/logs.component.html @@ -703,7 +715,7 @@ Info src/app/components/app-frame/app-frame.component.html - 180 + 183 src/app/components/manage/tasks/tasks.component.html @@ -715,11 +727,11 @@ Documentation src/app/components/app-frame/app-frame.component.html - 184 + 187 src/app/components/app-frame/app-frame.component.html - 187 + 190 帮助文档 @@ -727,11 +739,11 @@ GitHub src/app/components/app-frame/app-frame.component.html - 192 + 195 src/app/components/app-frame/app-frame.component.html - 195 + 198 GitHub @@ -739,11 +751,11 @@ Suggest an idea src/app/components/app-frame/app-frame.component.html - 197 + 200 src/app/components/app-frame/app-frame.component.html - 201 + 204 提出建议 @@ -751,7 +763,7 @@ is available. src/app/components/app-frame/app-frame.component.html - 210 + 213 可用 @@ -759,7 +771,7 @@ Click to view. src/app/components/app-frame/app-frame.component.html - 210 + 213 点击查看 @@ -767,7 +779,7 @@ Paperless-ngx can automatically check for updates src/app/components/app-frame/app-frame.component.html - 214 + 217 Paperless-ngx can automatically check for updates @@ -775,7 +787,7 @@ How does this work? src/app/components/app-frame/app-frame.component.html - 221,223 + 224,226 How does this work? @@ -783,7 +795,7 @@ Update available src/app/components/app-frame/app-frame.component.html - 232 + 235 有可用更新 @@ -791,11 +803,11 @@ An error occurred while saving settings. src/app/components/app-frame/app-frame.component.ts - 83 + 89 src/app/components/manage/settings/settings.component.ts - 492 + 593 保存设置时发生错误。 @@ -803,7 +815,7 @@ An error occurred while saving update checking settings. src/app/components/app-frame/app-frame.component.ts - 216 + 222 An error occurred while saving update checking settings. @@ -846,20 +858,24 @@ 32 - src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 279 + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 21 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 319 + 324 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 357 + 364 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 395 + 402 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.ts + 440 确认 @@ -915,11 +931,15 @@ Name src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 8 + 9 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html - 9 + 10 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 10 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html @@ -931,7 +951,7 @@ src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 13 + 9 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -975,15 +995,23 @@ src/app/components/manage/settings/settings.component.html - 196 + 204 src/app/components/manage/settings/settings.component.html - 248 + 257 src/app/components/manage/settings/settings.component.html - 283 + 294 + + + src/app/components/manage/settings/settings.component.html + 345 + + + src/app/components/manage/settings/settings.component.html + 379 src/app/components/manage/tasks/tasks.component.html @@ -995,15 +1023,15 @@ Matching algorithm src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 9 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 10 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 11 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 15 + 11 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1015,15 +1043,15 @@ Matching pattern src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 10 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 11 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 12 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 16 + 12 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1035,15 +1063,15 @@ Case insensitive src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 11 - - - src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html 12 + + src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 13 + src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 17 + 13 src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html @@ -1055,19 +1083,23 @@ Cancel src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 14 + 20 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 22 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 16 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 23 + 34 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 38 + 39 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1075,7 +1107,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 18 + 23 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 35 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 20 src/app/components/common/select-dialog/select-dialog.component.html @@ -1095,19 +1135,23 @@ Save src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html - 15 + 21 src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.html + 23 + + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html 17 src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 24 + 35 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 39 + 40 src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html @@ -1115,11 +1159,15 @@ src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.html - 19 + 24 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 36 src/app/components/document-detail/document-detail.component.html - 185 + 196 src/app/components/document-list/save-view-config-dialog/save-view-config-dialog.component.html @@ -1127,7 +1175,7 @@ src/app/components/manage/settings/settings.component.html - 317 + 415 保存 @@ -1135,7 +1183,7 @@ Create new correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 20 + 25 创建新的联系人 @@ -1143,7 +1191,7 @@ Edit correspondent src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.ts - 24 + 29 编辑联系人 @@ -1151,7 +1199,7 @@ Create new document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 20 + 25 创建新文档类型 @@ -1159,7 +1207,7 @@ Edit document type src/app/components/common/edit-dialog/document-type-edit-dialog/document-type-edit-dialog.component.ts - 24 + 29 编辑文档类型 @@ -1167,7 +1215,7 @@ Create new item src/app/components/common/edit-dialog/edit-dialog.component.ts - 49 + 71 创建新项目 @@ -1175,7 +1223,7 @@ Edit item src/app/components/common/edit-dialog/edit-dialog.component.ts - 53 + 75 编辑项目 @@ -1183,10 +1231,50 @@ Could not save element: src/app/components/common/edit-dialog/edit-dialog.component.ts - 57 + 79 无法保存元素: + + Permissions + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html + 11 + + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 30 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 2 + + + src/app/components/document-detail/document-detail.component.html + 182 + + + src/app/components/document-list/bulk-editor/bulk-editor.component.html + 81 + + Permissions + + + Create new user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 24 + + Create new user group + + + Edit user group + + src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.ts + 28 + + Edit user group + IMAP Server @@ -1217,6 +1305,14 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 16 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 10 + + + src/app/components/manage/settings/settings.component.html + 344 + Username @@ -1225,21 +1321,93 @@ src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html 17 + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 12 + Password + + Password is token + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Password is token + + + Check if the password above is a token used for authentication + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 18 + + Check if the password above is a token used for authentication + Character Set src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html - 18 + 19 Character Set + + Loading... + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 30 + + + src/app/components/common/permissions-dialog/permissions-dialog.component.html + 18 + + + src/app/components/dashboard/dashboard.component.html + 26 + + + src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html + 7 + + + src/app/components/document-list/document-list.component.html + 95 + + + src/app/components/manage/settings/settings.component.html + 230 + + + src/app/components/manage/settings/settings.component.html + 320 + + + src/app/components/manage/settings/settings.component.html + 406 + + + src/app/components/manage/tasks/tasks.component.html + 19 + + + src/app/components/manage/tasks/tasks.component.html + 27 + + 加载中... + + + Test + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.html + 32 + + Test + No encryption src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 12 + 13 No encryption @@ -1247,7 +1415,7 @@ SSL src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 13 + 14 SSL @@ -1255,7 +1423,7 @@ STARTTLS src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 14 + 15 STARTTLS @@ -1263,7 +1431,7 @@ Create new mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 28 + 39 Create new mail account @@ -1271,10 +1439,26 @@ Edit mail account src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts - 32 + 43 Edit mail account + + Successfully connected to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 88 + + Successfully connected to the mail server + + + Unable to connect to the mail server + + src/app/components/common/edit-dialog/mail-account-edit-dialog/mail-account-edit-dialog.component.ts + 89 + + Unable to connect to the mail server + Account @@ -1283,7 +1467,7 @@ src/app/components/manage/settings/settings.component.html - 284 + 295 Account @@ -1359,11 +1543,19 @@ Filter from + + Filter to + + src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html + 21 + + Filter to + Filter subject src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 21 + 22 Filter subject @@ -1371,7 +1563,7 @@ Filter body src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 22 + 23 Filter body @@ -1379,7 +1571,7 @@ Filter attachment filename src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Filter attachment filename @@ -1387,7 +1579,7 @@ Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 23 + 24 Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive. @@ -1395,7 +1587,7 @@ Action src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action @@ -1403,7 +1595,7 @@ Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 26 + 27 Action is only performed when documents are consumed from the mail. Mails without attachments remain entirely untouched. @@ -1411,7 +1603,7 @@ Action parameter src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 27 + 28 Action parameter @@ -1419,7 +1611,7 @@ Assign title from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 28 + 29 Assign title from @@ -1427,7 +1619,7 @@ Assign document type src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 30 + 31 Assign document type @@ -1435,7 +1627,7 @@ Assign correspondent from src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 31 + 32 Assign correspondent from @@ -1443,7 +1635,7 @@ Assign correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 32 + 33 Assign correspondent @@ -1451,11 +1643,11 @@ Error src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html - 37 + 38 src/app/services/toast.service.ts - 32 + 35 错误 @@ -1463,11 +1655,11 @@ Only process attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 25 + 26 src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 36 + 37 Only process attachments @@ -1475,7 +1667,7 @@ Process all files, including 'inline' attachments src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 29 + 30 Process all files, including 'inline' attachments @@ -1483,7 +1675,7 @@ Process message as .eml src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 40 + 41 Process message as .eml @@ -1491,7 +1683,7 @@ Process message as .eml and attachments separately src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 44 + 45 Process message as .eml and attachments separately @@ -1499,7 +1691,11 @@ Delete src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 51 + 52 + + + src/app/components/common/permissions-select/permissions-select.component.html + 9 src/app/components/document-detail/document-detail.component.html @@ -1507,7 +1703,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 126 + 141 src/app/components/manage/management-list/management-list.component.html @@ -1543,19 +1739,27 @@ src/app/components/manage/management-list/management-list.component.ts - 181 + 213 src/app/components/manage/settings/settings.component.html - 214 + 222 src/app/components/manage/settings/settings.component.html - 261 + 270 src/app/components/manage/settings/settings.component.html - 296 + 307 + + + src/app/components/manage/settings/settings.component.html + 359 + + + src/app/components/manage/settings/settings.component.html + 394 删除 @@ -1563,7 +1767,7 @@ Move to specified folder src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 55 + 56 Move to specified folder @@ -1571,7 +1775,7 @@ Mark as read, don't process read mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 59 + 60 Mark as read, don't process read mails @@ -1579,7 +1783,7 @@ Flag the mail, don't process flagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 63 + 64 Flag the mail, don't process flagged mails @@ -1587,7 +1791,7 @@ Tag the mail with specified tag, don't process tagged mails src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 67 + 68 Tag the mail with specified tag, don't process tagged mails @@ -1595,7 +1799,7 @@ Use subject as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 74 + 75 Use subject as title @@ -1603,7 +1807,7 @@ Use attachment filename as title src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 78 + 79 Use attachment filename as title @@ -1611,7 +1815,7 @@ Do not assign a correspondent src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 85 + 86 Do not assign a correspondent @@ -1619,7 +1823,7 @@ Use mail address src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 89 + 90 Use mail address @@ -1627,7 +1831,7 @@ Use name (or mail address if not available) src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 93 + 94 Use name (or mail address if not available) @@ -1635,7 +1839,7 @@ Use correspondent selected below src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 97 + 98 Use correspondent selected below @@ -1643,7 +1847,7 @@ Create new mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 137 + 139 Create new mail rule @@ -1651,27 +1855,19 @@ Edit mail rule src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts - 141 + 143 Edit mail rule - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - - src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 10 - - Note that editing a path does not apply changes to stored files until you have run the 'document_renamer' utility. See the documentation. - Path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.html - 14 + 10 src/app/components/manage/storage-path-list/storage-path-list.component.ts - 35 + 42 路径 @@ -1679,7 +1875,7 @@ e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 21 + 26 例如: @@ -1687,7 +1883,7 @@ or use slashes to add directories e.g. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 23 + 28 或者使用斜线来添加目录,例如 @@ -1695,7 +1891,7 @@ See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 25 + 30 See <a target="_blank" href="https://docs.paperless-ngx.com/advanced_usage/#file-name-handling">documentation</a> for full list. @@ -1703,7 +1899,7 @@ Create new storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 30 + 35 创建新的存储路径 @@ -1711,7 +1907,7 @@ Edit storage path src/app/components/common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component.ts - 34 + 39 编辑存储位置 @@ -1723,7 +1919,7 @@ src/app/components/manage/tag-list/tag-list.component.ts - 35 + 42 颜色 @@ -1747,7 +1943,7 @@ Create new tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 21 + 26 创建新标签 @@ -1755,16 +1951,104 @@ Edit tag src/app/components/common/edit-dialog/tag-edit-dialog/tag-edit-dialog.component.ts - 25 + 30 编辑标签 + + Email + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 11 + + Email + + + First name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 13 + + First name + + + Last name + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 14 + + Last name + + + Active + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 19 + + Active + + + Superuser + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + Superuser + + + (Grants all permissions and can view objects) + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 23 + + (Grants all permissions and can view objects) + + + Groups + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html + 27 + + + src/app/components/manage/settings/settings.component.html + 346 + + + src/app/components/manage/settings/settings.component.html + 367 + + Groups + + + Create new user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 42 + + Create new user account + + + Edit user account + + src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts + 46 + + Edit user account + All src/app/components/common/filterable-dropdown/filterable-dropdown.component.html 16 + + src/app/components/common/permissions-select/permissions-select.component.html + 6 + + + src/app/components/common/permissions-select/permissions-select.component.html + 17 + src/app/components/document-list/bulk-editor/bulk-editor.component.html 20 @@ -1779,11 +2063,27 @@ 所有 + + Include + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 24 + + Include + + + Exclude + + src/app/components/common/filterable-dropdown/filterable-dropdown.component.html + 26 + + Exclude + Apply src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 32 + 40 应用 @@ -1791,7 +2091,7 @@ Click again to exclude items. src/app/components/common/filterable-dropdown/filterable-dropdown.component.html - 38 + 46 再次单击以排除项目。 @@ -1799,7 +2099,7 @@ Not assigned src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts - 261 + 335 Filter drop down element to filter for documents with no correspondent/type/tag assigned 未分配 @@ -1820,31 +2120,245 @@ src/app/components/common/input/select/select.component.html - 30 + 32 src/app/components/common/input/tags/tags.component.html - 42 + 43 建议: + + Edit Permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 7 + + Edit Permissions + + + Owner: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 19 + + Owner: + + + Objects without an owner can be viewed and edited by all users + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 25 + + Objects without an owner can be viewed and edited by all users + + + View + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 27 + + + src/app/components/common/permissions-select/permissions-select.component.html + 10 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 56 + + 查看 + + + Users: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 31 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 50 + + Users: + + + Groups: + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 39 + + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 58 + + Groups: + + + Edit + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 46 + + + src/app/components/document-list/document-card-large/document-card-large.component.html + 49 + + + src/app/components/document-list/document-card-small/document-card-small.component.html + 78 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 45 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/management-list/management-list.component.html + 59 + + + src/app/components/manage/settings/settings.component.html + 269 + + + src/app/components/manage/settings/settings.component.html + 306 + + + src/app/components/manage/settings/settings.component.html + 358 + + + src/app/components/manage/settings/settings.component.html + 393 + + 编辑 + + + Edit permissions also grant viewing permissions + + src/app/components/common/input/permissions/permissions-form/permissions-form.component.html + 64 + + Edit permissions also grant viewing permissions + Add item src/app/components/common/input/select/select.component.html - 11 + 12 Used for both types, correspondents, storage paths 添加项 + + Private + + src/app/components/common/input/select/select.component.ts + 57 + + + src/app/components/common/tag/tag.component.html + 7 + + + src/app/components/common/tag/tag.component.html + 8 + + Private + Add tag src/app/components/common/input/tags/tags.component.html - 11 + 12 添加标签 + + Set Permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 26 + + Set Permissions + + + Note that permissions set here will override any existing permissions + + src/app/components/common/permissions-dialog/permissions-dialog.component.ts + 43 + + Note that permissions set here will override any existing permissions + + + Type + + src/app/components/common/permissions-select/permissions-select.component.html + 5 + + Type + + + Add + + src/app/components/common/permissions-select/permissions-select.component.html + 7 + + Add + + + Change + + src/app/components/common/permissions-select/permissions-select.component.html + 8 + + Change + + + + + + + src/app/components/common/permissions-select/permissions-select.component.html + 22 + + + src/app/components/manage/tasks/tasks.component.html + 11 + + + + + Inherited from group + + src/app/components/common/permissions-select/permissions-select.component.ts + 62 + + Inherited from group + Select @@ -1869,43 +2383,11 @@ 请选择一个对象 - - Loading... - - src/app/components/dashboard/dashboard.component.html - 26 - - - src/app/components/dashboard/widgets/widget-frame/widget-frame.component.html - 7 - - - src/app/components/document-list/document-list.component.html - 93 - - - src/app/components/manage/settings/settings.component.html - 222 - - - src/app/components/manage/settings/settings.component.html - 308 - - - src/app/components/manage/tasks/tasks.component.html - 19 - - - src/app/components/manage/tasks/tasks.component.html - 27 - - 加载中... - Hello , welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 18 + 36 Hello , welcome to Paperless-ngx @@ -1913,7 +2395,7 @@ Welcome to Paperless-ngx src/app/components/dashboard/dashboard.component.ts - 20 + 38 Welcome to Paperless-ngx @@ -1937,11 +2419,11 @@ src/app/components/document-list/document-list.component.html - 157 + 172 src/app/components/document-list/filter-editor/filter-editor.component.html - 59 + 63 src/app/components/manage/tasks/tasks.component.html @@ -1965,11 +2447,11 @@ src/app/components/document-list/document-list.component.html - 139 + 144 src/app/components/document-list/filter-editor/filter-editor.component.ts - 153 + 172 src/app/services/rest/document.service.ts @@ -1985,21 +2467,53 @@ 统计 - - Documents in inbox: - - src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html - 3 - - 收件箱中的文档: - - - Total documents: + + Go to inbox src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 4 - 文档总数: + Go to inbox + + + Documents in inbox + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 5 + + Documents in inbox + + + Go to documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 8 + + Go to documents + + + Total documents + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 9 + + Total documents + + + Total characters + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html + 13 + + Total characters + + + Other + + src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.ts + 55 + + Other Upload new documents @@ -2047,7 +2561,7 @@ Processing: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 36 + 39 正在处理: @@ -2055,7 +2569,7 @@ Failed: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 39 + 42 失败: @@ -2063,7 +2577,7 @@ Added: src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 42 + 45 已添加: @@ -2071,11 +2585,11 @@ , src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts - 45 + 48 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 224 + 269 this string is used to separate processing, failed and added on the file upload widget , @@ -2128,46 +2642,6 @@ 正在以ASN搜索文档 - - Enter comment - - src/app/components/document-comments/document-comments.component.html - 4 - - Enter comment - - - Please enter a comment. - - src/app/components/document-comments/document-comments.component.html - 5,7 - - Please enter a comment. - - - Add comment - - src/app/components/document-comments/document-comments.component.html - 11 - - Add comment - - - Error saving comment: - - src/app/components/document-comments/document-comments.component.ts - 68 - - Error saving comment: - - - Error deleting comment: - - src/app/components/document-comments/document-comments.component.ts - 83 - - Error deleting comment: - Page @@ -2196,7 +2670,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 90 + 105 src/app/components/document-list/document-card-large/document-card-large.component.html @@ -2204,7 +2678,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html - 86 + 94 下载 @@ -2224,7 +2698,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 77 + 92 重新 OCR @@ -2248,7 +2722,7 @@ src/app/guards/dirty-saved-view.guard.ts - 32 + 40 关闭 @@ -2292,15 +2766,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 38 + 40 src/app/components/document-list/document-list.component.html - 133 + 137 src/app/components/document-list/filter-editor/filter-editor.component.html - 35 + 36 src/app/services/rest/document.service.ts @@ -2316,15 +2790,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 47 + 51 src/app/components/document-list/document-list.component.html - 145 + 158 src/app/components/document-list/filter-editor/filter-editor.component.html - 42 + 44 src/app/services/rest/document.service.ts @@ -2340,15 +2814,15 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html - 56 + 62 src/app/components/document-list/document-list.component.html - 151 + 165 src/app/components/document-list/filter-editor/filter-editor.component.html - 49 + 52 保存路径 @@ -2468,6 +2942,14 @@ 归档文档元数据 + + Preview + + src/app/components/document-detail/document-detail.component.html + 151 + + Preview + Enter Password @@ -2476,27 +2958,23 @@ src/app/components/document-detail/document-detail.component.html - 203 + 215 输入密码 - - Comments + + Notes src/app/components/document-detail/document-detail.component.html - 174 + 175,176 - - src/app/components/manage/settings/settings.component.html - 159 - - Comments + Notes Discard src/app/components/document-detail/document-detail.component.html - 183 + 194 放弃 @@ -2504,19 +2982,67 @@ Save & next src/app/components/document-detail/document-detail.component.html - 184 + 195 保存 & 下一个 + + An error occurred loading content: + + src/app/components/document-detail/document-detail.component.ts + 226,228 + + An error occurred loading content: + + + Error retrieving metadata + + src/app/components/document-detail/document-detail.component.ts + 354 + + Error retrieving metadata + + + Error retrieving suggestions + + src/app/components/document-detail/document-detail.component.ts + 374 + + Error retrieving suggestions + + + Document saved successfully. + + src/app/components/document-detail/document-detail.component.ts + 484 + + + src/app/components/document-detail/document-detail.component.ts + 492 + + Document saved successfully. + + + Error saving document + + src/app/components/document-detail/document-detail.component.ts + 497 + + + src/app/components/document-detail/document-detail.component.ts + 542 + + Error saving document + Confirm delete src/app/components/document-detail/document-detail.component.ts - 453 + 571 src/app/components/manage/management-list/management-list.component.ts - 177 + 209 确认删除 @@ -2524,7 +3050,7 @@ Do you really want to delete document ""? src/app/components/document-detail/document-detail.component.ts - 454 + 572 您真的想要删除文档 “” 吗? @@ -2532,7 +3058,7 @@ The files for this document will be deleted permanently. This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 455 + 573 此文档的文件将被永久删除。此操作无法撤消。 @@ -2540,27 +3066,27 @@ Delete document src/app/components/document-detail/document-detail.component.ts - 457 + 575 删除文档 - Error deleting document: + Error deleting document: src/app/components/document-detail/document-detail.component.ts - 473 + 595,597 - 删除文档时出错: + Error deleting document: Redo OCR confirm src/app/components/document-detail/document-detail.component.ts - 493 + 618 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 454 + 499 确定重新 OCR @@ -2568,7 +3094,7 @@ This operation will permanently redo OCR for this document. src/app/components/document-detail/document-detail.component.ts - 494 + 619 This operation will permanently redo OCR for this document. @@ -2576,23 +3102,31 @@ This operation cannot be undone. src/app/components/document-detail/document-detail.component.ts - 495 + 620 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 417 + 462 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 456 + 501 src/app/components/manage/settings/settings.component.ts - 576 + 688 src/app/components/manage/settings/settings.component.ts - 635 + 742 + + + src/app/components/manage/settings/settings.component.ts + 803 + + + src/app/components/manage/settings/settings.component.ts + 862 此操作无法撤消。 @@ -2600,19 +3134,27 @@ Proceed src/app/components/document-detail/document-detail.component.ts - 497 + 622 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 458 + 503 src/app/components/manage/settings/settings.component.ts - 578 + 690 src/app/components/manage/settings/settings.component.ts - 637 + 744 + + + src/app/components/manage/settings/settings.component.ts + 805 + + + src/app/components/manage/settings/settings.component.ts + 864 继续操作 @@ -2620,7 +3162,7 @@ Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. src/app/components/document-detail/document-detail.component.ts - 505 + 630 Redo OCR operation will begin in the background. Close and re-open or reload this document after the operation has completed to see new content. @@ -2628,7 +3170,7 @@ Error executing operation: src/app/components/document-detail/document-detail.component.ts - 516,518 + 641,643 Error executing operation: @@ -2664,11 +3206,11 @@ Filter correspondents src/app/components/document-list/bulk-editor/bulk-editor.component.html - 39 + 41 src/app/components/document-list/filter-editor/filter-editor.component.html - 36 + 37 过滤联系人 @@ -2676,11 +3218,11 @@ Filter document types src/app/components/document-list/bulk-editor/bulk-editor.component.html - 48 + 52 src/app/components/document-list/filter-editor/filter-editor.component.html - 43 + 45 过滤文档类型 @@ -2688,11 +3230,11 @@ Filter storage paths src/app/components/document-list/bulk-editor/bulk-editor.component.html - 57 + 63 src/app/components/document-list/filter-editor/filter-editor.component.html - 50 + 53 筛选存储路径 @@ -2700,7 +3242,7 @@ Actions src/app/components/document-list/bulk-editor/bulk-editor.component.html - 74 + 89 src/app/components/manage/management-list/management-list.component.html @@ -2720,15 +3262,23 @@ src/app/components/manage/settings/settings.component.html - 213 + 221 src/app/components/manage/settings/settings.component.html - 250 + 259 src/app/components/manage/settings/settings.component.html - 285 + 296 + + + src/app/components/manage/settings/settings.component.html + 347 + + + src/app/components/manage/settings/settings.component.html + 382 src/app/components/manage/tasks/tasks.component.html @@ -2740,7 +3290,7 @@ Include: src/app/components/document-list/bulk-editor/bulk-editor.component.html - 96 + 111 Include: @@ -2748,7 +3298,7 @@ Archived files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 100,102 + 115,117 Archived files @@ -2756,7 +3306,7 @@ Original files src/app/components/document-list/bulk-editor/bulk-editor.component.html - 106,108 + 121,123 Original files @@ -2764,7 +3314,7 @@ Use formatted filename src/app/components/document-list/bulk-editor/bulk-editor.component.html - 113,115 + 128,130 Use formatted filename @@ -2772,7 +3322,7 @@ Error executing bulk operation: src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 144,146 + 185,187 执行批量操作时出错: @@ -2780,11 +3330,11 @@ "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 216 + 261 src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 222 + 267 @@ -2792,7 +3342,7 @@ "" and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 218 + 263 This is for messages like 'modify "tag1" and "tag2"' @@ -2801,7 +3351,7 @@ and "" src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 226,228 + 271,273 this is for messages like 'modify "tag1", "tag2" and "tag3"' @@ -2810,7 +3360,7 @@ Confirm tags assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 243 + 288 确认标签分配 @@ -2818,7 +3368,7 @@ This operation will add the tag "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 249 + 294 此操作将把标签“”添加到 个选定的文档。 @@ -2826,7 +3376,7 @@ This operation will add the tags to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 254,256 + 299,301 此操作将添加标签 选定的文档。 @@ -2834,7 +3384,7 @@ This operation will remove the tag "" from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 262 + 307 此操作将从 个选定的文档中移除标签“”。 @@ -2842,7 +3392,7 @@ This operation will remove the tags from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 267,269 + 312,314 此操作将从 选定的文档中删除标签 @@ -2850,7 +3400,7 @@ This operation will add the tags and remove the tags on selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 271,275 + 316,320 此操作将添加标签 并删除选定文档 上的标签 @@ -2858,7 +3408,7 @@ Confirm correspondent assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 312 + 357 确认联系人分配 @@ -2866,7 +3416,7 @@ This operation will assign the correspondent "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 314 + 359 此操作将分配联系人 "" 到 个选定的文档。 @@ -2874,7 +3424,7 @@ This operation will remove the correspondent from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 316 + 361 此操作将从 个选定文档中移除联系人。 @@ -2882,7 +3432,7 @@ Confirm document type assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 350 + 395 确认文件类型分配 @@ -2890,7 +3440,7 @@ This operation will assign the document type "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 352 + 397 此操作将把文档类型 " 分配到 个选定的文档。 @@ -2898,7 +3448,7 @@ This operation will remove the document type from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 354 + 399 此操作将从 个选定文档中删除文档类型。 @@ -2906,7 +3456,7 @@ Confirm storage path assignment src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 388 + 433 确认存储路径分配 @@ -2914,7 +3464,7 @@ This operation will assign the storage path "" to selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 390 + 435 此操作将将存储路径" 分配给 选定的文档。 @@ -2922,7 +3472,7 @@ This operation will remove the storage path from selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 392 + 437 此操作将从 选定文档中移除存储路径。 @@ -2930,7 +3480,7 @@ Delete confirm src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 415 + 460 删除确认 @@ -2938,7 +3488,7 @@ This operation will permanently delete selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 416 + 461 此操作将永久删除 个选定的文档。 @@ -2946,7 +3496,7 @@ Delete document(s) src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 419 + 464 删除文档 @@ -2954,7 +3504,7 @@ This operation will permanently redo OCR for selected document(s). src/app/components/document-list/bulk-editor/bulk-editor.component.ts - 455 + 500 此操作将永久重新 OCR 个选定的文档。 @@ -2966,7 +3516,7 @@ src/app/components/document-list/document-list.component.html - 178 + 194 按联系人过滤 @@ -2978,79 +3528,35 @@ src/app/components/document-list/document-list.component.html - 183 + 199 按标签过滤 - - Edit + + View notes src/app/components/document-list/document-card-large/document-card-large.component.html - 49 - - - src/app/components/document-list/document-card-small/document-card-small.component.html 70 - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 45 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/management-list/management-list.component.html - 59 - - - src/app/components/manage/settings/settings.component.html - 260 - - - src/app/components/manage/settings/settings.component.html - 295 - - 编辑 + View notes - - View + + Notes src/app/components/document-list/document-card-large/document-card-large.component.html - 56 + 74 - 查看 + Notes Filter by document type src/app/components/document-list/document-card-large/document-card-large.component.html - 69 + 76 src/app/components/document-list/document-list.component.html - 187 + 212 按文档类型筛选 @@ -3058,11 +3564,11 @@ Filter by storage path src/app/components/document-list/document-card-large/document-card-large.component.html - 76 + 83 src/app/components/document-list/document-list.component.html - 192 + 217 按存储路径筛选 @@ -3070,11 +3576,11 @@ Created: src/app/components/document-list/document-card-large/document-card-large.component.html - 91,92 + 98,99 src/app/components/document-list/document-card-small/document-card-small.component.html - 48,49 + 56,57 创建: @@ -3082,11 +3588,11 @@ Added: src/app/components/document-list/document-card-large/document-card-large.component.html - 92,93 + 99,100 src/app/components/document-list/document-card-small/document-card-small.component.html - 49,50 + 57,58 已添加: @@ -3094,11 +3600,11 @@ Modified: src/app/components/document-list/document-card-large/document-card-large.component.html - 93,94 + 100,101 src/app/components/document-list/document-card-small/document-card-small.component.html - 50,51 + 58,59 已修改: @@ -3106,7 +3612,7 @@ Score: src/app/components/document-list/document-card-large/document-card-large.component.html - 104 + 110 分数: @@ -3122,7 +3628,7 @@ Toggle correspondent filter src/app/components/document-list/document-card-small/document-card-small.component.html - 24 + 32 切换联系人筛选器 @@ -3130,7 +3636,7 @@ Toggle document type filter src/app/components/document-list/document-card-small/document-card-small.component.html - 31 + 39 切换文档类型筛选器 @@ -3138,7 +3644,7 @@ Toggle storage path filter src/app/components/document-list/document-card-small/document-card-small.component.html - 38 + 46 切换存储路径筛选。 @@ -3180,13 +3686,17 @@ src/app/components/document-list/document-list.component.html 64 + + src/app/components/manage/settings/settings.component.html + 199 + 视图 Save "" src/app/components/document-list/document-list.component.html - 75 + 76 保存 @@ -3194,7 +3704,7 @@ Save as... src/app/components/document-list/document-list.component.html - 76 + 78 另存为... @@ -3202,7 +3712,7 @@ {VAR_PLURAL, plural, =1 {Selected of one document} other {Selected of documents}} src/app/components/document-list/document-list.component.html - 95 + 97 {VAR_PLURAL, plural, =1 {已选择 一个文档} other {已选择 文档}} @@ -3210,7 +3720,7 @@ {VAR_PLURAL, plural, =1 {One document} other { documents}} src/app/components/document-list/document-list.component.html - 97 + 99 {VAR_PLURAL, plural, =1 {一个文档} other { 文档}} @@ -3218,7 +3728,7 @@ (filtered) src/app/components/document-list/document-list.component.html - 97 + 99 (已过滤) @@ -3226,19 +3736,27 @@ Error while loading documents src/app/components/document-list/document-list.component.html - 110 + 112 加载文档时出错 + + Sort by ASN + + src/app/components/document-list/document-list.component.html + 126 + + Sort by ASN + ASN src/app/components/document-list/document-list.component.html - 128,127 + 131,130 src/app/components/document-list/filter-editor/filter-editor.component.ts - 158 + 177 src/app/services/rest/document.service.ts @@ -3246,15 +3764,87 @@ ASN + + Sort by correspondent + + src/app/components/document-list/document-list.component.html + 133 + + Sort by correspondent + + + Sort by title + + src/app/components/document-list/document-list.component.html + 140 + + Sort by title + + + Sort by notes + + src/app/components/document-list/document-list.component.html + 147 + + Sort by notes + + + Notes + + src/app/components/document-list/document-list.component.html + 151 + + + src/app/components/manage/settings/settings.component.html + 159 + + + src/app/services/rest/document.service.ts + 25 + + Notes + + + Sort by document type + + src/app/components/document-list/document-list.component.html + 154 + + Sort by document type + + + Sort by storage path + + src/app/components/document-list/document-list.component.html + 161 + + Sort by storage path + + + Sort by created date + + src/app/components/document-list/document-list.component.html + 168 + + Sort by created date + + + Sort by added date + + src/app/components/document-list/document-list.component.html + 175 + + Sort by added date + Added src/app/components/document-list/document-list.component.html - 163 + 179 src/app/components/document-list/filter-editor/filter-editor.component.html - 65 + 69 src/app/services/rest/document.service.ts @@ -3266,7 +3856,7 @@ Edit document src/app/components/document-list/document-list.component.html - 182 + 198 编辑文档 @@ -3274,7 +3864,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 196 + 205 视图保存成功。 @@ -3282,7 +3872,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 237 + 246 视图:创建成功。 @@ -3290,7 +3880,7 @@ Reset filters src/app/components/document-list/filter-editor/filter-editor.component.html - 78 + 82 重置过滤器 @@ -3298,7 +3888,7 @@ Correspondent: src/app/components/document-list/filter-editor/filter-editor.component.ts - 94,96 + 108,110 联系人: @@ -3306,7 +3896,7 @@ Without correspondent src/app/components/document-list/filter-editor/filter-editor.component.ts - 98 + 112 没有联系人 @@ -3314,7 +3904,7 @@ Type: src/app/components/document-list/filter-editor/filter-editor.component.ts - 103,105 + 117,119 类型: @@ -3322,7 +3912,7 @@ Without document type src/app/components/document-list/filter-editor/filter-editor.component.ts - 107 + 121 没有文档类型 @@ -3330,7 +3920,7 @@ Tag: src/app/components/document-list/filter-editor/filter-editor.component.ts - 111,113 + 125,127 标签: @@ -3338,7 +3928,7 @@ Without any tag src/app/components/document-list/filter-editor/filter-editor.component.ts - 117 + 131 没有任何标签 @@ -3346,7 +3936,7 @@ Title: src/app/components/document-list/filter-editor/filter-editor.component.ts - 121 + 135 标题: @@ -3354,7 +3944,7 @@ ASN: src/app/components/document-list/filter-editor/filter-editor.component.ts - 124 + 138 ASN: @@ -3362,7 +3952,7 @@ Title & content src/app/components/document-list/filter-editor/filter-editor.component.ts - 156 + 175 标题 & 内容 @@ -3370,7 +3960,7 @@ Advanced search src/app/components/document-list/filter-editor/filter-editor.component.ts - 161 + 180 高级搜索 @@ -3378,7 +3968,7 @@ More like src/app/components/document-list/filter-editor/filter-editor.component.ts - 167 + 186 更多 @@ -3386,7 +3976,7 @@ equals src/app/components/document-list/filter-editor/filter-editor.component.ts - 186 + 205 等于 @@ -3394,7 +3984,7 @@ is empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 190 + 209 为空 @@ -3402,7 +3992,7 @@ is not empty src/app/components/document-list/filter-editor/filter-editor.component.ts - 194 + 213 不为空 @@ -3410,7 +4000,7 @@ greater than src/app/components/document-list/filter-editor/filter-editor.component.ts - 198 + 217 高于 @@ -3418,7 +4008,7 @@ less than src/app/components/document-list/filter-editor/filter-editor.component.ts - 202 + 221 低于 @@ -3438,7 +4028,7 @@ src/app/components/manage/settings/settings.component.html - 208 + 216 在侧边栏显示 @@ -3450,7 +4040,7 @@ src/app/components/manage/settings/settings.component.html - 204 + 212 在仪表板上显示 @@ -3470,11 +4060,63 @@ 返回的错误为 + + Enter note + + src/app/components/document-notes/document-notes.component.html + 4 + + Enter note + + + Please enter a note. + + src/app/components/document-notes/document-notes.component.html + 5,7 + + Please enter a note. + + + Add note + + src/app/components/document-notes/document-notes.component.html + 11 + + Add note + + + Delete note + + src/app/components/document-notes/document-notes.component.html + 21 + + + src/app/components/document-notes/document-notes.component.html + 25 + + Delete note + + + Error saving note: + + src/app/components/document-notes/document-notes.component.ts + 65 + + Error saving note: + + + Error deleting note: + + src/app/components/document-notes/document-notes.component.ts + 81 + + Error deleting note: + correspondent src/app/components/manage/correspondent-list/correspondent-list.component.ts - 33 + 39 联系人 @@ -3482,7 +4124,7 @@ correspondents src/app/components/manage/correspondent-list/correspondent-list.component.ts - 34 + 40 联系人 @@ -3490,7 +4132,7 @@ Last used src/app/components/manage/correspondent-list/correspondent-list.component.ts - 38 + 45 最后使用 @@ -3498,7 +4140,7 @@ Do you really want to delete the correspondent ""? src/app/components/manage/correspondent-list/correspondent-list.component.ts - 48 + 55 您真的想要删除联系人" "吗? @@ -3506,7 +4148,7 @@ document type src/app/components/manage/document-type-list/document-type-list.component.ts - 30 + 36 文档类型 @@ -3514,7 +4156,7 @@ document types src/app/components/manage/document-type-list/document-type-list.component.ts - 31 + 37 文档类型 @@ -3522,7 +4164,7 @@ Do you really want to delete the document type ""? src/app/components/manage/document-type-list/document-type-list.component.ts - 37 + 44 您真的想要删除文档类型" "吗? @@ -3650,35 +4292,59 @@ Automatic src/app/components/manage/management-list/management-list.component.ts - 87 + 100 src/app/data/matching-model.ts - 39 + 15 自动 + + None + + src/app/components/manage/management-list/management-list.component.ts + 102 + + + src/app/data/matching-model.ts + 45 + + None + + + Error occurred while creating : . + + src/app/components/manage/management-list/management-list.component.ts + 142 + + + src/app/components/manage/management-list/management-list.component.ts + 153,155 + + Error occurred while creating : . + Successfully created . src/app/components/manage/management-list/management-list.component.ts - 127 + 147 Successfully created . - - Error occurred while creating : . + + Error occurred while saving . src/app/components/manage/management-list/management-list.component.ts - 132,134 + 174,176 - Error occurred while creating : . + Error occurred while saving . Successfully updated . src/app/components/manage/management-list/management-list.component.ts - 150 + 181 Successfully updated . @@ -3686,7 +4352,7 @@ Error occurred while saving : . src/app/components/manage/management-list/management-list.component.ts - 155,157 + 187,189 Error occurred while saving : . @@ -3694,7 +4360,7 @@ Do you really want to delete the ? src/app/components/manage/management-list/management-list.component.ts - 164 + 196 您真的想要删除 吗? @@ -3702,7 +4368,7 @@ Associated documents will not be deleted. src/app/components/manage/management-list/management-list.component.ts - 179 + 211 已关联的文档将不会被删除。 @@ -3710,7 +4376,7 @@ Error while deleting element: src/app/components/manage/management-list/management-list.component.ts - 192,194 + 224,226 删除元素时出错: @@ -3906,13 +4572,13 @@ Update checking - - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. src/app/components/manage/settings/settings.component.html 140,142 - Update checking works by pinging the the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. + Update checking works by pinging the public Github API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. No tracking data is collected by the app in any way. @@ -3970,13 +4636,13 @@ 关闭时应用 - - Enable comments + + Enable notes src/app/components/manage/settings/settings.component.html 163 - Enable comments + Enable notes Notifications @@ -4034,11 +4700,19 @@ 这将禁止仪表盘上所有有关文件处理状态的消息。 + + Show warning when closing saved views with unsaved changes + + src/app/components/manage/settings/settings.component.html + 195 + + Show warning when closing saved views with unsaved changes + Appears on src/app/components/manage/settings/settings.component.html - 201 + 209 出现于 @@ -4046,7 +4720,7 @@ No saved views defined. src/app/components/manage/settings/settings.component.html - 218 + 226 未定义保存的视图。 @@ -4054,7 +4728,7 @@ Mail src/app/components/manage/settings/settings.component.html - 232,231 + 240,239 Mail @@ -4062,7 +4736,7 @@ Mail accounts src/app/components/manage/settings/settings.component.html - 236 + 245 Mail accounts @@ -4070,7 +4744,7 @@ Add Account src/app/components/manage/settings/settings.component.html - 241 + 250 Add Account @@ -4078,7 +4752,7 @@ Server src/app/components/manage/settings/settings.component.html - 249 + 258 Server @@ -4086,7 +4760,7 @@ No mail accounts defined. src/app/components/manage/settings/settings.component.html - 267 + 276 No mail accounts defined. @@ -4094,7 +4768,7 @@ Mail rules src/app/components/manage/settings/settings.component.html - 271 + 282 Mail rules @@ -4102,7 +4776,7 @@ Add Rule src/app/components/manage/settings/settings.component.html - 276 + 287 Add Rule @@ -4110,15 +4784,47 @@ No mail rules defined. src/app/components/manage/settings/settings.component.html - 302 + 313 No mail rules defined. + + Users & Groups + + src/app/components/manage/settings/settings.component.html + 327 + + Users & Groups + + + Users + + src/app/components/manage/settings/settings.component.html + 332 + + Users + + + Add User + + src/app/components/manage/settings/settings.component.html + 337 + + Add User + + + Add Group + + src/app/components/manage/settings/settings.component.html + 372 + + Add Group + Saved view "" deleted. src/app/components/manage/settings/settings.component.ts - 383 + 475 保存的视图已删除。 @@ -4126,7 +4832,7 @@ Settings saved src/app/components/manage/settings/settings.component.ts - 476 + 577 设置已保存 @@ -4134,7 +4840,7 @@ Settings were saved successfully. src/app/components/manage/settings/settings.component.ts - 477 + 578 设置保存成功 @@ -4142,7 +4848,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/manage/settings/settings.component.ts - 481 + 582 设置已成功保存。需要重新加载以应用某些更改。 @@ -4150,7 +4856,7 @@ Reload now src/app/components/manage/settings/settings.component.ts - 482 + 583 立即重载 @@ -4158,7 +4864,7 @@ Use system language src/app/components/manage/settings/settings.component.ts - 500 + 601 使用系统语言 @@ -4166,7 +4872,7 @@ Use date format of display language src/app/components/manage/settings/settings.component.ts - 507 + 608 使用显示语言的日期格式 @@ -4174,15 +4880,119 @@ Error while storing settings on server: src/app/components/manage/settings/settings.component.ts - 527,529 + 628,630 在服务器上存储设置时出错: + + Password has been changed, you will be logged out momentarily. + + src/app/components/manage/settings/settings.component.ts + 659 + + Password has been changed, you will be logged out momentarily. + + + Saved user "". + + src/app/components/manage/settings/settings.component.ts + 666 + + Saved user "". + + + Error saving user: . + + src/app/components/manage/settings/settings.component.ts + 676 + + Error saving user: . + + + Confirm delete user account + + src/app/components/manage/settings/settings.component.ts + 686 + + Confirm delete user account + + + This operation will permanently delete this user account. + + src/app/components/manage/settings/settings.component.ts + 687 + + This operation will permanently delete this user account. + + + Deleted user + + src/app/components/manage/settings/settings.component.ts + 696 + + Deleted user + + + Error deleting user: . + + src/app/components/manage/settings/settings.component.ts + 704 + + Error deleting user: . + + + Saved group "". + + src/app/components/manage/settings/settings.component.ts + 722 + + Saved group "". + + + Error saving group: . + + src/app/components/manage/settings/settings.component.ts + 730 + + Error saving group: . + + + Confirm delete user group + + src/app/components/manage/settings/settings.component.ts + 740 + + Confirm delete user group + + + This operation will permanently delete this user group. + + src/app/components/manage/settings/settings.component.ts + 741 + + This operation will permanently delete this user group. + + + Deleted group + + src/app/components/manage/settings/settings.component.ts + 750 + + Deleted group + + + Error deleting group: . + + src/app/components/manage/settings/settings.component.ts + 758 + + Error deleting group: . + Saved account "". src/app/components/manage/settings/settings.component.ts - 554 + 781 Saved account "". @@ -4190,7 +5000,7 @@ Error saving account: . src/app/components/manage/settings/settings.component.ts - 564 + 791 Error saving account: . @@ -4198,7 +5008,7 @@ Confirm delete mail account src/app/components/manage/settings/settings.component.ts - 574 + 801 Confirm delete mail account @@ -4206,7 +5016,7 @@ This operation will permanently delete this mail account. src/app/components/manage/settings/settings.component.ts - 575 + 802 This operation will permanently delete this mail account. @@ -4214,7 +5024,7 @@ Deleted mail account src/app/components/manage/settings/settings.component.ts - 584 + 811 Deleted mail account @@ -4222,7 +5032,7 @@ Error deleting mail account: . src/app/components/manage/settings/settings.component.ts - 593 + 820 Error deleting mail account: . @@ -4230,7 +5040,7 @@ Saved rule "". src/app/components/manage/settings/settings.component.ts - 612 + 839 Saved rule "". @@ -4238,7 +5048,7 @@ Error saving rule: . src/app/components/manage/settings/settings.component.ts - 623 + 850 Error saving rule: . @@ -4246,7 +5056,7 @@ Confirm delete mail rule src/app/components/manage/settings/settings.component.ts - 633 + 860 Confirm delete mail rule @@ -4254,7 +5064,7 @@ This operation will permanently delete this mail rule. src/app/components/manage/settings/settings.component.ts - 634 + 861 This operation will permanently delete this mail rule. @@ -4262,7 +5072,7 @@ Deleted mail rule src/app/components/manage/settings/settings.component.ts - 643 + 870 Deleted mail rule @@ -4270,7 +5080,7 @@ Error deleting mail rule: . src/app/components/manage/settings/settings.component.ts - 652 + 879 Error deleting mail rule: . @@ -4278,7 +5088,7 @@ storage path src/app/components/manage/storage-path-list/storage-path-list.component.ts - 30 + 36 保存路径 @@ -4286,7 +5096,7 @@ storage paths src/app/components/manage/storage-path-list/storage-path-list.component.ts - 31 + 37 保存路径 @@ -4294,7 +5104,7 @@ Do you really want to delete the storage path ""? src/app/components/manage/storage-path-list/storage-path-list.component.ts - 45 + 52 您真的想要删除存储路径“ ”吗? @@ -4302,7 +5112,7 @@ tag src/app/components/manage/tag-list/tag-list.component.ts - 30 + 36 标签 @@ -4310,7 +5120,7 @@ tags src/app/components/manage/tag-list/tag-list.component.ts - 31 + 37 标签 @@ -4318,7 +5128,7 @@ Do you really want to delete the tag ""? src/app/components/manage/tag-list/tag-list.component.ts - 46 + 53 您真的想要删除标签“ ”吗? @@ -4330,16 +5140,6 @@ 清除选定内容 - - - - - - src/app/components/manage/tasks/tasks.component.html - 11 - - - Refresh @@ -4372,7 +5172,7 @@ src/app/components/manage/tasks/tasks.component.ts - 56 + 62 关闭 @@ -4380,7 +5180,7 @@ Open Document src/app/components/manage/tasks/tasks.component.html - 86 + 87 Open Document @@ -4388,7 +5188,7 @@ Failed  src/app/components/manage/tasks/tasks.component.html - 103 + 105 失败  @@ -4396,7 +5196,7 @@ Complete  src/app/components/manage/tasks/tasks.component.html - 109 + 111 完成  @@ -4404,7 +5204,7 @@ Started  src/app/components/manage/tasks/tasks.component.html - 115 + 117 开始  @@ -4412,7 +5212,7 @@ Queued  src/app/components/manage/tasks/tasks.component.html - 121 + 123 排队  @@ -4420,7 +5220,7 @@ Dismiss selected src/app/components/manage/tasks/tasks.component.ts - 22 + 26 取消选择 @@ -4428,11 +5228,11 @@ Dismiss all src/app/components/manage/tasks/tasks.component.ts - 23 + 27 src/app/components/manage/tasks/tasks.component.ts - 54 + 60 取消所有 @@ -4440,7 +5240,7 @@ Confirm Dismiss All src/app/components/manage/tasks/tasks.component.ts - 52 + 58 确认取消所有 @@ -4448,7 +5248,7 @@ tasks? src/app/components/manage/tasks/tasks.component.ts - 54 + 60 任务? @@ -4460,11 +5260,19 @@ 404 页面未找到 + + Auto: Learn matching automatically + + src/app/data/matching-model.ts + 16 + + 自动:自动学习匹配 + Any word src/app/data/matching-model.ts - 14 + 20 任意单词 @@ -4472,7 +5280,7 @@ Any: Document contains any of these words (space separated) src/app/data/matching-model.ts - 15 + 21 任意:文档包含其中任何一个单词(空格分隔) @@ -4480,7 +5288,7 @@ All words src/app/data/matching-model.ts - 19 + 25 所有单词 @@ -4488,7 +5296,7 @@ All: Document contains all of these words (space separated) src/app/data/matching-model.ts - 20 + 26 全部: 文档包含所有这些单词(空格分隔) @@ -4496,7 +5304,7 @@ Exact match src/app/data/matching-model.ts - 24 + 30 精确匹配 @@ -4504,7 +5312,7 @@ Exact: Document contains this string src/app/data/matching-model.ts - 25 + 31 精确:文档中包含此字符串 @@ -4512,7 +5320,7 @@ Regular expression src/app/data/matching-model.ts - 29 + 35 正则表达式 @@ -4520,7 +5328,7 @@ Regular expression: Document matches this regular expression src/app/data/matching-model.ts - 30 + 36 正则表达式:文档匹配此正则表达式 @@ -4528,7 +5336,7 @@ Fuzzy word src/app/data/matching-model.ts - 34 + 40 模糊单词 @@ -4536,17 +5344,17 @@ Fuzzy: Document contains a word similar to this word src/app/data/matching-model.ts - 35 + 41 模糊:文档包含一个类似于此单词的单词 - - Auto: Learn matching automatically + + None: Disable matching src/app/data/matching-model.ts - 40 + 46 - 自动:自动学习匹配 + None: Disable matching Warning: You have unsaved changes to your document(s). @@ -4564,15 +5372,15 @@ src/app/guards/dirty-saved-view.guard.ts - 24 + 32 src/app/services/open-documents.service.ts - 103 + 104 src/app/services/open-documents.service.ts - 130 + 131 未保存的更改 @@ -4584,7 +5392,7 @@ src/app/services/open-documents.service.ts - 131 + 132 您有尚未保存的更改。 @@ -4608,7 +5416,7 @@ You have unsaved changes to the saved view src/app/guards/dirty-saved-view.guard.ts - 26 + 34 You have unsaved changes to the saved view @@ -4616,7 +5424,7 @@ Are you sure you want to close this saved view? src/app/guards/dirty-saved-view.guard.ts - 30 + 38 Are you sure you want to close this saved view? @@ -4624,10 +5432,18 @@ Save and close src/app/guards/dirty-saved-view.guard.ts - 34 + 42 Save and close + + You don't have permissions to do that + + src/app/guards/permissions.guard.ts + 35 + + You don't have permissions to do that + (no title) @@ -4772,7 +5588,7 @@ You have unsaved changes to the document src/app/services/open-documents.service.ts - 105 + 106 您对此文档的修改未保存 @@ -4780,7 +5596,7 @@ Are you sure you want to close this document? src/app/services/open-documents.service.ts - 109 + 110 您确定要关闭此文档吗? @@ -4788,7 +5604,7 @@ Close document src/app/services/open-documents.service.ts - 111 + 112 关闭文档 @@ -4796,7 +5612,7 @@ Are you sure you want to close all documents? src/app/services/open-documents.service.ts - 132 + 133 您确定要关闭所有文档吗? @@ -4804,7 +5620,7 @@ Close documents src/app/services/open-documents.service.ts - 134 + 135 关闭文档 @@ -4820,7 +5636,7 @@ Search score src/app/services/rest/document.service.ts - 31 + 32 Score is a value returned by the full text search engine and specifies how well a result matches the given query 搜索分数 @@ -4829,7 +5645,7 @@ English (US) src/app/services/settings.service.ts - 145 + 159 英语(美国) @@ -4837,7 +5653,7 @@ Arabic src/app/services/settings.service.ts - 151 + 165 Arabic @@ -4845,15 +5661,23 @@ Belarusian src/app/services/settings.service.ts - 157 + 171 白俄罗斯语 + + Catalan + + src/app/services/settings.service.ts + 177 + + Catalan + Czech src/app/services/settings.service.ts - 163 + 183 捷克语 @@ -4861,7 +5685,7 @@ Danish src/app/services/settings.service.ts - 169 + 189 丹麦语 @@ -4869,7 +5693,7 @@ German src/app/services/settings.service.ts - 175 + 195 德语 @@ -4877,7 +5701,7 @@ English (GB) src/app/services/settings.service.ts - 181 + 201 英语(英国) @@ -4885,7 +5709,7 @@ Spanish src/app/services/settings.service.ts - 187 + 207 西班牙语 @@ -4893,7 +5717,7 @@ French src/app/services/settings.service.ts - 193 + 213 法语 @@ -4901,7 +5725,7 @@ Italian src/app/services/settings.service.ts - 199 + 219 意大利语 @@ -4909,7 +5733,7 @@ Luxembourgish src/app/services/settings.service.ts - 205 + 225 卢森堡语 @@ -4917,7 +5741,7 @@ Dutch src/app/services/settings.service.ts - 211 + 231 荷兰语 @@ -4925,7 +5749,7 @@ Polish src/app/services/settings.service.ts - 217 + 237 波兰语 @@ -4933,7 +5757,7 @@ Portuguese (Brazil) src/app/services/settings.service.ts - 223 + 243 葡萄牙语 (巴西) @@ -4941,7 +5765,7 @@ Portuguese src/app/services/settings.service.ts - 229 + 249 葡萄牙语 @@ -4949,7 +5773,7 @@ Romanian src/app/services/settings.service.ts - 235 + 255 罗马尼亚语 @@ -4957,7 +5781,7 @@ Russian src/app/services/settings.service.ts - 241 + 261 俄语 @@ -4965,7 +5789,7 @@ Slovenian src/app/services/settings.service.ts - 247 + 267 斯洛文尼亚语 @@ -4973,7 +5797,7 @@ Serbian src/app/services/settings.service.ts - 253 + 273 塞尔维亚语 @@ -4981,7 +5805,7 @@ Swedish src/app/services/settings.service.ts - 259 + 279 瑞典语 @@ -4989,7 +5813,7 @@ Turkish src/app/services/settings.service.ts - 265 + 285 土耳其语 @@ -4997,7 +5821,7 @@ Chinese Simplified src/app/services/settings.service.ts - 271 + 291 简体中文 @@ -5005,7 +5829,7 @@ ISO 8601 src/app/services/settings.service.ts - 288 + 308 ISO 8601 @@ -5013,7 +5837,7 @@ Successfully completed one-time migratration of settings to the database! src/app/services/settings.service.ts - 399 + 419 成功完成设置一次性迁移到数据库! @@ -5021,7 +5845,7 @@ Unable to migrate settings to the database, please try saving manually. src/app/services/settings.service.ts - 400 + 420 无法将设置迁移到数据库,请尝试手动保存。 @@ -5029,7 +5853,7 @@ Information src/app/services/toast.service.ts - 36 + 43 信息 @@ -5037,7 +5861,7 @@ Connecting... src/app/services/upload-documents.service.ts - 31 + 33 正在连接… @@ -5045,7 +5869,7 @@ Uploading... src/app/services/upload-documents.service.ts - 43 + 45 正在上传... @@ -5053,7 +5877,7 @@ Upload complete, waiting... src/app/services/upload-documents.service.ts - 46 + 48 上传完成,等待... @@ -5061,7 +5885,7 @@ HTTP error: src/app/services/upload-documents.service.ts - 62 + 64 HTTP 错误: diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss index 7c67e3cf5..63fa58028 100644 --- a/src-ui/src/styles.scss +++ b/src-ui/src/styles.scss @@ -255,6 +255,7 @@ a, a:hover, .paperless-input-tags { .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value { background-color: transparent; + border-color: transparent; } .ng-select.ng-select-multiple .ng-select-container .ng-value-container { @@ -435,6 +436,12 @@ textarea, height: 12px; } +.metadata-icon { + width: 0.9rem; + height: 0.9rem; + padding: 0.05rem; +} + table.table { color: var(--bs-body-color); @@ -607,3 +614,22 @@ a.badge { code { color: var(--pngx-body-color-accent) } + +.accordion { + --bs-accordion-btn-padding-x: 0.75rem; + --bs-accordion-btn-padding-y: 0.375rem; + --bs-accordion-btn-bg: var(--bs-light); + --bs-accordion-btn-color: var(--bs-primary); + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-light); + --bs-accordion-active-color: var(--bs-primary); + --bs-accordion-active-bg: var(--pngx-bg-alt); +} + +.accordion-button::after { + filter: invert(0.5) saturate(0); +} + +.me-1px { + margin-right: 1px !important; +} diff --git a/src-ui/src/theme.scss b/src-ui/src/theme.scss index a6273eaba..0e750f555 100644 --- a/src-ui/src/theme.scss +++ b/src-ui/src/theme.scss @@ -16,6 +16,7 @@ body { --pngx-primary-darken-15: hsl(var(--pngx-primary), calc(var(--pngx-primary-lightness) - 15%)); --pngx-primary-darken-18: hsl(var(--pngx-primary), calc(var(--pngx-primary-lightness) - 18%)); --pngx-primary-darken-27: hsl(var(--pngx-primary), calc(var(--pngx-primary-lightness) - 27%)); + --pngx-success-darken-10: hsl(152, 69%, 11%); // based on success #198754 --pngx-bg-alt: #fff; --pngx-bg-darker: var(--bs-gray-100); --pngx-focus-alpha: 0.3; @@ -133,6 +134,14 @@ $form-check-radio-checked-bg-image-dark: url("data:image/svg+xml, bool: +def supported_file_type(mime_type: str) -> bool: """ Determines if the file is valid for barcode processing, based on MIME type and settings @@ -83,69 +82,68 @@ def barcode_reader(image: Image) -> List[str]: 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 + if settings.CONSUMER_BARCODE_SCANNER == "PYZBAR": + logger.debug("Scanning for barcodes using PYZBAR") + from pyzbar import pyzbar + + # 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}", + ) + elif settings.CONSUMER_BARCODE_SCANNER == "ZXING": + logger.debug("Scanning for barcodes using ZXING") + import zxingcpp + + detected_barcodes = zxingcpp.read_barcodes(image) for barcode in detected_barcodes: - if barcode.data: - decoded_barcode = barcode.data.decode("utf-8") - barcodes.append(decoded_barcode) + if barcode.text: + barcodes.append(barcode.text) logger.debug( - f"Barcode of type {str(barcode.type)} found: {decoded_barcode}", + f"Barcode of type {str(barcode.format)} found: {barcode.text}", ) + 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: +def convert_from_tiff_to_pdf(filepath: Path) -> Path: """ 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.", + newpath = Path(tempdir) / Path(filepath.name).with_suffix(".pdf") + + with Image.open(filepath) as im: + has_alpha_layer = im.mode in ("RGBA", "LA") + if has_alpha_layer: + run( + [ + settings.CONVERT_BINARY, + "-alpha", + "off", + filepath, + filepath, + ], ) - 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: # pragma: no cover - logger.warning( - f"Could not save the file as pdf. Error: {str(e)}", - ) - return None + with filepath.open("rb") as img_file, newpath.open("wb") as pdf_file: + pdf_file.write(img2pdf.convert(img_file)) return newpath def scan_file_for_barcodes( - filepath: str, + filepath: Path, + mime_type: str, ) -> DocumentBarcodeInfo: """ Scan the provided pdf file for any barcodes @@ -170,7 +168,6 @@ def scan_file_for_barcodes( return detected_barcodes pdf_filepath = None - mime_type = get_file_mime_type(filepath) barcodes = [] if supported_file_type(mime_type): @@ -252,7 +249,7 @@ def get_asn_from_barcodes(barcodes: List[Barcode]) -> Optional[int]: return asn -def separate_pages(filepath: str, pages_to_split_on: Dict[int, bool]) -> List[str]: +def separate_pages(filepath: Path, pages_to_split_on: Dict[int, bool]) -> List[Path]: """ Separate the provided pdf file on the pages_to_split_on. The pages which are defined by the keys in page_numbers @@ -268,8 +265,8 @@ def separate_pages(filepath: str, pages_to_split_on: Dict[int, bool]) -> List[st return document_paths 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] + tempdir = Path(tempfile.mkdtemp(prefix="paperless-", dir=settings.SCRATCH_DIR)) + fname = filepath.with_suffix("").name pdf = Pdf.open(filepath) # Start with an empty document @@ -307,7 +304,7 @@ def separate_pages(filepath: str, pages_to_split_on: Dict[int, bool]) -> List[st output_filename = f"{fname}_document_{doc_idx}.pdf" logger.debug(f"pdf no:{doc_idx} has {len(dst.pages)} pages") - savepath = os.path.join(tempdir, output_filename) + savepath = tempdir / output_filename with open(savepath, "wb") as out: dst.save(out) document_paths.append(savepath) @@ -316,18 +313,18 @@ def separate_pages(filepath: str, pages_to_split_on: Dict[int, bool]) -> List[st def save_to_dir( - filepath: str, + filepath: Path, newname: str = None, - target_dir: str = settings.CONSUMPTION_DIR, + target_dir: Path = settings.CONSUMPTION_DIR, ): """ Copies filepath to target_dir. Optionally rename the file. """ - if os.path.isfile(filepath) and os.path.isdir(target_dir): + if filepath.is_file() and target_dir.is_dir(): dest = target_dir if newname is not None: - dest = os.path.join(dest, newname) + dest = dest / newname shutil.copy(filepath, dest) logging.debug(f"saved {str(filepath)} to {str(dest)}") else: diff --git a/src/documents/bulk_download.py b/src/documents/bulk_download.py index 87d97afcc..ecabd4515 100644 --- a/src/documents/bulk_download.py +++ b/src/documents/bulk_download.py @@ -52,7 +52,7 @@ class BulkArchiveStrategy: return in_archive_path def add_document(self, doc: Document): - raise NotImplementedError() # pragma: no cover + raise NotImplementedError # pragma: no cover class OriginalsOnlyStrategy(BulkArchiveStrategy): diff --git a/src/documents/bulk_edit.py b/src/documents/bulk_edit.py index 663e96809..5908b55c8 100644 --- a/src/documents/bulk_edit.py +++ b/src/documents/bulk_edit.py @@ -5,6 +5,7 @@ from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType from documents.models import StoragePath +from documents.permissions import set_permissions_for_object from documents.tasks import bulk_update_documents from documents.tasks import update_document_archive_file @@ -128,3 +129,19 @@ def redo_ocr(doc_ids): ) return "OK" + + +def set_permissions(doc_ids, set_permissions, owner=None): + + qs = Document.objects.filter(id__in=doc_ids) + + qs.update(owner=owner) + + for doc in qs: + set_permissions_for_object(set_permissions, doc) + + affected_docs = [doc.id for doc in qs] + + bulk_update_documents.delay(document_ids=affected_docs) + + return "OK" diff --git a/src/documents/classifier.py b/src/documents/classifier.py index 2779fad7b..cbb8b1b90 100644 --- a/src/documents/classifier.py +++ b/src/documents/classifier.py @@ -1,10 +1,11 @@ -import hashlib import logging import os import pickle import re -import shutil import warnings +from datetime import datetime +from hashlib import sha256 +from typing import Iterator from typing import List from typing import Optional @@ -50,7 +51,7 @@ def load_classifier() -> Optional["DocumentClassifier"]: except OSError: logger.exception("IO error while loading document classification model") classifier = None - except Exception: + except Exception: # pragma: nocover logger.exception("Unknown error while loading document classification model") classifier = None @@ -61,12 +62,14 @@ class DocumentClassifier: # v7 - Updated scikit-learn package version # v8 - Added storage path classifier - FORMAT_VERSION = 8 + # v9 - Changed from hashing to time/ids for re-train check + FORMAT_VERSION = 9 def __init__(self): - # hash of the training data. used to prevent re-training when the - # training data has not changed. - self.data_hash: Optional[bytes] = None + # last time a document changed and therefore training might be required + self.last_doc_change_time: Optional[datetime] = None + # Hash of primary keys of AUTO matching values last used in training + self.last_auto_type_hash: Optional[bytes] = None self.data_vectorizer = None self.tags_binarizer = None @@ -90,7 +93,9 @@ class DocumentClassifier: ) else: try: - self.data_hash = pickle.load(f) + self.last_doc_change_time = pickle.load(f) + self.last_auto_type_hash = pickle.load(f) + self.data_vectorizer = pickle.load(f) self.tags_binarizer = pickle.load(f) @@ -99,7 +104,7 @@ class DocumentClassifier: self.document_type_classifier = pickle.load(f) self.storage_path_classifier = pickle.load(f) except Exception as err: - raise ClassifierModelCorruptError() from err + raise ClassifierModelCorruptError from err # Check for the warning about unpickling from differing versions # and consider it incompatible @@ -112,15 +117,17 @@ class DocumentClassifier: if issubclass(warning.category, UserWarning): w_msg = str(warning.message) if sk_learn_warning_url in w_msg: - raise IncompatibleClassifierVersionError() + raise IncompatibleClassifierVersionError def save(self): target_file = settings.MODEL_FILE - target_file_temp = settings.MODEL_FILE + ".part" + target_file_temp = settings.MODEL_FILE.with_suffix(".pickle.part") with open(target_file_temp, "wb") as f: pickle.dump(self.FORMAT_VERSION, f) - pickle.dump(self.data_hash, f) + pickle.dump(self.last_doc_change_time, f) + pickle.dump(self.last_auto_type_hash, f) + pickle.dump(self.data_vectorizer, f) pickle.dump(self.tags_binarizer, f) @@ -130,13 +137,19 @@ class DocumentClassifier: pickle.dump(self.document_type_classifier, f) pickle.dump(self.storage_path_classifier, f) - if os.path.isfile(target_file): - os.unlink(target_file) - shutil.move(target_file_temp, target_file) + target_file_temp.rename(target_file) def train(self): - data = [] + # Get non-inbox documents + docs_queryset = Document.objects.exclude( + tags__is_inbox_tag=True, + ) + + # No documents exit to train against + if docs_queryset.count() == 0: + raise ValueError("No training data available.") + labels_tags = [] labels_correspondent = [] labels_document_type = [] @@ -144,26 +157,21 @@ class DocumentClassifier: # Step 1: Extract and preprocess training data from the database. logger.debug("Gathering data from database...") - m = hashlib.sha1() - for doc in Document.objects.order_by("pk").exclude( - tags__is_inbox_tag=True, - ): - preprocessed_content = self.preprocess_content(doc.content) - m.update(preprocessed_content.encode("utf-8")) - data.append(preprocessed_content) + hasher = sha256() + for doc in docs_queryset: y = -1 dt = doc.document_type if dt and dt.matching_algorithm == MatchingModel.MATCH_AUTO: y = dt.pk - m.update(y.to_bytes(4, "little", signed=True)) + hasher.update(y.to_bytes(4, "little", signed=True)) labels_document_type.append(y) y = -1 cor = doc.correspondent if cor and cor.matching_algorithm == MatchingModel.MATCH_AUTO: y = cor.pk - m.update(y.to_bytes(4, "little", signed=True)) + hasher.update(y.to_bytes(4, "little", signed=True)) labels_correspondent.append(y) tags = sorted( @@ -173,28 +181,30 @@ class DocumentClassifier: ) ) for tag in tags: - m.update(tag.to_bytes(4, "little", signed=True)) + hasher.update(tag.to_bytes(4, "little", signed=True)) labels_tags.append(tags) y = -1 - sd = doc.storage_path - if sd and sd.matching_algorithm == MatchingModel.MATCH_AUTO: - y = sd.pk - m.update(y.to_bytes(4, "little", signed=True)) + sp = doc.storage_path + if sp and sp.matching_algorithm == MatchingModel.MATCH_AUTO: + y = sp.pk + hasher.update(y.to_bytes(4, "little", signed=True)) labels_storage_path.append(y) - if not data: - raise ValueError("No training data available.") - - new_data_hash = m.digest() - - if self.data_hash and new_data_hash == self.data_hash: - return False - labels_tags_unique = {tag for tags in labels_tags for tag in tags} num_tags = len(labels_tags_unique) + # Check if retraining is actually required. + # A document has been updated since the classifier was trained + # New auto tags, types, correspondent, storage paths exist + latest_doc_change = docs_queryset.latest("modified").modified + if ( + self.last_doc_change_time is not None + and self.last_doc_change_time >= latest_doc_change + ) and self.last_auto_type_hash == hasher.digest(): + return False + # substract 1 since -1 (null) is also part of the classes. # union with {-1} accounts for cases where all documents have @@ -207,7 +217,7 @@ class DocumentClassifier: logger.debug( "{} documents, {} tag(s), {} correspondent(s), " "{} document type(s). {} storage path(es)".format( - len(data), + docs_queryset.count(), num_tags, num_correspondents, num_document_types, @@ -217,16 +227,26 @@ class DocumentClassifier: from sklearn.feature_extraction.text import CountVectorizer from sklearn.neural_network import MLPClassifier - from sklearn.preprocessing import MultiLabelBinarizer, LabelBinarizer + from sklearn.preprocessing import LabelBinarizer + from sklearn.preprocessing import MultiLabelBinarizer # Step 2: vectorize data logger.debug("Vectorizing data...") + + def content_generator() -> Iterator[str]: + """ + Generates the content for documents, but once at a time + """ + for doc in docs_queryset: + yield self.preprocess_content(doc.content) + self.data_vectorizer = CountVectorizer( analyzer="word", ngram_range=(1, 2), min_df=0.01, ) - data_vectorized = self.data_vectorizer.fit_transform(data) + + data_vectorized = self.data_vectorizer.fit_transform(content_generator()) # See the notes here: # https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html # noqa: 501 @@ -294,11 +314,12 @@ class DocumentClassifier: "There are no storage paths. Not training storage path classifier.", ) - self.data_hash = new_data_hash + self.last_doc_change_time = latest_doc_change + self.last_auto_type_hash = hasher.digest() return True - def preprocess_content(self, content: str) -> str: + def preprocess_content(self, content: str) -> str: # pragma: nocover """ Process to contents of a document, distilling it down into words which are meaningful to the content @@ -341,7 +362,7 @@ class DocumentClassifier: return content - def predict_correspondent(self, content): + def predict_correspondent(self, content: str): if self.correspondent_classifier: X = self.data_vectorizer.transform([self.preprocess_content(content)]) correspondent_id = self.correspondent_classifier.predict(X) @@ -352,7 +373,7 @@ class DocumentClassifier: else: return None - def predict_document_type(self, content): + def predict_document_type(self, content: str): if self.document_type_classifier: X = self.data_vectorizer.transform([self.preprocess_content(content)]) document_type_id = self.document_type_classifier.predict(X) @@ -363,7 +384,7 @@ class DocumentClassifier: else: return None - def predict_tags(self, content): + def predict_tags(self, content: str): from sklearn.utils.multiclass import type_of_target if self.tags_classifier: @@ -384,7 +405,7 @@ class DocumentClassifier: else: return [] - def predict_storage_path(self, content): + def predict_storage_path(self, content: str): if self.storage_path_classifier: X = self.data_vectorizer.transform([self.preprocess_content(content)]) storage_path_id = self.storage_path_classifier.predict(X) diff --git a/src/documents/consumer.py b/src/documents/consumer.py index 6848cf292..12993a750 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -14,6 +14,7 @@ import magic from asgiref.sync import async_to_sync from channels.layers import get_channel_layer from django.conf import settings +from django.contrib.auth.models import User from django.db import transaction from django.db.models import Q from django.utils import timezone @@ -106,6 +107,7 @@ class Consumer(LoggingMixin): self.override_document_type_id = None self.override_asn = None self.task_id = None + self.owner_id = None self.channel_layer = get_channel_layer() @@ -282,7 +284,7 @@ class Consumer(LoggingMixin): def try_consume_file( self, - path, + path: Path, override_filename=None, override_title=None, override_correspondent_id=None, @@ -291,6 +293,7 @@ class Consumer(LoggingMixin): task_id=None, override_created=None, override_asn=None, + override_owner_id=None, ) -> Document: """ Return the document object if it was successfully created. @@ -305,6 +308,7 @@ class Consumer(LoggingMixin): self.task_id = task_id or str(uuid.uuid4()) self.override_created = override_created self.override_asn = override_asn + self.override_owner_id = override_owner_id self._send_progress(0, 100, "STARTING", MESSAGE_NEW_FILE) @@ -580,10 +584,14 @@ class Consumer(LoggingMixin): if self.override_asn: document.archive_serial_number = self.override_asn + if self.override_owner_id: + document.owner = User.objects.get( + pk=self.override_owner_id, + ) + def _write(self, storage_type, source, target): - with open(source, "rb") as read_file: - with open(target, "wb") as write_file: - write_file.write(read_file.read()) + with open(source, "rb") as read_file, open(target, "wb") as write_file: + write_file.write(read_file.read()) def _log_script_outputs(self, completed_process: CompletedProcess): """ diff --git a/src/documents/data_models.py b/src/documents/data_models.py new file mode 100644 index 000000000..f904743d4 --- /dev/null +++ b/src/documents/data_models.py @@ -0,0 +1,62 @@ +import dataclasses +import datetime +import enum +from pathlib import Path +from typing import List +from typing import Optional + +import magic + + +@dataclasses.dataclass +class DocumentMetadataOverrides: + """ + Manages overrides for document fields which normally would + be set from content or matching. All fields default to None, + meaning no override is happening + """ + + filename: Optional[str] = None + title: Optional[str] = None + correspondent_id: Optional[int] = None + document_type_id: Optional[int] = None + tag_ids: Optional[List[int]] = None + created: Optional[datetime.datetime] = None + asn: Optional[int] = None + owner_id: Optional[int] = None + + +class DocumentSource(enum.IntEnum): + """ + The source of an incoming document. May have other uses in the future + """ + + ConsumeFolder = enum.auto() + ApiUpload = enum.auto() + MailFetch = enum.auto() + + +@dataclasses.dataclass +class ConsumableDocument: + """ + Encapsulates an incoming document, either from consume folder, API upload + or mail fetching and certain useful operations on it. + """ + + source: DocumentSource + original_file: Path + mime_type: str = dataclasses.field(init=False, default=None) + + def __post_init__(self): + """ + After a dataclass is initialized, this is called to finalize some data + 1. Make sure the original path is an absolute, fully qualified path + 2. Get the mime type of the file + """ + # Always fully qualify the path first thing + # Just in case, convert to a path if it's a str + self.original_file = Path(self.original_file).resolve() + + # Get the file type once at init + # Note this function isn't called when the object is unpickled + self.mime_type = magic.from_file(self.original_file, mime=True) diff --git a/src/documents/file_handling.py b/src/documents/file_handling.py index 5947fe1b0..c046ae15a 100644 --- a/src/documents/file_handling.py +++ b/src/documents/file_handling.py @@ -1,12 +1,13 @@ import logging import os from collections import defaultdict +from pathlib import PurePath import pathvalidate from django.conf import settings from django.template.defaultfilters import slugify from django.utils import timezone - +from documents.models import Document logger = logging.getLogger("paperless.filehandling") @@ -125,7 +126,12 @@ def generate_unique_filename(doc, archive_filename=False): return new_filename -def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): +def generate_filename( + doc: Document, + counter=0, + append_gpg=True, + archive_filename=False, +): path = "" filename_format = settings.FILENAME_FORMAT @@ -150,13 +156,15 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): replacement_text="-", ) + no_value_default = "-none-" + if doc.correspondent: correspondent = pathvalidate.sanitize_filename( doc.correspondent.name, replacement_text="-", ) else: - correspondent = "-none-" + correspondent = no_value_default if doc.document_type: document_type = pathvalidate.sanitize_filename( @@ -164,12 +172,23 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): replacement_text="-", ) else: - document_type = "-none-" + document_type = no_value_default if doc.archive_serial_number: asn = str(doc.archive_serial_number) else: - asn = "-none-" + asn = no_value_default + + if doc.owner is not None: + owner_username_str = str(doc.owner.username) + else: + owner_username_str = no_value_default + + if doc.original_filename is not None: + # No extension + original_name = PurePath(doc.original_filename).with_suffix("").name + else: + original_name = no_value_default # Convert UTC database datetime to localized date local_added = timezone.localdate(doc.added) @@ -196,6 +215,8 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): asn=asn, tags=tags, tag_list=tag_list, + owner_username=owner_username_str, + original_name=original_name, ).strip() if settings.FILENAME_FORMAT_REMOVE_NONE: diff --git a/src/documents/filters.py b/src/documents/filters.py index d66849e00..271b91108 100644 --- a/src/documents/filters.py +++ b/src/documents/filters.py @@ -2,6 +2,7 @@ from django.db.models import Q from django_filters.rest_framework import BooleanFilter from django_filters.rest_framework import Filter from django_filters.rest_framework import FilterSet +from rest_framework_guardian.filters import ObjectPermissionsFilter from .models import Correspondent from .models import Document @@ -10,6 +11,7 @@ from .models import Log from .models import StoragePath from .models import Tag + CHAR_KWARGS = ["istartswith", "iendswith", "icontains", "iexact"] ID_KWARGS = ["in", "exact"] INT_KWARGS = ["exact", "gt", "gte", "lt", "lte", "isnull"] @@ -34,29 +36,30 @@ class DocumentTypeFilterSet(FilterSet): fields = {"name": CHAR_KWARGS} -class TagsFilter(Filter): - def __init__(self, exclude=False, in_list=False): +class ObjectFilter(Filter): + def __init__(self, exclude=False, in_list=False, field_name=""): super().__init__() self.exclude = exclude self.in_list = in_list + self.field_name = field_name def filter(self, qs, value): if not value: return qs try: - tag_ids = [int(x) for x in value.split(",")] + object_ids = [int(x) for x in value.split(",")] except ValueError: return qs if self.in_list: - qs = qs.filter(tags__id__in=tag_ids).distinct() + qs = qs.filter(**{f"{self.field_name}__id__in": object_ids}).distinct() else: - for tag_id in tag_ids: + for obj_id in object_ids: if self.exclude: - qs = qs.exclude(tags__id=tag_id) + qs = qs.exclude(**{f"{self.field_name}__id": obj_id}) else: - qs = qs.filter(tags__id=tag_id) + qs = qs.filter(**{f"{self.field_name}__id": obj_id}) return qs @@ -88,11 +91,17 @@ class DocumentFilterSet(FilterSet): exclude=True, ) - tags__id__all = TagsFilter() + tags__id__all = ObjectFilter(field_name="tags") - tags__id__none = TagsFilter(exclude=True) + tags__id__none = ObjectFilter(field_name="tags", exclude=True) - tags__id__in = TagsFilter(in_list=True) + tags__id__in = ObjectFilter(field_name="tags", in_list=True) + + correspondent__id__none = ObjectFilter(field_name="correspondent", exclude=True) + + document_type__id__none = ObjectFilter(field_name="document_type", exclude=True) + + storage_path__id__none = ObjectFilter(field_name="storage_path", exclude=True) is_in_inbox = InboxFilter() @@ -134,3 +143,17 @@ class StoragePathFilterSet(FilterSet): "name": CHAR_KWARGS, "path": CHAR_KWARGS, } + + +class ObjectOwnedOrGrantedPermissionsFilter(ObjectPermissionsFilter): + """ + A filter backend that limits results to those where the requesting user + has read object level permissions, owns the objects, or objects without + an owner (for backwards compat) + """ + + def filter_queryset(self, request, queryset, view): + objects_with_perms = super().filter_queryset(request, queryset, view) + objects_owned = queryset.filter(owner=request.user) + objects_unowned = queryset.filter(owner__isnull=True) + return objects_with_perms | objects_owned | objects_unowned diff --git a/src/documents/index.py b/src/documents/index.py index e11708f45..1bf6a921d 100644 --- a/src/documents/index.py +++ b/src/documents/index.py @@ -6,8 +6,9 @@ from contextlib import contextmanager from dateutil.parser import isoparse from django.conf import settings from django.utils import timezone -from documents.models import Comment from documents.models import Document +from documents.models import Note +from guardian.shortcuts import get_users_with_perms from whoosh import classify from whoosh import highlight from whoosh import query @@ -51,7 +52,11 @@ def get_schema(): path=TEXT(sortable=True), path_id=NUMERIC(), has_path=BOOLEAN(), - comments=TEXT(), + notes=TEXT(), + owner=TEXT(), + owner_id=NUMERIC(), + has_owner=BOOLEAN(), + viewer_id=KEYWORD(commas=True), ) @@ -93,7 +98,7 @@ def open_index_searcher(): def update_document(writer: AsyncWriter, doc: Document): tags = ",".join([t.name for t in doc.tags.all()]) tags_ids = ",".join([str(t.id) for t in doc.tags.all()]) - comments = ",".join([str(c.comment) for c in Comment.objects.filter(document=doc)]) + notes = ",".join([str(c.note) for c in Note.objects.filter(document=doc)]) asn = doc.archive_serial_number if asn is not None and ( asn < Document.ARCHIVE_SERIAL_NUMBER_MIN @@ -106,6 +111,11 @@ def update_document(writer: AsyncWriter, doc: Document): f"{Document.ARCHIVE_SERIAL_NUMBER_MAX:,}.", ) asn = 0 + users_with_perms = get_users_with_perms( + doc, + only_with_perms_in=["view_document"], + ) + viewer_ids = ",".join([str(u.id) for u in users_with_perms]) writer.update_document( id=doc.pk, title=doc.title, @@ -126,7 +136,11 @@ def update_document(writer: AsyncWriter, doc: Document): path=doc.storage_path.name if doc.storage_path else None, path_id=doc.storage_path.id if doc.storage_path else None, has_path=doc.storage_path is not None, - comments=comments, + notes=notes, + owner=doc.owner.username if doc.owner else None, + owner_id=doc.owner.id if doc.owner else None, + has_owner=doc.owner is not None, + viewer_id=viewer_ids if viewer_ids else None, ) @@ -150,7 +164,7 @@ def remove_document_from_index(document): class DelayedQuery: def _get_query(self): - raise NotImplementedError() + raise NotImplementedError def _get_query_filter(self): criterias = [] @@ -188,10 +202,17 @@ class DelayedQuery: elif k == "storage_path__isnull": criterias.append(query.Term("has_path", v == "false")) + user_criterias = [query.Term("has_owner", False)] + if "user" in self.query_params: + user_criterias.append(query.Term("owner_id", self.query_params["user"])) + user_criterias.append( + query.Term("viewer_id", str(self.query_params["user"])), + ) if len(criterias) > 0: + criterias.append(query.Or(user_criterias)) return query.And(criterias) else: - return None + return query.Or(user_criterias) def _get_query_sortedby(self): if "ordering" not in self.query_params: @@ -272,7 +293,7 @@ class DelayedFullTextQuery(DelayedQuery): def _get_query(self): q_str = self.query_params["query"] qp = MultifieldParser( - ["content", "title", "correspondent", "tag", "type", "comments"], + ["content", "title", "correspondent", "tag", "type", "notes"], self.searcher.ixreader.schema, ) qp.add_plugin(DateParserPlugin(basedate=timezone.now())) diff --git a/src/documents/management/commands/document_consumer.py b/src/documents/management/commands/document_consumer.py index c3f6bbed4..6cba1ea23 100644 --- a/src/documents/management/commands/document_consumer.py +++ b/src/documents/management/commands/document_consumer.py @@ -1,10 +1,10 @@ import logging import os +from concurrent.futures import ThreadPoolExecutor from fnmatch import filter from pathlib import Path from pathlib import PurePath from threading import Event -from threading import Thread from time import monotonic from time import sleep from typing import Final @@ -13,6 +13,9 @@ from typing import Set from django.conf import settings from django.core.management.base import BaseCommand from django.core.management.base import CommandError +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentMetadataOverrides +from documents.data_models import DocumentSource from documents.models import Tag from documents.parsers import is_file_ext_supported from documents.tasks import consume_file @@ -122,8 +125,11 @@ def _consume(filepath: str) -> None: try: logger.info(f"Adding {filepath} to the task queue.") consume_file.delay( - filepath, - override_tag_ids=list(tag_ids) if tag_ids else None, + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=filepath, + ), + DocumentMetadataOverrides(tag_ids=tag_ids), ) except Exception: # Catch all so that the consumer won't crash. @@ -153,7 +159,7 @@ def _consume_wait_unmodified(file: str) -> None: new_size = stat_data.st_size except FileNotFoundError: logger.debug( - f"File {file} moved while waiting for it to remain " f"unmodified.", + f"File {file} moved while waiting for it to remain unmodified.", ) return if new_mtime == mtime and new_size == size: @@ -168,11 +174,15 @@ def _consume_wait_unmodified(file: str) -> None: class Handler(FileSystemEventHandler): + def __init__(self, pool: ThreadPoolExecutor) -> None: + super().__init__() + self._pool = pool + def on_created(self, event): - Thread(target=_consume_wait_unmodified, args=(event.src_path,)).start() + self._pool.submit(_consume_wait_unmodified, event.src_path) def on_moved(self, event): - Thread(target=_consume_wait_unmodified, args=(event.dest_path,)).start() + self._pool.submit(_consume_wait_unmodified, event.dest_path) class Command(BaseCommand): @@ -246,17 +256,18 @@ class Command(BaseCommand): timeout = self.testing_timeout_s logger.debug(f"Configuring timeout to {timeout}s") - observer = PollingObserver(timeout=settings.CONSUMER_POLLING) - observer.schedule(Handler(), directory, recursive=recursive) - observer.start() - try: - while observer.is_alive(): - observer.join(timeout) - if self.stop_flag.is_set(): - observer.stop() - except KeyboardInterrupt: - observer.stop() - observer.join() + with ThreadPoolExecutor(max_workers=4) as pool: + observer = PollingObserver(timeout=settings.CONSUMER_POLLING) + observer.schedule(Handler(pool), directory, recursive=recursive) + observer.start() + try: + while observer.is_alive(): + observer.join(timeout) + if self.stop_flag.is_set(): + observer.stop() + except KeyboardInterrupt: + observer.stop() + observer.join() def handle_inotify(self, directory, recursive, is_testing: bool): logger.info(f"Using inotify to watch directory for changes: {directory}") @@ -282,10 +293,7 @@ class Command(BaseCommand): while not finished: try: for event in inotify.read(timeout=timeout): - if recursive: - path = inotify.get_path(event.wd) - else: - path = directory + path = inotify.get_path(event.wd) if recursive else directory filepath = os.path.join(path, event.name) notified_files[filepath] = monotonic() diff --git a/src/documents/management/commands/document_create_classifier.py b/src/documents/management/commands/document_create_classifier.py index 9610d50a0..04aa9ab2b 100644 --- a/src/documents/management/commands/document_create_classifier.py +++ b/src/documents/management/commands/document_create_classifier.py @@ -1,6 +1,6 @@ from django.core.management.base import BaseCommand -from ...tasks import train_classifier +from documents.tasks import train_classifier class Command(BaseCommand): diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index fdea8aff6..151868137 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -17,10 +17,10 @@ from django.core.management.base import BaseCommand from django.core.management.base import CommandError from django.db import transaction from django.utils import timezone -from documents.models import Comment from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType +from documents.models import Note from documents.models import SavedView from documents.models import SavedViewFilterRule from documents.models import StoragePath @@ -35,8 +35,8 @@ from paperless.db import GnuPG from paperless_mail.models import MailAccount from paperless_mail.models import MailRule -from ...file_handling import delete_empty_directories -from ...file_handling import generate_filename +from documents.file_handling import delete_empty_directories +from documents.file_handling import generate_filename class Command(BaseCommand): @@ -156,11 +156,13 @@ class Command(BaseCommand): zip_export: bool = options["zip"] # If zipping, save the original target for later and - # get a temporary directory for the target + # get a temporary directory for the target instead temp_dir = None original_target = None if zip_export: original_target = self.target + + os.makedirs(settings.SCRATCH_DIR, exist_ok=True) temp_dir = tempfile.TemporaryDirectory( dir=settings.SCRATCH_DIR, prefix="paperless-export", @@ -204,7 +206,7 @@ class Command(BaseCommand): self.files_in_export_dir.add(x.resolve()) # 2. Create manifest, containing all correspondents, types, tags, storage paths - # comments, documents and ui_settings + # note, documents and ui_settings with transaction.atomic(): manifest = json.loads( serializers.serialize("json", Correspondent.objects.all()), @@ -220,11 +222,11 @@ class Command(BaseCommand): serializers.serialize("json", StoragePath.objects.all()), ) - comments = json.loads( - serializers.serialize("json", Comment.objects.all()), + notes = json.loads( + serializers.serialize("json", Note.objects.all()), ) if not self.split_manifest: - manifest += comments + manifest += notes documents = Document.objects.order_by("id") document_map = {d.pk: d for d in documents} @@ -357,7 +359,7 @@ class Command(BaseCommand): content += list( filter( lambda d: d["fields"]["document"] == document_dict["pk"], - comments, + notes, ), ) manifest_name.write_text(json.dumps(content, indent=2)) @@ -401,9 +403,10 @@ class Command(BaseCommand): if self.compare_checksums and source_checksum: target_checksum = hashlib.md5(target.read_bytes()).hexdigest() perform_copy = target_checksum != source_checksum - elif source_stat.st_mtime != target_stat.st_mtime: - perform_copy = True - elif source_stat.st_size != target_stat.st_size: + elif ( + source_stat.st_mtime != target_stat.st_mtime + or source_stat.st_size != target_stat.st_size + ): perform_copy = True else: # Copy if it does not exist diff --git a/src/documents/management/commands/document_importer.py b/src/documents/management/commands/document_importer.py index eeae68e65..d68f04ac3 100644 --- a/src/documents/management/commands/document_importer.py +++ b/src/documents/management/commands/document_importer.py @@ -22,8 +22,8 @@ from documents.settings import EXPORTER_THUMBNAIL_NAME from filelock import FileLock from paperless import version -from ...file_handling import create_source_path_directory -from ...signals.handlers import update_filename_and_move_files +from documents.file_handling import create_source_path_directory +from documents.signals.handlers import update_filename_and_move_files @contextmanager @@ -111,37 +111,36 @@ class Command(BaseCommand): post_save, receiver=update_filename_and_move_files, sender=Document, + ), disable_signal( + m2m_changed, + receiver=update_filename_and_move_files, + sender=Document.tags.through, ): - with disable_signal( - m2m_changed, - receiver=update_filename_and_move_files, - sender=Document.tags.through, - ): - # Fill up the database with whatever is in the manifest - try: - for manifest_path in manifest_paths: - call_command("loaddata", manifest_path) - except (FieldDoesNotExist, DeserializationError) as e: - self.stdout.write(self.style.ERROR("Database import failed")) - if ( - self.version is not None - and self.version != version.__full_version_str__ - ): - self.stdout.write( - self.style.ERROR( - "Version mismatch: " - f"Currently {version.__full_version_str__}," - f" importing {self.version}", - ), - ) - raise e - else: - self.stdout.write( - self.style.ERROR("No version information present"), - ) - raise e + # Fill up the database with whatever is in the manifest + try: + for manifest_path in manifest_paths: + call_command("loaddata", manifest_path) + except (FieldDoesNotExist, DeserializationError) as e: + self.stdout.write(self.style.ERROR("Database import failed")) + if ( + self.version is not None + and self.version != version.__full_version_str__ + ): + self.stdout.write( + self.style.ERROR( + "Version mismatch: " + f"Currently {version.__full_version_str__}," + f" importing {self.version}", + ), + ) + raise e + else: + self.stdout.write( + self.style.ERROR("No version information present"), + ) + raise e - self._import_files_from_manifest(options["no_progress_bar"]) + self._import_files_from_manifest(options["no_progress_bar"]) self.stdout.write("Updating search index...") call_command( @@ -154,14 +153,14 @@ class Command(BaseCommand): def _check_manifest_exists(path): if not os.path.exists(path): raise CommandError( - "That directory doesn't appear to contain a manifest.json " "file.", + "That directory doesn't appear to contain a manifest.json file.", ) def _check_manifest(self): for record in self.manifest: - if not record["model"] == "documents.document": + if record["model"] != "documents.document": continue if EXPORTER_FILE_NAME not in record: diff --git a/src/documents/management/commands/document_retagger.py b/src/documents/management/commands/document_retagger.py index c42357eb5..aa61f0696 100644 --- a/src/documents/management/commands/document_retagger.py +++ b/src/documents/management/commands/document_retagger.py @@ -5,10 +5,10 @@ from django.core.management.base import BaseCommand from documents.classifier import load_classifier from documents.models import Document -from ...signals.handlers import set_correspondent -from ...signals.handlers import set_document_type -from ...signals.handlers import set_storage_path -from ...signals.handlers import set_tags +from documents.signals.handlers import set_correspondent +from documents.signals.handlers import set_document_type +from documents.signals.handlers import set_storage_path +from documents.signals.handlers import set_tags logger = logging.getLogger("paperless.management.retagger") diff --git a/src/documents/management/commands/document_thumbnails.py b/src/documents/management/commands/document_thumbnails.py index b56bc0042..462853f84 100644 --- a/src/documents/management/commands/document_thumbnails.py +++ b/src/documents/management/commands/document_thumbnails.py @@ -7,7 +7,7 @@ from django import db from django.core.management.base import BaseCommand from documents.models import Document -from ...parsers import get_parser_class_for_mime_type +from documents.parsers import get_parser_class_for_mime_type def _process_document(doc_in): diff --git a/src/documents/matching.py b/src/documents/matching.py index 235263aa6..ad80ee0ad 100644 --- a/src/documents/matching.py +++ b/src/documents/matching.py @@ -6,6 +6,7 @@ from documents.models import DocumentType from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag +from documents.permissions import get_objects_for_user_owner_aware logger = logging.getLogger("paperless.matching") @@ -19,52 +20,64 @@ def log_reason(matching_model, document, reason): ) -def match_correspondents(document, classifier): - if classifier: - pred_id = classifier.predict_correspondent(document.content) - else: - pred_id = None +def match_correspondents(document, classifier, user=None): + pred_id = classifier.predict_correspondent(document.content) if classifier else None - correspondents = Correspondent.objects.all() + if user is not None: + correspondents = get_objects_for_user_owner_aware( + user, + "documents.view_correspondent", + Correspondent, + ) + else: + correspondents = Correspondent.objects.all() return list( filter(lambda o: matches(o, document) or o.pk == pred_id, correspondents), ) -def match_document_types(document, classifier): - if classifier: - pred_id = classifier.predict_document_type(document.content) - else: - pred_id = None +def match_document_types(document, classifier, user=None): + pred_id = classifier.predict_document_type(document.content) if classifier else None - document_types = DocumentType.objects.all() + if user is not None: + document_types = get_objects_for_user_owner_aware( + user, + "documents.view_documenttype", + DocumentType, + ) + else: + document_types = DocumentType.objects.all() return list( filter(lambda o: matches(o, document) or o.pk == pred_id, document_types), ) -def match_tags(document, classifier): - if classifier: - predicted_tag_ids = classifier.predict_tags(document.content) - else: - predicted_tag_ids = [] +def match_tags(document, classifier, user=None): + predicted_tag_ids = classifier.predict_tags(document.content) if classifier else [] - tags = Tag.objects.all() + if user is not None: + tags = get_objects_for_user_owner_aware(user, "documents.view_tag", Tag) + else: + tags = Tag.objects.all() return list( filter(lambda o: matches(o, document) or o.pk in predicted_tag_ids, tags), ) -def match_storage_paths(document, classifier): - if classifier: - pred_id = classifier.predict_storage_path(document.content) - else: - pred_id = None +def match_storage_paths(document, classifier, user=None): + pred_id = classifier.predict_storage_path(document.content) if classifier else None - storage_paths = StoragePath.objects.all() + if user is not None: + storage_paths = get_objects_for_user_owner_aware( + user, + "documents.view_storagepath", + StoragePath, + ) + else: + storage_paths = StoragePath.objects.all() return list( filter( @@ -80,13 +93,16 @@ def matches(matching_model, document): document_content = document.content # Check that match is not empty - if matching_model.match.strip() == "": + if not matching_model.match.strip(): return False if matching_model.is_insensitive: search_kwargs = {"flags": re.IGNORECASE} - if matching_model.matching_algorithm == MatchingModel.MATCH_ALL: + if matching_model.matching_algorithm == MatchingModel.MATCH_NONE: + return False + + elif matching_model.matching_algorithm == MatchingModel.MATCH_ALL: for word in _split_match(matching_model): search_result = re.search(rf"\b{word}\b", document_content, **search_kwargs) if not search_result: @@ -129,7 +145,7 @@ def matches(matching_model, document): ) except re.error: logger.error( - f"Error while processing regular expression " f"{matching_model.match}", + f"Error while processing regular expression {matching_model.match}", ) return False if match: diff --git a/src/documents/migrations/0001_initial.py b/src/documents/migrations/0001_initial.py index a388ac7f2..e1b2f2a8b 100644 --- a/src/documents/migrations/0001_initial.py +++ b/src/documents/migrations/0001_initial.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2015-12-20 19:10 -from __future__ import unicode_literals from django.db import migrations, models from django.conf import settings @@ -32,7 +30,7 @@ class Migration(migrations.Migration): models.TextField( db_index=( "mysql" not in settings.DATABASES["default"]["ENGINE"] - ) + ), ), ), ("created", models.DateTimeField(auto_now_add=True)), diff --git a/src/documents/migrations/0002_auto_20151226_1316.py b/src/documents/migrations/0002_auto_20151226_1316.py index 05d97d2c2..b953d8008 100644 --- a/src/documents/migrations/0002_auto_20151226_1316.py +++ b/src/documents/migrations/0002_auto_20151226_1316.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2015-12-26 13:16 -from __future__ import unicode_literals from django.db import migrations, models import django.utils.timezone @@ -21,7 +19,8 @@ class Migration(migrations.Migration): model_name="document", name="created", field=models.DateTimeField( - default=django.utils.timezone.now, editable=False + default=django.utils.timezone.now, + editable=False, ), ), ] diff --git a/src/documents/migrations/0003_sender.py b/src/documents/migrations/0003_sender.py index 796571cd7..c2b274085 100644 --- a/src/documents/migrations/0003_sender.py +++ b/src/documents/migrations/0003_sender.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-11 12:21 -from __future__ import unicode_literals from django.db import migrations, models from django.template.defaultfilters import slugify @@ -23,7 +21,8 @@ def move_sender_strings_to_sender_model(apps, schema_editor): DOCUMENT_SENDER_MAP[document.pk], created, ) = sender_model.objects.get_or_create( - name=document.sender, defaults={"slug": slugify(document.sender)} + name=document.sender, + defaults={"slug": slugify(document.sender)}, ) diff --git a/src/documents/migrations/0004_auto_20160114_1844.py b/src/documents/migrations/0004_auto_20160114_1844.py index 5d377a4a1..b3ccaaa9b 100644 --- a/src/documents/migrations/0004_auto_20160114_1844.py +++ b/src/documents/migrations/0004_auto_20160114_1844.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-14 18:44 -from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion diff --git a/src/documents/migrations/0005_auto_20160123_0313.py b/src/documents/migrations/0005_auto_20160123_0313.py index 893bf1d1f..98e2c1b29 100644 --- a/src/documents/migrations/0005_auto_20160123_0313.py +++ b/src/documents/migrations/0005_auto_20160123_0313.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-23 03:13 -from __future__ import unicode_literals from django.db import migrations diff --git a/src/documents/migrations/0006_auto_20160123_0430.py b/src/documents/migrations/0006_auto_20160123_0430.py index e8530f39a..3f24992e2 100644 --- a/src/documents/migrations/0006_auto_20160123_0430.py +++ b/src/documents/migrations/0006_auto_20160123_0430.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-23 04:30 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0007_auto_20160126_2114.py b/src/documents/migrations/0007_auto_20160126_2114.py index e7e273611..f4b3b913d 100644 --- a/src/documents/migrations/0007_auto_20160126_2114.py +++ b/src/documents/migrations/0007_auto_20160126_2114.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-26 21:14 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0008_document_file_type.py b/src/documents/migrations/0008_document_file_type.py index a6770d9f7..c079f927d 100644 --- a/src/documents/migrations/0008_document_file_type.py +++ b/src/documents/migrations/0008_document_file_type.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-01-29 22:58 -from __future__ import unicode_literals from django.db import migrations, models @@ -33,7 +31,9 @@ class Migration(migrations.Migration): model_name="document", name="tags", field=models.ManyToManyField( - blank=True, related_name="documents", to="documents.Tag" + blank=True, + related_name="documents", + to="documents.Tag", ), ), ] diff --git a/src/documents/migrations/0009_auto_20160214_0040.py b/src/documents/migrations/0009_auto_20160214_0040.py index 5d833c1f2..82e48ba24 100644 --- a/src/documents/migrations/0009_auto_20160214_0040.py +++ b/src/documents/migrations/0009_auto_20160214_0040.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-02-14 00:40 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0010_log.py b/src/documents/migrations/0010_log.py index b51aebc62..9be7b18ed 100644 --- a/src/documents/migrations/0010_log.py +++ b/src/documents/migrations/0010_log.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9 on 2016-02-27 17:54 -from __future__ import unicode_literals from django.db import migrations, models @@ -42,7 +40,7 @@ class Migration(migrations.Migration): ( "component", models.PositiveIntegerField( - choices=[(1, "Consumer"), (2, "Mail Fetcher")] + choices=[(1, "Consumer"), (2, "Mail Fetcher")], ), ), ("created", models.DateTimeField(auto_now_add=True)), diff --git a/src/documents/migrations/0011_auto_20160303_1929.py b/src/documents/migrations/0011_auto_20160303_1929.py index 643212888..4c4fcd3ad 100644 --- a/src/documents/migrations/0011_auto_20160303_1929.py +++ b/src/documents/migrations/0011_auto_20160303_1929.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9.2 on 2016-03-03 19:29 -from __future__ import unicode_literals from django.db import migrations diff --git a/src/documents/migrations/0012_auto_20160305_0040.py b/src/documents/migrations/0012_auto_20160305_0040.py index 5ba3838d4..1470ace96 100644 --- a/src/documents/migrations/0012_auto_20160305_0040.py +++ b/src/documents/migrations/0012_auto_20160305_0040.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9.2 on 2016-03-05 00:40 -from __future__ import unicode_literals import gnupg import os @@ -14,7 +12,7 @@ from django.db import migrations from django.utils.termcolors import colorize as colourise # Spelling hurts me -class GnuPG(object): +class GnuPG: """ A handy singleton to use when handling encrypted files. """ @@ -28,17 +26,22 @@ class GnuPG(object): @classmethod def encrypted(cls, file_handle): return cls.gpg.encrypt_file( - file_handle, recipients=None, passphrase=settings.PASSPHRASE, symmetric=True + file_handle, + recipients=None, + passphrase=settings.PASSPHRASE, + symmetric=True, ).data def move_documents_and_create_thumbnails(apps, schema_editor): os.makedirs( - os.path.join(settings.MEDIA_ROOT, "documents", "originals"), exist_ok=True + os.path.join(settings.MEDIA_ROOT, "documents", "originals"), + exist_ok=True, ) os.makedirs( - os.path.join(settings.MEDIA_ROOT, "documents", "thumbnails"), exist_ok=True + os.path.join(settings.MEDIA_ROOT, "documents", "thumbnails"), + exist_ok=True, ) documents = os.listdir(os.path.join(settings.MEDIA_ROOT, "documents")) @@ -55,7 +58,7 @@ def move_documents_and_create_thumbnails(apps, schema_editor): " in order." "\n", opts=("bold",), - ) + ), ) try: @@ -73,7 +76,7 @@ def move_documents_and_create_thumbnails(apps, schema_editor): colourise("*", fg="green"), colourise("Generating a thumbnail for", fg="white"), colourise(f, fg="cyan"), - ) + ), ) thumb_temp = tempfile.mkdtemp(prefix="paperless", dir=settings.SCRATCH_DIR) @@ -95,7 +98,7 @@ def move_documents_and_create_thumbnails(apps, schema_editor): "remove", orig_target, os.path.join(thumb_temp, "convert-%04d.png"), - ) + ), ).wait() thumb_source = os.path.join(thumb_temp, "convert-0000.png") diff --git a/src/documents/migrations/0013_auto_20160325_2111.py b/src/documents/migrations/0013_auto_20160325_2111.py index 58f39758a..6663edad8 100644 --- a/src/documents/migrations/0013_auto_20160325_2111.py +++ b/src/documents/migrations/0013_auto_20160325_2111.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9.4 on 2016-03-25 21:11 -from __future__ import unicode_literals from django.db import migrations, models import django.utils.timezone diff --git a/src/documents/migrations/0014_document_checksum.py b/src/documents/migrations/0014_document_checksum.py index 1ec8380f4..a687e43ef 100644 --- a/src/documents/migrations/0014_document_checksum.py +++ b/src/documents/migrations/0014_document_checksum.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.9.4 on 2016-03-28 19:09 -from __future__ import unicode_literals import gnupg import hashlib @@ -13,7 +11,7 @@ from django.template.defaultfilters import slugify from django.utils.termcolors import colorize as colourise # Spelling hurts me -class GnuPG(object): +class GnuPG: """ A handy singleton to use when handling encrypted files. """ @@ -27,11 +25,14 @@ class GnuPG(object): @classmethod def encrypted(cls, file_handle): return cls.gpg.encrypt_file( - file_handle, recipients=None, passphrase=settings.PASSPHRASE, symmetric=True + file_handle, + recipients=None, + passphrase=settings.PASSPHRASE, + symmetric=True, ).data -class Document(object): +class Document: """ Django's migrations restrict access to model methods, so this is a snapshot of the methods that existed at the time this migration was written, since @@ -49,9 +50,9 @@ class Document(object): def __str__(self): created = self.created.strftime("%Y%m%d%H%M%S") if self.correspondent and self.title: - return "{}: {} - {}".format(created, self.correspondent, self.title) + return f"{created}: {self.correspondent} - {self.title}" if self.correspondent or self.title: - return "{}: {}".format(created, self.correspondent or self.title) + return f"{created}: {self.correspondent or self.title}" return str(created) @property @@ -60,7 +61,7 @@ class Document(object): settings.MEDIA_ROOT, "documents", "originals", - "{:07}.{}.gpg".format(self.pk, self.file_type), + f"{self.pk:07}.{self.file_type}.gpg", ) @property @@ -88,7 +89,7 @@ def set_checksums(apps, schema_editor): " order." "\n", opts=("bold",), - ) + ), ) sums = {} @@ -101,7 +102,7 @@ def set_checksums(apps, schema_editor): colourise("*", fg="green"), colourise("Generating a checksum for", fg="white"), colourise(document.file_name, fg="cyan"), - ) + ), ) with document.source_file as encrypted: @@ -122,15 +123,16 @@ def set_checksums(apps, schema_editor): fg="yellow", ), doc1=colourise( - " * {} (id: {})".format(sums[checksum][1], sums[checksum][0]), + f" * {sums[checksum][1]} (id: {sums[checksum][0]})", fg="red", ), doc2=colourise( - " * {} (id: {})".format(document.file_name, document.pk), fg="red" + f" * {document.file_name} (id: {document.pk})", + fg="red", ), code=colourise( " $ echo 'DELETE FROM documents_document WHERE id = {pk};' | ./manage.py dbshell".format( - pk=document.pk + pk=document.pk, ), fg="green", ), @@ -171,7 +173,8 @@ class Migration(migrations.Migration): model_name="document", name="created", field=models.DateTimeField( - db_index=True, default=django.utils.timezone.now + db_index=True, + default=django.utils.timezone.now, ), ), migrations.AlterField( diff --git a/src/documents/migrations/0015_add_insensitive_to_match.py b/src/documents/migrations/0015_add_insensitive_to_match.py index 351a4067b..796918446 100644 --- a/src/documents/migrations/0015_add_insensitive_to_match.py +++ b/src/documents/migrations/0015_add_insensitive_to_match.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.10.2 on 2016-10-05 21:38 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0016_auto_20170325_1558.py b/src/documents/migrations/0016_auto_20170325_1558.py index ae95b83f6..26ab3a720 100644 --- a/src/documents/migrations/0016_auto_20170325_1558.py +++ b/src/documents/migrations/0016_auto_20170325_1558.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.10.5 on 2017-03-25 15:58 -from __future__ import unicode_literals from django.db import migrations, models from django.conf import settings diff --git a/src/documents/migrations/0017_auto_20170512_0507.py b/src/documents/migrations/0017_auto_20170512_0507.py index 603aece5e..f775cdfe0 100644 --- a/src/documents/migrations/0017_auto_20170512_0507.py +++ b/src/documents/migrations/0017_auto_20170512_0507.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.10.5 on 2017-05-12 05:07 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0018_auto_20170715_1712.py b/src/documents/migrations/0018_auto_20170715_1712.py index 492e016e3..047531fee 100644 --- a/src/documents/migrations/0018_auto_20170715_1712.py +++ b/src/documents/migrations/0018_auto_20170715_1712.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.10.5 on 2017-07-15 17:12 -from __future__ import unicode_literals from django.db import migrations, models import django.db.models.deletion diff --git a/src/documents/migrations/0019_add_consumer_user.py b/src/documents/migrations/0019_add_consumer_user.py index 344297805..b38d88538 100644 --- a/src/documents/migrations/0019_add_consumer_user.py +++ b/src/documents/migrations/0019_add_consumer_user.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.10.5 on 2017-07-15 17:12 -from __future__ import unicode_literals from django.contrib.auth.models import User from django.db import migrations diff --git a/src/documents/migrations/0020_document_added.py b/src/documents/migrations/0020_document_added.py index 66afa1258..67c4df4aa 100644 --- a/src/documents/migrations/0020_document_added.py +++ b/src/documents/migrations/0020_document_added.py @@ -1,6 +1,3 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - from django.db import migrations, models import django.utils.timezone @@ -22,7 +19,9 @@ class Migration(migrations.Migration): model_name="document", name="added", field=models.DateTimeField( - db_index=True, default=django.utils.timezone.now, editable=False + db_index=True, + default=django.utils.timezone.now, + editable=False, ), ), migrations.RunPython(set_added_time_to_created_time), diff --git a/src/documents/migrations/0021_document_storage_type.py b/src/documents/migrations/0021_document_storage_type.py index 0e7425fb6..bde86ceea 100644 --- a/src/documents/migrations/0021_document_storage_type.py +++ b/src/documents/migrations/0021_document_storage_type.py @@ -1,6 +1,4 @@ -# -*- coding: utf-8 -*- # Generated by Django 1.11.10 on 2018-02-04 13:07 -from __future__ import unicode_literals from django.db import migrations, models diff --git a/src/documents/migrations/0023_document_current_filename.py b/src/documents/migrations/0023_document_current_filename.py index 8e9f65bb9..65300c11e 100644 --- a/src/documents/migrations/0023_document_current_filename.py +++ b/src/documents/migrations/0023_document_current_filename.py @@ -6,7 +6,7 @@ from django.db import migrations, models def set_filename(apps, schema_editor): Document = apps.get_model("documents", "Document") for doc in Document.objects.all(): - file_name = "{:07}.{}".format(doc.pk, doc.file_type) + file_name = f"{doc.pk:07}.{doc.file_type}" if doc.storage_type == "gpg": file_name += ".gpg" diff --git a/src/documents/migrations/1001_auto_20201109_1636.py b/src/documents/migrations/1001_auto_20201109_1636.py index 2558180bb..9f6e152b6 100644 --- a/src/documents/migrations/1001_auto_20201109_1636.py +++ b/src/documents/migrations/1001_auto_20201109_1636.py @@ -10,5 +10,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(migrations.RunPython.noop, migrations.RunPython.noop) + migrations.RunPython(migrations.RunPython.noop, migrations.RunPython.noop), ] diff --git a/src/documents/migrations/1003_mime_types.py b/src/documents/migrations/1003_mime_types.py index 4eee1e0a2..f5ac94756 100644 --- a/src/documents/migrations/1003_mime_types.py +++ b/src/documents/migrations/1003_mime_types.py @@ -1,5 +1,4 @@ # Generated by Django 3.1.3 on 2020-11-20 11:21 -import mimetypes import os import magic @@ -16,7 +15,7 @@ def source_path(self): if self.filename: fname = str(self.filename) else: - fname = "{:07}.{}".format(self.pk, self.file_type) + fname = f"{self.pk:07}.{self.file_type}" if self.storage_type == STORAGE_TYPE_GPG: fname += ".gpg" diff --git a/src/documents/migrations/1007_savedview_savedviewfilterrule.py b/src/documents/migrations/1007_savedview_savedviewfilterrule.py index 401ab5adb..357d65c2d 100644 --- a/src/documents/migrations/1007_savedview_savedviewfilterrule.py +++ b/src/documents/migrations/1007_savedview_savedviewfilterrule.py @@ -73,7 +73,7 @@ class Migration(migrations.Migration): (15, "Modified before"), (16, "Modified after"), (17, "Does not have tag"), - ] + ], ), ), ("value", models.CharField(max_length=128)), diff --git a/src/documents/migrations/1011_auto_20210101_2340.py b/src/documents/migrations/1011_auto_20210101_2340.py index d16051c21..c7c387226 100644 --- a/src/documents/migrations/1011_auto_20210101_2340.py +++ b/src/documents/migrations/1011_auto_20210101_2340.py @@ -165,7 +165,9 @@ class Migration(migrations.Migration): model_name="document", name="created", field=models.DateTimeField( - db_index=True, default=django.utils.timezone.now, verbose_name="created" + db_index=True, + default=django.utils.timezone.now, + verbose_name="created", ), ), migrations.AlterField( @@ -196,14 +198,18 @@ class Migration(migrations.Migration): model_name="document", name="mime_type", field=models.CharField( - editable=False, max_length=256, verbose_name="mime type" + editable=False, + max_length=256, + verbose_name="mime type", ), ), migrations.AlterField( model_name="document", name="modified", field=models.DateTimeField( - auto_now=True, db_index=True, verbose_name="modified" + auto_now=True, + db_index=True, + verbose_name="modified", ), ), migrations.AlterField( @@ -234,7 +240,10 @@ class Migration(migrations.Migration): model_name="document", name="title", field=models.CharField( - blank=True, db_index=True, max_length=128, verbose_name="title" + blank=True, + db_index=True, + max_length=128, + verbose_name="title", ), ), migrations.AlterField( @@ -373,7 +382,10 @@ class Migration(migrations.Migration): model_name="savedviewfilterrule", name="value", field=models.CharField( - blank=True, max_length=128, null=True, verbose_name="value" + blank=True, + max_length=128, + null=True, + verbose_name="value", ), ), migrations.AlterField( diff --git a/src/documents/migrations/1012_fix_archive_files.py b/src/documents/migrations/1012_fix_archive_files.py index 77e33afdd..51eb8ec2e 100644 --- a/src/documents/migrations/1012_fix_archive_files.py +++ b/src/documents/migrations/1012_fix_archive_files.py @@ -29,7 +29,7 @@ def archive_path_old(doc): if doc.filename: fname = archive_name_from_filename(doc.filename) else: - fname = "{:07}.pdf".format(doc.pk) + fname = f"{doc.pk:07}.pdf" return os.path.join(settings.ARCHIVE_DIR, fname) @@ -48,7 +48,7 @@ def source_path(doc): if doc.filename: fname = str(doc.filename) else: - fname = "{:07}{}".format(doc.pk, doc.file_type) + fname = f"{doc.pk:07}{doc.file_type}" if doc.storage_type == STORAGE_TYPE_GPG: fname += ".gpg" # pragma: no cover @@ -67,7 +67,9 @@ def generate_unique_filename(doc, archive_filename=False): while True: new_filename = generate_filename( - doc, counter, archive_filename=archive_filename + doc, + counter, + archive_filename=archive_filename, ) if new_filename == old_filename: # still the same as before. @@ -93,14 +95,16 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): if doc.correspondent: correspondent = pathvalidate.sanitize_filename( - doc.correspondent.name, replacement_text="-" + doc.correspondent.name, + replacement_text="-", ) else: correspondent = "none" if doc.document_type: document_type = pathvalidate.sanitize_filename( - doc.document_type.name, replacement_text="-" + doc.document_type.name, + replacement_text="-", ) else: document_type = "none" @@ -111,9 +115,7 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): document_type=document_type, created=datetime.date.isoformat(doc.created), created_year=doc.created.year if doc.created else "none", - created_month=f"{doc.created.month:02}" - if doc.created - else "none", # NOQA: E501 + created_month=f"{doc.created.month:02}" if doc.created else "none", created_day=f"{doc.created.day:02}" if doc.created else "none", added=datetime.date.isoformat(doc.added), added_year=doc.added.year if doc.added else "none", @@ -128,7 +130,7 @@ def generate_filename(doc, counter=0, append_gpg=True, archive_filename=False): except (ValueError, KeyError, IndexError): logger.warning( f"Invalid PAPERLESS_FILENAME_FORMAT: " - f"{settings.FILENAME_FORMAT}, falling back to default" + f"{settings.FILENAME_FORMAT}, falling back to default", ) counter_str = f"_{counter:02}" if counter else "" @@ -170,13 +172,17 @@ def create_archive_version(doc, retry_count=3): parser: DocumentParser = parser_class(None, None) try: parse_wrapper( - parser, source_path(doc), doc.mime_type, os.path.basename(doc.filename) + parser, + source_path(doc), + doc.mime_type, + os.path.basename(doc.filename), ) doc.content = parser.get_text() if parser.get_archive_path() and os.path.isfile(parser.get_archive_path()): doc.archive_filename = generate_unique_filename( - doc, archive_filename=True + doc, + archive_filename=True, ) with open(parser.get_archive_path(), "rb") as f: doc.archive_checksum = hashlib.md5(f.read()).hexdigest() @@ -186,7 +192,7 @@ def create_archive_version(doc, retry_count=3): doc.archive_checksum = None logger.error( f"Parser did not return an archive document for document " - f"ID:{doc.id}. Removing archive document." + f"ID:{doc.id}. Removing archive document.", ) doc.save() return @@ -195,7 +201,7 @@ def create_archive_version(doc, retry_count=3): logger.exception( f"Unable to regenerate archive document for ID:{doc.id}. You " f"need to invoke the document_archiver management command " - f"manually for that document." + f"manually for that document.", ) doc.archive_checksum = None doc.save() @@ -233,7 +239,7 @@ def move_old_to_new_locations(apps, schema_editor): old_path = archive_path_old(doc) if doc.id not in affected_document_ids and not os.path.isfile(old_path): raise ValueError( - f"Archived document ID:{doc.id} does not exist at: " f"{old_path}" + f"Archived document ID:{doc.id} does not exist at: {old_path}", ) # check that we can regenerate affected archive versions @@ -245,7 +251,7 @@ def move_old_to_new_locations(apps, schema_editor): if not parser_class: raise ValueError( f"Document ID:{doc.id} has an invalid archived document, " - f"but no parsers are available. Cannot migrate." + f"but no parsers are available. Cannot migrate.", ) for doc in Document.objects.filter(archive_checksum__isnull=False): @@ -260,7 +266,7 @@ def move_old_to_new_locations(apps, schema_editor): # Set archive path for unaffected files doc.archive_filename = archive_name_from_filename(doc.filename) Document.objects.filter(id=doc.id).update( - archive_filename=doc.archive_filename + archive_filename=doc.archive_filename, ) # regenerate archive documents @@ -281,13 +287,13 @@ def move_new_to_old_locations(apps, schema_editor): raise ValueError( f"Cannot migrate: Archive file name {old_archive_path} of " f"document {doc.filename} would clash with another archive " - f"filename." + f"filename.", ) old_archive_paths.add(old_archive_path) if new_archive_path != old_archive_path and os.path.isfile(old_archive_path): raise ValueError( f"Cannot migrate: Cannot move {new_archive_path} to " - f"{old_archive_path}: file already exists." + f"{old_archive_path}: file already exists.", ) for doc in Document.objects.filter(archive_checksum__isnull=False): diff --git a/src/documents/migrations/1013_migrate_tag_colour.py b/src/documents/migrations/1013_migrate_tag_colour.py index 4714f97c5..8346ff184 100644 --- a/src/documents/migrations/1013_migrate_tag_colour.py +++ b/src/documents/migrations/1013_migrate_tag_colour.py @@ -61,7 +61,9 @@ class Migration(migrations.Migration): model_name="tag", name="color", field=models.CharField( - default="#a6cee3", max_length=7, verbose_name="color" + default="#a6cee3", + max_length=7, + verbose_name="color", ), ), migrations.RunPython(forward, reverse), diff --git a/src/documents/migrations/1015_remove_null_characters.py b/src/documents/migrations/1015_remove_null_characters.py index accc41162..cea9d5a64 100644 --- a/src/documents/migrations/1015_remove_null_characters.py +++ b/src/documents/migrations/1015_remove_null_characters.py @@ -25,5 +25,5 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(remove_null_characters, migrations.RunPython.noop) + migrations.RunPython(remove_null_characters, migrations.RunPython.noop), ] diff --git a/src/documents/migrations/1016_auto_20210317_1351.py b/src/documents/migrations/1016_auto_20210317_1351.py index 53994f916..d41fae849 100644 --- a/src/documents/migrations/1016_auto_20210317_1351.py +++ b/src/documents/migrations/1016_auto_20210317_1351.py @@ -14,7 +14,10 @@ class Migration(migrations.Migration): model_name="savedview", name="sort_field", field=models.CharField( - blank=True, max_length=128, null=True, verbose_name="sort field" + blank=True, + max_length=128, + null=True, + verbose_name="sort field", ), ), migrations.AlterField( diff --git a/src/documents/migrations/1018_alter_savedviewfilterrule_value.py b/src/documents/migrations/1018_alter_savedviewfilterrule_value.py index aa32c9c5c..8453a86d8 100644 --- a/src/documents/migrations/1018_alter_savedviewfilterrule_value.py +++ b/src/documents/migrations/1018_alter_savedviewfilterrule_value.py @@ -14,7 +14,10 @@ class Migration(migrations.Migration): model_name="savedviewfilterrule", name="value", field=models.CharField( - blank=True, max_length=255, null=True, verbose_name="value" + blank=True, + max_length=255, + null=True, + verbose_name="value", ), ), ] diff --git a/src/documents/migrations/1022_paperlesstask.py b/src/documents/migrations/1022_paperlesstask.py index 5f1293a1e..e398402f3 100644 --- a/src/documents/migrations/1022_paperlesstask.py +++ b/src/documents/migrations/1022_paperlesstask.py @@ -48,5 +48,5 @@ class Migration(migrations.Migration): ), ), ], - ) + ), ] diff --git a/src/documents/migrations/1026_transition_to_celery.py b/src/documents/migrations/1026_transition_to_celery.py index 76c6edf11..786ca36c4 100644 --- a/src/documents/migrations/1026_transition_to_celery.py +++ b/src/documents/migrations/1026_transition_to_celery.py @@ -46,12 +46,15 @@ class Migration(migrations.Migration): # Drop the django-q tables entirely # Must be done last or there could be references here migrations.RunSQL( - "DROP TABLE IF EXISTS django_q_ormq", reverse_sql=migrations.RunSQL.noop + "DROP TABLE IF EXISTS django_q_ormq", + reverse_sql=migrations.RunSQL.noop, ), migrations.RunSQL( - "DROP TABLE IF EXISTS django_q_schedule", reverse_sql=migrations.RunSQL.noop + "DROP TABLE IF EXISTS django_q_schedule", + reverse_sql=migrations.RunSQL.noop, ), migrations.RunSQL( - "DROP TABLE IF EXISTS django_q_task", reverse_sql=migrations.RunSQL.noop + "DROP TABLE IF EXISTS django_q_task", + reverse_sql=migrations.RunSQL.noop, ), ] diff --git a/src/documents/migrations/1031_remove_savedview_user_correspondent_owner_and_more.py b/src/documents/migrations/1031_remove_savedview_user_correspondent_owner_and_more.py new file mode 100644 index 000000000..b187871e7 --- /dev/null +++ b/src/documents/migrations/1031_remove_savedview_user_correspondent_owner_and_more.py @@ -0,0 +1,87 @@ +# Generated by Django 4.1.4 on 2022-02-03 04:24 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("documents", "1030_alter_paperlesstask_task_file_name"), + ] + + operations = [ + migrations.RenameField( + model_name="savedview", + old_name="user", + new_name="owner", + ), + migrations.AlterField( + model_name="savedview", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="correspondent", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="document", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="documenttype", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="storagepath", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="tag", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + ] diff --git a/src/documents/migrations/1032_alter_correspondent_matching_algorithm_and_more.py b/src/documents/migrations/1032_alter_correspondent_matching_algorithm_and_more.py new file mode 100644 index 000000000..88aa7f2bc --- /dev/null +++ b/src/documents/migrations/1032_alter_correspondent_matching_algorithm_and_more.py @@ -0,0 +1,81 @@ +# Generated by Django 4.1.7 on 2023-02-22 00:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("documents", "1031_remove_savedview_user_correspondent_owner_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="correspondent", + name="matching_algorithm", + field=models.PositiveIntegerField( + choices=[ + (0, "None"), + (1, "Any word"), + (2, "All words"), + (3, "Exact match"), + (4, "Regular expression"), + (5, "Fuzzy word"), + (6, "Automatic"), + ], + default=1, + verbose_name="matching algorithm", + ), + ), + migrations.AlterField( + model_name="documenttype", + name="matching_algorithm", + field=models.PositiveIntegerField( + choices=[ + (0, "None"), + (1, "Any word"), + (2, "All words"), + (3, "Exact match"), + (4, "Regular expression"), + (5, "Fuzzy word"), + (6, "Automatic"), + ], + default=1, + verbose_name="matching algorithm", + ), + ), + migrations.AlterField( + model_name="storagepath", + name="matching_algorithm", + field=models.PositiveIntegerField( + choices=[ + (0, "None"), + (1, "Any word"), + (2, "All words"), + (3, "Exact match"), + (4, "Regular expression"), + (5, "Fuzzy word"), + (6, "Automatic"), + ], + default=1, + verbose_name="matching algorithm", + ), + ), + migrations.AlterField( + model_name="tag", + name="matching_algorithm", + field=models.PositiveIntegerField( + choices=[ + (0, "None"), + (1, "Any word"), + (2, "All words"), + (3, "Exact match"), + (4, "Regular expression"), + (5, "Fuzzy word"), + (6, "Automatic"), + ], + default=1, + verbose_name="matching algorithm", + ), + ), + ] diff --git a/src/documents/migrations/1033_alter_documenttype_options_alter_tag_options_and_more.py b/src/documents/migrations/1033_alter_documenttype_options_alter_tag_options_and_more.py new file mode 100644 index 000000000..433363e9f --- /dev/null +++ b/src/documents/migrations/1033_alter_documenttype_options_alter_tag_options_and_more.py @@ -0,0 +1,109 @@ +# Generated by Django 4.1.5 on 2023-03-04 22:33 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("documents", "1032_alter_correspondent_matching_algorithm_and_more"), + ] + + operations = [ + migrations.AlterModelOptions( + name="documenttype", + options={ + "ordering": ("name",), + "verbose_name": "document type", + "verbose_name_plural": "document types", + }, + ), + migrations.AlterModelOptions( + name="tag", + options={ + "ordering": ("name",), + "verbose_name": "tag", + "verbose_name_plural": "tags", + }, + ), + migrations.AlterField( + model_name="correspondent", + name="name", + field=models.CharField(max_length=128, verbose_name="name"), + ), + migrations.AlterField( + model_name="documenttype", + name="name", + field=models.CharField(max_length=128, verbose_name="name"), + ), + migrations.AlterField( + model_name="storagepath", + name="name", + field=models.CharField(max_length=128, verbose_name="name"), + ), + migrations.AlterField( + model_name="tag", + name="name", + field=models.CharField(max_length=128, verbose_name="name"), + ), + migrations.AddConstraint( + model_name="correspondent", + constraint=models.UniqueConstraint( + fields=("name", "owner"), + name="documents_correspondent_unique_name_owner", + ), + ), + migrations.AddConstraint( + model_name="correspondent", + constraint=models.UniqueConstraint( + condition=models.Q(("owner__isnull", True)), + fields=("name",), + name="documents_correspondent_name_uniq", + ), + ), + migrations.AddConstraint( + model_name="documenttype", + constraint=models.UniqueConstraint( + fields=("name", "owner"), + name="documents_documenttype_unique_name_owner", + ), + ), + migrations.AddConstraint( + model_name="documenttype", + constraint=models.UniqueConstraint( + condition=models.Q(("owner__isnull", True)), + fields=("name",), + name="documents_documenttype_name_uniq", + ), + ), + migrations.AddConstraint( + model_name="storagepath", + constraint=models.UniqueConstraint( + fields=("name", "owner"), + name="documents_storagepath_unique_name_owner", + ), + ), + migrations.AddConstraint( + model_name="storagepath", + constraint=models.UniqueConstraint( + condition=models.Q(("owner__isnull", True)), + fields=("name",), + name="documents_storagepath_name_uniq", + ), + ), + migrations.AddConstraint( + model_name="tag", + constraint=models.UniqueConstraint( + fields=("name", "owner"), + name="documents_tag_unique_name_owner", + ), + ), + migrations.AddConstraint( + model_name="tag", + constraint=models.UniqueConstraint( + condition=models.Q(("owner__isnull", True)), + fields=("name",), + name="documents_tag_name_uniq", + ), + ), + ] diff --git a/src/documents/migrations/1034_alter_savedviewfilterrule_rule_type.py b/src/documents/migrations/1034_alter_savedviewfilterrule_rule_type.py new file mode 100644 index 000000000..aa56d9629 --- /dev/null +++ b/src/documents/migrations/1034_alter_savedviewfilterrule_rule_type.py @@ -0,0 +1,54 @@ +# Generated by Django 4.1.5 on 2023-03-15 07:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("documents", "1033_alter_documenttype_options_alter_tag_options_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="savedviewfilterrule", + name="rule_type", + field=models.PositiveIntegerField( + choices=[ + (0, "title contains"), + (1, "content contains"), + (2, "ASN is"), + (3, "correspondent is"), + (4, "document type is"), + (5, "is in inbox"), + (6, "has tag"), + (7, "has any tag"), + (8, "created before"), + (9, "created after"), + (10, "created year is"), + (11, "created month is"), + (12, "created day is"), + (13, "added before"), + (14, "added after"), + (15, "modified before"), + (16, "modified after"), + (17, "does not have tag"), + (18, "does not have ASN"), + (19, "title or content contains"), + (20, "fulltext query"), + (21, "more like this"), + (22, "has tags in"), + (23, "ASN greater than"), + (24, "ASN less than"), + (25, "storage path is"), + (26, "has correspondent in"), + (27, "does not have correspondent in"), + (28, "has document type in"), + (29, "does not have document type in"), + (30, "has storage path in"), + (31, "does not have storage path in"), + ], + verbose_name="rule type", + ), + ), + ] diff --git a/src/documents/migrations/1035_rename_comment_note.py b/src/documents/migrations/1035_rename_comment_note.py new file mode 100644 index 000000000..11c3da380 --- /dev/null +++ b/src/documents/migrations/1035_rename_comment_note.py @@ -0,0 +1,63 @@ +# Generated by Django 4.1.5 on 2023-03-17 22:15 + +from django.conf import settings +from django.db import migrations +from django.db import models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("documents", "1034_alter_savedviewfilterrule_rule_type"), + ] + + operations = [ + migrations.RenameModel( + old_name="Comment", + new_name="Note", + ), + migrations.RenameField(model_name="note", old_name="comment", new_name="note"), + migrations.AlterModelOptions( + name="note", + options={ + "ordering": ("created",), + "verbose_name": "note", + "verbose_name_plural": "notes", + }, + ), + migrations.AlterField( + model_name="note", + name="document", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name="notes", + to="documents.document", + verbose_name="document", + ), + ), + migrations.AlterField( + model_name="note", + name="note", + field=models.TextField( + blank=True, + help_text="Note for the document", + verbose_name="content", + ), + ), + migrations.AlterField( + model_name="note", + name="user", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="notes", + to=settings.AUTH_USER_MODEL, + verbose_name="user", + ), + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index 31b086992..079459d00 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -3,6 +3,7 @@ import logging import os import re from collections import OrderedDict +from pathlib import Path from typing import Final from typing import Optional @@ -22,8 +23,22 @@ ALL_STATES = sorted(states.ALL_STATES) TASK_STATE_CHOICES = sorted(zip(ALL_STATES, ALL_STATES)) -class MatchingModel(models.Model): +class ModelWithOwner(models.Model): + owner = models.ForeignKey( + User, + blank=True, + null=True, + on_delete=models.SET_NULL, + verbose_name=_("owner"), + ) + class Meta: + abstract = True + + +class MatchingModel(ModelWithOwner): + + MATCH_NONE = 0 MATCH_ANY = 1 MATCH_ALL = 2 MATCH_LITERAL = 3 @@ -32,6 +47,7 @@ class MatchingModel(models.Model): MATCH_AUTO = 6 MATCHING_ALGORITHMS = ( + (MATCH_NONE, _("None")), (MATCH_ANY, _("Any word")), (MATCH_ALL, _("All words")), (MATCH_LITERAL, _("Exact match")), @@ -40,7 +56,7 @@ class MatchingModel(models.Model): (MATCH_AUTO, _("Automatic")), ) - name = models.CharField(_("name"), max_length=128, unique=True) + name = models.CharField(_("name"), max_length=128) match = models.CharField(_("match"), max_length=256, blank=True) @@ -55,14 +71,24 @@ class MatchingModel(models.Model): class Meta: abstract = True ordering = ("name",) + constraints = [ + models.UniqueConstraint( + fields=["name", "owner"], + name="%(app_label)s_%(class)s_unique_name_owner", + ), + models.UniqueConstraint( + name="%(app_label)s_%(class)s_name_uniq", + fields=["name"], + condition=models.Q(owner__isnull=True), + ), + ] def __str__(self): return self.name class Correspondent(MatchingModel): - class Meta: - ordering = ("name",) + class Meta(MatchingModel.Meta): verbose_name = _("correspondent") verbose_name_plural = _("correspondents") @@ -80,13 +106,13 @@ class Tag(MatchingModel): ), ) - class Meta: + class Meta(MatchingModel.Meta): verbose_name = _("tag") verbose_name_plural = _("tags") class DocumentType(MatchingModel): - class Meta: + class Meta(MatchingModel.Meta): verbose_name = _("document type") verbose_name_plural = _("document types") @@ -97,13 +123,12 @@ class StoragePath(MatchingModel): max_length=512, ) - class Meta: - ordering = ("name",) + class Meta(MatchingModel.Meta): verbose_name = _("storage path") verbose_name_plural = _("storage paths") -class Document(models.Model): +class Document(ModelWithOwner): STORAGE_TYPE_UNENCRYPTED = "unencrypted" STORAGE_TYPE_GPG = "gpg" @@ -244,7 +269,7 @@ class Document(models.Model): MinValueValidator(ARCHIVE_SERIAL_NUMBER_MIN), ], help_text=_( - "The position of this document in your physical document " "archive.", + "The position of this document in your physical document archive.", ), ) @@ -267,7 +292,7 @@ class Document(models.Model): return res @property - def source_path(self) -> str: + def source_path(self) -> Path: if self.filename: fname = str(self.filename) else: @@ -275,7 +300,7 @@ class Document(models.Model): if self.storage_type == self.STORAGE_TYPE_GPG: fname += ".gpg" # pragma: no cover - return os.path.join(settings.ORIGINALS_DIR, fname) + return (settings.ORIGINALS_DIR / Path(fname)).resolve() @property def source_file(self): @@ -286,9 +311,9 @@ class Document(models.Model): return self.archive_filename is not None @property - def archive_path(self) -> Optional[str]: + def archive_path(self) -> Optional[Path]: if self.has_archive_version: - return os.path.join(settings.ARCHIVE_DIR, str(self.archive_filename)) + return (settings.ARCHIVE_DIR / Path(str(self.archive_filename))).resolve() else: return None @@ -320,14 +345,14 @@ class Document(models.Model): return get_default_file_extension(self.mime_type) @property - def thumbnail_path(self) -> str: + def thumbnail_path(self) -> Path: webp_file_name = f"{self.pk:07}.webp" if self.storage_type == self.STORAGE_TYPE_GPG: webp_file_name += ".gpg" - webp_file_path = os.path.join(settings.THUMBNAIL_DIR, webp_file_name) + webp_file_path = settings.THUMBNAIL_DIR / Path(webp_file_name) - return os.path.normpath(webp_file_path) + return webp_file_path.resolve() @property def thumbnail_file(self): @@ -369,14 +394,13 @@ class Log(models.Model): return self.message -class SavedView(models.Model): +class SavedView(ModelWithOwner): class Meta: ordering = ("name",) verbose_name = _("saved view") verbose_name_plural = _("saved views") - user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name=_("user")) name = models.CharField(_("name"), max_length=128) show_on_dashboard = models.BooleanField( @@ -423,6 +447,12 @@ class SavedViewFilterRule(models.Model): (23, _("ASN greater than")), (24, _("ASN less than")), (25, _("storage path is")), + (26, _("has correspondent in")), + (27, _("does not have correspondent in")), + (28, _("has document type in")), + (29, _("does not have document type in")), + (30, _("has storage path in")), + (31, _("does not have storage path in")), ] saved_view = models.ForeignKey( @@ -440,6 +470,9 @@ class SavedViewFilterRule(models.Model): verbose_name = _("filter rule") verbose_name_plural = _("filter rules") + def __str__(self) -> str: + return f"SavedViewFilterRule: {self.rule_type} : {self.value}" + # TODO: why is this in the models file? # TODO: how about, what is this and where is it documented? @@ -453,7 +486,7 @@ class FileInfo: ( "created-title", re.compile( - r"^(?P\d{8}(\d{6})?Z) - " r"(?P.*)$", + r"^(?P\d{8}(\d{6})?Z) - (?P.*)$", flags=re.IGNORECASE, ), ), @@ -604,12 +637,15 @@ class PaperlessTask(models.Model): ), ) + def __str__(self) -> str: + return f"Task {self.task_id}" -class Comment(models.Model): - comment = models.TextField( + +class Note(models.Model): + note = models.TextField( _("content"), blank=True, - help_text=_("Comment for the document"), + help_text=_("Note for the document"), ) created = models.DateTimeField( @@ -622,7 +658,7 @@ class Comment(models.Model): Document, blank=True, null=True, - related_name="documents", + related_name="notes", on_delete=models.CASCADE, verbose_name=_("document"), ) @@ -631,15 +667,15 @@ class Comment(models.Model): User, blank=True, null=True, - related_name="users", + related_name="notes", on_delete=models.SET_NULL, verbose_name=_("user"), ) class Meta: ordering = ("created",) - verbose_name = _("comment") - verbose_name_plural = _("comments") + verbose_name = _("note") + verbose_name_plural = _("notes") def __str__(self): - return self.content + return self.note diff --git a/src/documents/parsers.py b/src/documents/parsers.py index cd17a33b1..4bec79c61 100644 --- a/src/documents/parsers.py +++ b/src/documents/parsers.py @@ -323,7 +323,7 @@ class DocumentParser(LoggingMixin): return [] def parse(self, document_path, mime_type, file_name=None): - raise NotImplementedError() + raise NotImplementedError def get_archive_path(self): return self.archive_path @@ -332,7 +332,7 @@ class DocumentParser(LoggingMixin): """ Returns the path to a file we can use as a thumbnail for this document. """ - raise NotImplementedError() + raise NotImplementedError def get_text(self): return self.text diff --git a/src/documents/permissions.py b/src/documents/permissions.py new file mode 100644 index 000000000..d4114e488 --- /dev/null +++ b/src/documents/permissions.py @@ -0,0 +1,116 @@ +from django.contrib.auth.models import Group +from django.contrib.auth.models import Permission +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from guardian.models import GroupObjectPermission +from guardian.shortcuts import assign_perm +from guardian.shortcuts import get_objects_for_user +from guardian.shortcuts import get_users_with_perms +from guardian.shortcuts import remove_perm +from rest_framework.permissions import BasePermission +from rest_framework.permissions import DjangoObjectPermissions + + +class PaperlessObjectPermissions(DjangoObjectPermissions): + """ + A permissions backend that checks for object-level permissions + or for ownership. + """ + + perms_map = { + "GET": ["%(app_label)s.view_%(model_name)s"], + "OPTIONS": ["%(app_label)s.view_%(model_name)s"], + "HEAD": ["%(app_label)s.view_%(model_name)s"], + "POST": ["%(app_label)s.add_%(model_name)s"], + "PUT": ["%(app_label)s.change_%(model_name)s"], + "PATCH": ["%(app_label)s.change_%(model_name)s"], + "DELETE": ["%(app_label)s.delete_%(model_name)s"], + } + + def has_object_permission(self, request, view, obj): + if hasattr(obj, "owner") and obj.owner is not None: + if request.user == obj.owner: + return True + else: + return super().has_object_permission(request, view, obj) + else: + return True # no owner + + +class PaperlessAdminPermissions(BasePermission): + def has_permission(self, request, view): + return request.user.has_perm("admin.view_logentry") + + +def get_groups_with_only_permission(obj, codename): + ctype = ContentType.objects.get_for_model(obj) + permission = Permission.objects.get(content_type=ctype, codename=codename) + group_object_perm_group_ids = ( + GroupObjectPermission.objects.filter( + object_pk=obj.pk, + content_type=ctype, + ) + .filter(permission=permission) + .values_list("group_id") + ) + return Group.objects.filter(id__in=group_object_perm_group_ids).distinct() + + +def set_permissions_for_object(permissions, object): + for action in permissions: + permission = f"{action}_{object.__class__.__name__.lower()}" + # users + users_to_add = User.objects.filter(id__in=permissions[action]["users"]) + users_to_remove = get_users_with_perms( + object, + only_with_perms_in=[permission], + with_group_users=False, + ) + if len(users_to_add) > 0 and len(users_to_remove) > 0: + users_to_remove = users_to_remove.exclude(id__in=users_to_add) + if len(users_to_remove) > 0: + for user in users_to_remove: + remove_perm(permission, user, object) + if len(users_to_add) > 0: + for user in users_to_add: + assign_perm(permission, user, object) + if action == "change": + # change gives view too + assign_perm( + f"view_{object.__class__.__name__.lower()}", + user, + object, + ) + # groups + groups_to_add = Group.objects.filter(id__in=permissions[action]["groups"]) + groups_to_remove = get_groups_with_only_permission( + object, + permission, + ) + if len(groups_to_add) > 0 and len(groups_to_remove) > 0: + groups_to_remove = groups_to_remove.exclude(id__in=groups_to_add) + if len(groups_to_remove) > 0: + for group in groups_to_remove: + remove_perm(permission, group, object) + if len(groups_to_add) > 0: + for group in groups_to_add: + assign_perm(permission, group, object) + if action == "change": + # change gives view too + assign_perm( + f"view_{object.__class__.__name__.lower()}", + group, + object, + ) + + +def get_objects_for_user_owner_aware(user, perms, Model): + objects_owned = Model.objects.filter(owner=user) + objects_unowned = Model.objects.filter(owner__isnull=True) + objects_with_perms = get_objects_for_user( + user=user, + perms=perms, + klass=Model, + accept_global_perms=False, + ) + return objects_owned | objects_unowned | objects_with_perms diff --git a/src/documents/sanity_checker.py b/src/documents/sanity_checker.py index 578f1a936..b74d07bd5 100644 --- a/src/documents/sanity_checker.py +++ b/src/documents/sanity_checker.py @@ -94,7 +94,7 @@ def check_sanity(progress=False) -> SanityCheckMessages: except OSError as e: messages.error(doc.pk, f"Cannot read original file of document: {e}") else: - if not checksum == doc.checksum: + if checksum != doc.checksum: messages.error( doc.pk, "Checksum mismatch. " @@ -127,7 +127,7 @@ def check_sanity(progress=False) -> SanityCheckMessages: f"Cannot read archive file of document : {e}", ) else: - if not checksum == doc.archive_checksum: + if checksum != doc.archive_checksum: messages.error( doc.pk, "Checksum mismatch of archived document. " diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index 8282e46d6..2ad392f4c 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -7,7 +7,7 @@ from celery import states try: import zoneinfo except ImportError: - import backports.zoneinfo as zoneinfo + from backports import zoneinfo import magic from django.conf import settings from django.utils.text import slugify @@ -28,6 +28,14 @@ from .models import UiSettings from .models import PaperlessTask from .parsers import is_mime_type_supported +from guardian.shortcuts import get_users_with_perms + +from django.contrib.auth.models import User +from django.contrib.auth.models import Group + +from documents.permissions import get_groups_with_only_permission +from documents.permissions import set_permissions_for_object + # https://www.django-rest-framework.org/api-guide/serializers/#example class DynamicFieldsModelSerializer(serializers.ModelSerializer): @@ -60,6 +68,26 @@ class MatchingModelSerializer(serializers.ModelSerializer): slug = SerializerMethodField() + def validate(self, data): + # see https://github.com/encode/django-rest-framework/issues/7173 + name = data["name"] if "name" in data else self.instance.name + owner = ( + data["owner"] + if "owner" in data + else self.user + if hasattr(self, "user") + else None + ) + pk = self.instance.pk if hasattr(self.instance, "pk") else None + if ("name" in data or "owner" in data) and self.Meta.model.objects.filter( + name=name, + owner=owner, + ).exclude(pk=pk).exists(): + raise serializers.ValidationError( + {"error": "Object violates owner / name unique constraint"}, + ) + return data + def validate_match(self, match): if ( "matching_algorithm" in self.initial_data @@ -74,7 +102,127 @@ class MatchingModelSerializer(serializers.ModelSerializer): return match -class CorrespondentSerializer(MatchingModelSerializer): +class SetPermissionsMixin: + def _validate_user_ids(self, user_ids): + users = User.objects.none() + if user_ids is not None: + users = User.objects.filter(id__in=user_ids) + if not users.count() == len(user_ids): + raise serializers.ValidationError( + "Some users in don't exist or were specified twice.", + ) + return users + + def _validate_group_ids(self, group_ids): + groups = Group.objects.none() + if group_ids is not None: + groups = Group.objects.filter(id__in=group_ids) + if not groups.count() == len(group_ids): + raise serializers.ValidationError( + "Some groups in don't exist or were specified twice.", + ) + return groups + + def validate_set_permissions(self, set_permissions=None): + permissions_dict = { + "view": { + "users": User.objects.none(), + "groups": Group.objects.none(), + }, + "change": { + "users": User.objects.none(), + "groups": Group.objects.none(), + }, + } + if set_permissions is not None: + for action in permissions_dict: + if action in set_permissions: + users = set_permissions[action]["users"] + permissions_dict[action]["users"] = self._validate_user_ids(users) + groups = set_permissions[action]["groups"] + permissions_dict[action]["groups"] = self._validate_group_ids( + groups, + ) + return permissions_dict + + def _set_permissions(self, permissions, object): + set_permissions_for_object(permissions, object) + + +class OwnedObjectSerializer(serializers.ModelSerializer, SetPermissionsMixin): + def __init__(self, *args, **kwargs): + self.user = kwargs.pop("user", None) + super().__init__(*args, **kwargs) + + def get_permissions(self, obj): + view_codename = f"view_{obj.__class__.__name__.lower()}" + change_codename = f"change_{obj.__class__.__name__.lower()}" + return { + "view": { + "users": get_users_with_perms( + obj, + only_with_perms_in=[view_codename], + with_group_users=False, + ).values_list("id", flat=True), + "groups": get_groups_with_only_permission( + obj, + codename=view_codename, + ).values_list("id", flat=True), + }, + "change": { + "users": get_users_with_perms( + obj, + only_with_perms_in=[change_codename], + with_group_users=False, + ).values_list("id", flat=True), + "groups": get_groups_with_only_permission( + obj, + codename=change_codename, + ).values_list("id", flat=True), + }, + } + + permissions = SerializerMethodField(read_only=True) + + set_permissions = serializers.DictField( + label="Set permissions", + allow_empty=True, + required=False, + write_only=True, + ) + # other methods in mixin + + def create(self, validated_data): + if self.user and ( + "owner" not in validated_data or validated_data["owner"] is None + ): + validated_data["owner"] = self.user + permissions = None + if "set_permissions" in validated_data: + permissions = validated_data.pop("set_permissions") + instance = super().create(validated_data) + if permissions is not None: + self._set_permissions(permissions, instance) + return instance + + def update(self, instance, validated_data): + if "set_permissions" in validated_data: + self._set_permissions(validated_data["set_permissions"], instance) + if "owner" in validated_data and "name" in self.Meta.fields: + name = validated_data["name"] if "name" in validated_data else instance.name + not_unique = ( + self.Meta.model.objects.exclude(pk=instance.pk) + .filter(owner=validated_data["owner"], name=name) + .exists() + ) + if not_unique: + raise serializers.ValidationError( + {"error": "Object violates owner / name unique constraint"}, + ) + return super().update(instance, validated_data) + + +class CorrespondentSerializer(MatchingModelSerializer, OwnedObjectSerializer): last_correspondence = serializers.DateTimeField(read_only=True) @@ -89,10 +237,13 @@ class CorrespondentSerializer(MatchingModelSerializer): "is_insensitive", "document_count", "last_correspondence", + "owner", + "permissions", + "set_permissions", ) -class DocumentTypeSerializer(MatchingModelSerializer): +class DocumentTypeSerializer(MatchingModelSerializer, OwnedObjectSerializer): class Meta: model = DocumentType fields = ( @@ -103,6 +254,9 @@ class DocumentTypeSerializer(MatchingModelSerializer): "matching_algorithm", "is_insensitive", "document_count", + "owner", + "permissions", + "set_permissions", ) @@ -128,7 +282,7 @@ class ColorField(serializers.Field): for id, color in self.COLOURS: if id == data: return color - raise serializers.ValidationError() + raise serializers.ValidationError def to_representation(self, value): for id, color in self.COLOURS: @@ -137,7 +291,7 @@ class ColorField(serializers.Field): return 1 -class TagSerializerVersion1(MatchingModelSerializer): +class TagSerializerVersion1(MatchingModelSerializer, OwnedObjectSerializer): colour = ColorField(source="color", default="#a6cee3") @@ -153,10 +307,13 @@ class TagSerializerVersion1(MatchingModelSerializer): "is_insensitive", "is_inbox_tag", "document_count", + "owner", + "permissions", + "set_permissions", ) -class TagSerializer(MatchingModelSerializer): +class TagSerializer(MatchingModelSerializer, OwnedObjectSerializer): def get_text_color(self, obj): try: h = obj.color.lstrip("#") @@ -185,6 +342,9 @@ class TagSerializer(MatchingModelSerializer): "is_insensitive", "is_inbox_tag", "document_count", + "owner", + "permissions", + "set_permissions", ) def validate_color(self, color): @@ -214,7 +374,7 @@ class StoragePathField(serializers.PrimaryKeyRelatedField): return StoragePath.objects.all() -class DocumentSerializer(DynamicFieldsModelSerializer): +class DocumentSerializer(OwnedObjectSerializer, DynamicFieldsModelSerializer): correspondent = CorrespondentField(allow_null=True) tags = TagsField(many=True) @@ -225,6 +385,12 @@ class DocumentSerializer(DynamicFieldsModelSerializer): archived_file_name = SerializerMethodField() created_date = serializers.DateField(required=False) + owner = serializers.PrimaryKeyRelatedField( + queryset=User.objects.all(), + required=False, + allow_null=True, + ) + def get_original_file_name(self, obj): return obj.get_public_filename() @@ -276,6 +442,10 @@ class DocumentSerializer(DynamicFieldsModelSerializer): "archive_serial_number", "original_file_name", "archived_file_name", + "owner", + "permissions", + "set_permissions", + "notes", ) @@ -285,7 +455,7 @@ class SavedViewFilterRuleSerializer(serializers.ModelSerializer): fields = ["rule_type", "value"] -class SavedViewSerializer(serializers.ModelSerializer): +class SavedViewSerializer(OwnedObjectSerializer): filter_rules = SavedViewFilterRuleSerializer(many=True) @@ -300,6 +470,9 @@ class SavedViewSerializer(serializers.ModelSerializer): "sort_field", "sort_reverse", "filter_rules", + "owner", + "permissions", + "set_permissions", ] def update(self, instance, validated_data): @@ -307,6 +480,9 @@ class SavedViewSerializer(serializers.ModelSerializer): rules_data = validated_data.pop("filter_rules") else: rules_data = None + if "user" in validated_data: + # backwards compatibility + validated_data["owner"] = validated_data.pop("user") super().update(instance, validated_data) if rules_data is not None: SavedViewFilterRule.objects.filter(saved_view=instance).delete() @@ -316,6 +492,9 @@ class SavedViewSerializer(serializers.ModelSerializer): def create(self, validated_data): rules_data = validated_data.pop("filter_rules") + if "user" in validated_data: + # backwards compatibility + validated_data["owner"] = validated_data.pop("user") saved_view = SavedView.objects.create(**validated_data) for rule_data in rules_data: SavedViewFilterRule.objects.create(saved_view=saved_view, **rule_data) @@ -334,12 +513,12 @@ class DocumentListSerializer(serializers.Serializer): def _validate_document_id_list(self, documents, name="documents"): if not type(documents) == list: raise serializers.ValidationError(f"{name} must be a list") - if not all([type(i) == int for i in documents]): + if not all(type(i) == int for i in documents): raise serializers.ValidationError(f"{name} must be a list of integers") count = Document.objects.filter(id__in=documents).count() if not count == len(documents): raise serializers.ValidationError( - f"Some documents in {name} don't exist or were " f"specified twice.", + f"Some documents in {name} don't exist or were specified twice.", ) def validate_documents(self, documents): @@ -347,7 +526,7 @@ class DocumentListSerializer(serializers.Serializer): return documents -class BulkEditSerializer(DocumentListSerializer): +class BulkEditSerializer(DocumentListSerializer, SetPermissionsMixin): method = serializers.ChoiceField( choices=[ @@ -359,6 +538,7 @@ class BulkEditSerializer(DocumentListSerializer): "modify_tags", "delete", "redo_ocr", + "set_permissions", ], label="Method", write_only=True, @@ -369,7 +549,7 @@ class BulkEditSerializer(DocumentListSerializer): def _validate_tag_id_list(self, tags, name="tags"): if not type(tags) == list: raise serializers.ValidationError(f"{name} must be a list") - if not all([type(i) == int for i in tags]): + if not all(type(i) == int for i in tags): raise serializers.ValidationError(f"{name} must be a list of integers") count = Tag.objects.filter(id__in=tags).count() if not count == len(tags): @@ -394,6 +574,8 @@ class BulkEditSerializer(DocumentListSerializer): return bulk_edit.delete elif method == "redo_ocr": return bulk_edit.redo_ocr + elif method == "set_permissions": + return bulk_edit.set_permissions else: raise serializers.ValidationError("Unsupported method.") @@ -457,6 +639,19 @@ class BulkEditSerializer(DocumentListSerializer): else: raise serializers.ValidationError("remove_tags not specified") + def _validate_owner(self, owner): + ownerUser = User.objects.get(pk=owner) + if ownerUser is None: + raise serializers.ValidationError("Specified owner cannot be found") + return ownerUser + + def _validate_parameters_set_permissions(self, parameters): + parameters["set_permissions"] = self.validate_set_permissions( + parameters["set_permissions"], + ) + if "owner" in parameters and parameters["owner"] is not None: + self._validate_owner(parameters["owner"]) + def validate(self, attrs): method = attrs["method"] @@ -472,6 +667,8 @@ class BulkEditSerializer(DocumentListSerializer): self._validate_parameters_modify_tags(parameters) elif method == bulk_edit.set_storage_path: self._validate_storage_path(parameters) + elif method == bulk_edit.set_permissions: + self._validate_parameters_set_permissions(parameters) return attrs @@ -520,6 +717,14 @@ class PostDocumentSerializer(serializers.Serializer): required=False, ) + archive_serial_number = serializers.IntegerField( + label="ASN", + write_only=True, + required=False, + min_value=Document.ARCHIVE_SERIAL_NUMBER_MIN, + max_value=Document.ARCHIVE_SERIAL_NUMBER_MAX, + ) + def validate_document(self, document): document_data = document.file.read() mime_type = magic.from_buffer(document_data, mime=True) @@ -577,7 +782,7 @@ class BulkDownloadSerializer(DocumentListSerializer): }[compression] -class StoragePathSerializer(MatchingModelSerializer): +class StoragePathSerializer(MatchingModelSerializer, OwnedObjectSerializer): class Meta: model = StoragePath fields = ( @@ -589,6 +794,9 @@ class StoragePathSerializer(MatchingModelSerializer): "matching_algorithm", "is_insensitive", "document_count", + "owner", + "permissions", + "set_permissions", ) def validate_path(self, path): @@ -614,13 +822,26 @@ class StoragePathSerializer(MatchingModelSerializer): asn="asn", tags="tags", tag_list="tag_list", + owner_username="someone", + original_name="testfile", ) - except (KeyError): - raise serializers.ValidationError(_("Invalid variable detected.")) + except KeyError as err: + raise serializers.ValidationError(_("Invalid variable detected.")) from err return path + def update(self, instance, validated_data): + """ + When a storage path is updated, see if documents + using it require a rename/move + """ + doc_ids = [doc.id for doc in instance.documents.all()] + if len(doc_ids): + bulk_edit.bulk_update_documents.delay(doc_ids) + + return super().update(instance, validated_data) + class UiSettingsViewSerializer(serializers.ModelSerializer): class Meta: @@ -698,7 +919,7 @@ class AcknowledgeTasksViewSerializer(serializers.Serializer): 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]): + 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): diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index cd42c9030..a7f75c489 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -1,10 +1,10 @@ import logging import os import shutil -from pathlib import Path from celery import states from celery.signals import before_task_publish +from celery.signals import task_failure from celery.signals import task_postrun from celery.signals import task_prerun from django.conf import settings @@ -20,14 +20,14 @@ from django.utils import termcolors from django.utils import timezone from filelock import FileLock -from .. import matching -from ..file_handling import create_source_path_directory -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 +from documents import matching +from documents.file_handling import create_source_path_directory +from documents.file_handling import delete_empty_directories +from documents.file_handling import generate_unique_filename +from documents.models import Document +from documents.models import MatchingModel +from documents.models import PaperlessTask +from documents.models import Tag logger = logging.getLogger("paperless.handlers") @@ -55,10 +55,7 @@ def set_correspondent( potential_correspondents = matching.match_correspondents(document, classifier) potential_count = len(potential_correspondents) - if potential_correspondents: - selected = potential_correspondents[0] - else: - selected = None + selected = potential_correspondents[0] if potential_correspondents else None if potential_count > 1: if use_first: logger.debug( @@ -121,10 +118,7 @@ def set_document_type( potential_document_type = matching.match_document_types(document, classifier) potential_count = len(potential_document_type) - if potential_document_type: - selected = potential_document_type[0] - else: - selected = None + selected = potential_document_type[0] if potential_document_type else None if potential_count > 1: if use_first: @@ -256,10 +250,7 @@ def set_storage_path( ) potential_count = len(potential_storage_path) - if potential_storage_path: - selected = potential_storage_path[0] - else: - selected = None + selected = potential_storage_path[0] if potential_storage_path else None if potential_count > 1: if use_first: @@ -371,7 +362,7 @@ def validate_move(instance, old_path, new_path): if not os.path.isfile(old_path): # Can't do anything if the old file does not exist anymore. logger.fatal(f"Document {str(instance)}: File {old_path} has gone.") - raise CannotMoveFilesException() + raise CannotMoveFilesException if os.path.isfile(new_path): # Can't do anything if the new file already exists. Skip updating file. @@ -379,12 +370,12 @@ def validate_move(instance, old_path, new_path): f"Document {str(instance)}: Cannot rename file " f"since target path {new_path} already exists.", ) - raise CannotMoveFilesException() + raise CannotMoveFilesException @receiver(models.signals.m2m_changed, sender=Document.tags.through) @receiver(models.signals.post_save, sender=Document) -def update_filename_and_move_files(sender, instance, **kwargs): +def update_filename_and_move_files(sender, instance: Document, **kwargs): if not instance.filename: # Can't update the filename if there is no filename to begin with @@ -533,17 +524,9 @@ def before_task_publish_handler(sender=None, headers=None, body=None, **kwargs): try: task_args = body[0] - task_kwargs = body[1] + input_doc, _ = task_args - task_file_name = "" - if "override_filename" in task_kwargs: - task_file_name = task_kwargs["override_filename"] - - # Nothing was found, report the task first argument - if not len(task_file_name): - # There are always some arguments to the consume, first is always filename - filepath = Path(task_args[0]) - task_file_name = filepath.name + task_file_name = input_doc.original_file.name PaperlessTask.objects.create( task_id=headers["id"], @@ -555,10 +538,10 @@ def before_task_publish_handler(sender=None, headers=None, body=None, **kwargs): date_started=None, date_done=None, ) - except Exception as e: # pragma: no cover + except Exception: # pragma: no cover # Don't let an exception in the signal handlers prevent # a document from being consumed. - logger.error(f"Creating PaperlessTask failed: {e}", exc_info=True) + logger.exception("Creating PaperlessTask failed") @task_prerun.connect @@ -577,15 +560,20 @@ def task_prerun_handler(sender=None, task_id=None, task=None, **kwargs): task_instance.status = states.STARTED task_instance.date_started = timezone.now() task_instance.save() - except Exception as e: # pragma: no cover + except Exception: # pragma: no cover # Don't let an exception in the signal handlers prevent # a document from being consumed. - logger.error(f"Setting PaperlessTask started failed: {e}", exc_info=True) + logger.exception("Setting PaperlessTask started failed") @task_postrun.connect def task_postrun_handler( - sender=None, task_id=None, task=None, retval=None, state=None, **kwargs + sender=None, + task_id=None, + task=None, + retval=None, + state=None, + **kwargs, ): """ Updates the result of the PaperlessTask. @@ -600,7 +588,33 @@ def task_postrun_handler( task_instance.result = retval task_instance.date_done = timezone.now() task_instance.save() - except Exception as e: # pragma: no cover + except Exception: # pragma: no cover # Don't let an exception in the signal handlers prevent # a document from being consumed. - logger.error(f"Updating PaperlessTask failed: {e}", exc_info=True) + logger.exception("Updating PaperlessTask failed") + + +@task_failure.connect +def task_failure_handler( + sender=None, + task_id=None, + exception=None, + args=None, + traceback=None, + **kwargs, +): + """ + Updates the result of a failed PaperlessTask. + + https://docs.celeryq.dev/en/stable/userguide/signals.html#task-failure + """ + try: + task_instance = PaperlessTask.objects.filter(task_id=task_id).first() + + if task_instance is not None and task_instance.result is None: + task_instance.status = states.FAILURE + task_instance.result = traceback + task_instance.date_done = timezone.now() + task_instance.save() + except Exception: # pragma: no cover + logger.exception("Updating PaperlessTask failed") diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 1f9c94917..c2d726405 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -1,12 +1,10 @@ import hashlib import logging -import os import shutil import uuid -from pathlib import Path +from typing import Optional from typing import Type -import dateutil.parser import tqdm from asgiref.sync import async_to_sync from celery import shared_task @@ -21,6 +19,9 @@ from documents.classifier import DocumentClassifier from documents.classifier import load_classifier from documents.consumer import Consumer from documents.consumer import ConsumerError +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentMetadataOverrides +from documents.data_models import DocumentSource from documents.file_handling import create_source_path_directory from documents.file_handling import generate_unique_filename from documents.models import Correspondent @@ -87,32 +88,20 @@ def train_classifier(): @shared_task def consume_file( - path, - override_filename=None, - override_title=None, - override_correspondent_id=None, - override_document_type_id=None, - override_tag_ids=None, - task_id=None, - override_created=None, + input_doc: ConsumableDocument, + overrides: Optional[DocumentMetadataOverrides] = None, ): - path = Path(path).resolve() - asn = None - - # Celery converts this to a string, but everything expects a datetime - # Long term solution is to not use JSON for the serializer but pickle instead - # TODO: This will be resolved in kombu 5.3, expected with celery 5.3 - # More types will be retained through JSON encode/decode - if override_created is not None and isinstance(override_created, str): - try: - override_created = dateutil.parser.isoparse(override_created) - except Exception: - pass + # Default no overrides + if overrides is None: + overrides = DocumentMetadataOverrides() # read all barcodes in the current document if settings.CONSUMER_ENABLE_BARCODES or settings.CONSUMER_ENABLE_ASN_BARCODE: - doc_barcode_info = barcodes.scan_file_for_barcodes(path) + doc_barcode_info = barcodes.scan_file_for_barcodes( + input_doc.original_file, + input_doc.mime_type, + ) # split document by separator pages, if enabled if settings.CONSUMER_ENABLE_BARCODES: @@ -120,7 +109,7 @@ def consume_file( if len(separators) > 0: logger.debug( - f"Pages with separators found in: {str(path)}", + f"Pages with separators found in: {input_doc.original_file}", ) document_list = barcodes.separate_pages( doc_barcode_info.pdf_path, @@ -133,18 +122,20 @@ def consume_file( # Move it to consume directory to be picked up # Otherwise, use the current parent to keep possible tags # from subdirectories - try: - # is_relative_to would be nicer, but new in 3.9 - _ = path.relative_to(settings.SCRATCH_DIR) + if input_doc.source != DocumentSource.ConsumeFolder: save_to_dir = settings.CONSUMPTION_DIR - except ValueError: - save_to_dir = path.parent + else: + # Note this uses the original file, because it's in the + # consume folder already and may include additional path + # components for tagging + # the .path is somewhere in scratch in this case + save_to_dir = input_doc.original_file.parent for n, document in enumerate(document_list): # save to consumption dir # rename it to the original filename with number prefix - if override_filename: - newname = f"{str(n)}_" + override_filename + if overrides.filename is not None: + newname = f"{str(n)}_{overrides.filename}" else: newname = None @@ -155,24 +146,27 @@ def consume_file( ) # Split file has been copied safely, remove it - os.remove(document) + document.unlink() # And clean up the directory as well, now it's empty - shutil.rmtree(os.path.dirname(document_list[0])) + shutil.rmtree(document_list[0].parent) - # Delete the PDF file which was split - os.remove(doc_barcode_info.pdf_path) + # This file has been split into multiple files without issue + # remove the original and working copy + input_doc.original_file.unlink() - # If the original was a TIFF, remove the original file as well - if str(doc_barcode_info.pdf_path) != str(path): - logger.debug(f"Deleting file {path}") - os.unlink(path) + # If the original file was a TIFF, remove the PDF generated from it + if input_doc.mime_type == "image/tiff": + logger.debug( + f"Deleting file {doc_barcode_info.pdf_path}", + ) + doc_barcode_info.pdf_path.unlink() # notify the sender, otherwise the progress bar # in the UI stays stuck payload = { - "filename": override_filename or path.name, - "task_id": task_id, + "filename": overrides.filename or input_doc.original_file.name, + "task_id": None, "current_progress": 100, "max_progress": 100, "status": "SUCCESS", @@ -191,21 +185,21 @@ def consume_file( # try reading the ASN from barcode if settings.CONSUMER_ENABLE_ASN_BARCODE: - asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) - if asn: - logger.info(f"Found ASN in barcode: {asn}") + overrides.asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) + if overrides.asn: + logger.info(f"Found ASN in barcode: {overrides.asn}") # continue with consumption if no barcode was found document = Consumer().try_consume_file( - path, - override_filename=override_filename, - override_title=override_title, - override_correspondent_id=override_correspondent_id, - override_document_type_id=override_document_type_id, - override_tag_ids=override_tag_ids, - task_id=task_id, - override_created=override_created, - override_asn=asn, + input_doc.original_file, + override_filename=overrides.filename, + override_title=overrides.title, + override_correspondent_id=overrides.correspondent_id, + override_document_type_id=overrides.document_type_id, + override_tag_ids=overrides.tag_ids, + override_created=overrides.created, + override_asn=overrides.asn, + override_owner_id=overrides.owner_id, ) if document: @@ -303,7 +297,7 @@ def update_document_archive_file(document_id): except Exception: logger.exception( - f"Error while parsing document {document} " f"(ID: {document_id})", + f"Error while parsing document {document} (ID: {document_id})", ) finally: parser.cleanup() diff --git a/src/documents/tests/data/model.pickle b/src/documents/tests/data/model.pickle deleted file mode 100644 index ff88b8894..000000000 Binary files a/src/documents/tests/data/model.pickle and /dev/null differ diff --git a/src/documents/tests/factories.py b/src/documents/tests/factories.py index 83644c411..de41bbd02 100644 --- a/src/documents/tests/factories.py +++ b/src/documents/tests/factories.py @@ -1,8 +1,8 @@ from factory import Faker from factory.django import DjangoModelFactory -from ..models import Correspondent -from ..models import Document +from documents.models import Correspondent +from documents.models import Document class CorrespondentFactory(DjangoModelFactory): diff --git a/src/documents/tests/test_api.py b/src/documents/tests/test_api.py index 38ab46b91..6cd6b610a 100644 --- a/src/documents/tests/test_api.py +++ b/src/documents/tests/test_api.py @@ -17,32 +17,36 @@ import celery try: import zoneinfo except ImportError: - import backports.zoneinfo as zoneinfo + from backports import zoneinfo import pytest from django.conf import settings +from django.contrib.auth.models import Group +from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.test import override_settings from django.utils import timezone from dateutil.relativedelta import relativedelta +from rest_framework import status from documents import bulk_edit from documents import index from documents.models import Correspondent from documents.models import Document +from documents.tests.utils import DocumentConsumeDelayMixin 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 -from documents.models import Comment +from documents.models import Note from documents.tests.utils import DirectoriesMixin from paperless import version from rest_framework.test import APITestCase from whoosh.writing import AsyncWriter -class TestDocumentApi(DirectoriesMixin, APITestCase): +class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase): def setUp(self): super().setUp() @@ -71,7 +75,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): doc.tags.add(tag) response = self.client.get("/api/documents/", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) returned_doc = response.data["results"][0] @@ -92,7 +96,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): format="json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) doc_after_save = Document.objects.get(id=doc.id) @@ -106,9 +110,9 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def test_document_fields(self): c = Correspondent.objects.create(name="c", pk=41) dt = DocumentType.objects.create(name="dt", pk=63) - tag = Tag.objects.create(name="t", pk=85) + Tag.objects.create(name="t", pk=85) storage_path = StoragePath.objects.create(name="sp", pk=77, path="p") - doc = Document.objects.create( + Document.objects.create( title="WOW", content="the content", correspondent=c, @@ -119,27 +123,27 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get("/api/documents/", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results_full = response.data["results"] self.assertIn("content", results_full[0]) self.assertIn("id", results_full[0]) response = self.client.get("/api/documents/?fields=id", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertFalse("content" in results[0]) self.assertIn("id", results[0]) self.assertEqual(len(results[0]), 1) response = self.client.get("/api/documents/?fields=content", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertIn("content", results[0]) self.assertFalse("id" in results[0]) self.assertEqual(len(results[0]), 1) response = self.client.get("/api/documents/?fields=id,content", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertIn("content", results[0]) self.assertIn("id", results[0]) @@ -149,19 +153,19 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/?fields=id,conteasdnt", format="json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertFalse("content" in results[0]) self.assertIn("id", results[0]) self.assertEqual(len(results[0]), 1) response = self.client.get("/api/documents/?fields=", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] - self.assertEqual(results_full, results) + self.assertEqual(len(results_full[0]), len(results[0])) response = self.client.get("/api/documents/?fields=dgfhs", format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results[0]), 0) @@ -189,17 +193,17 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get(f"/api/documents/{doc.pk}/download/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content) response = self.client.get(f"/api/documents/{doc.pk}/preview/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content) response = self.client.get(f"/api/documents/{doc.pk}/thumb/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content_thumbnail) @override_settings(FILENAME_FORMAT="") @@ -223,26 +227,26 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get(f"/api/documents/{doc.pk}/download/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content_archive) response = self.client.get( f"/api/documents/{doc.pk}/download/?original=true", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content) response = self.client.get(f"/api/documents/{doc.pk}/preview/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content_archive) response = self.client.get( f"/api/documents/{doc.pk}/preview/?original=true", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.content, content) def test_document_actions_not_existing_file(self): @@ -254,13 +258,13 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get(f"/api/documents/{doc.pk}/download/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) response = self.client.get(f"/api/documents/{doc.pk}/preview/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) response = self.client.get(f"/api/documents/{doc.pk}/thumb/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) def test_document_filters(self): @@ -290,13 +294,13 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): doc3.tags.add(tag_3) response = self.client.get("/api/documents/?is_in_inbox=true") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 1) self.assertEqual(results[0]["id"], doc1.id) response = self.client.get("/api/documents/?is_in_inbox=false") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 2) self.assertCountEqual([results[0]["id"], results[1]["id"]], [doc2.id, doc3.id]) @@ -304,7 +308,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__in={tag_inbox.id},{tag_3.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 2) self.assertCountEqual([results[0]["id"], results[1]["id"]], [doc1.id, doc3.id]) @@ -312,7 +316,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__in={tag_2.id},{tag_3.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 2) self.assertCountEqual([results[0]["id"], results[1]["id"]], [doc2.id, doc3.id]) @@ -320,7 +324,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__all={tag_2.id},{tag_3.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 1) self.assertEqual(results[0]["id"], doc3.id) @@ -328,19 +332,19 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__all={tag_inbox.id},{tag_3.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 0) response = self.client.get( f"/api/documents/?tags__id__all={tag_inbox.id}a{tag_3.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 3) response = self.client.get(f"/api/documents/?tags__id__none={tag_3.id}") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 2) self.assertCountEqual([results[0]["id"], results[1]["id"]], [doc1.id, doc2.id]) @@ -348,7 +352,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__none={tag_3.id},{tag_2.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 1) self.assertEqual(results[0]["id"], doc1.id) @@ -356,7 +360,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get( f"/api/documents/?tags__id__none={tag_2.id},{tag_inbox.id}", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 0) @@ -388,7 +392,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get("/api/documents/?title_content=A") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 3) self.assertCountEqual( @@ -397,7 +401,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get("/api/documents/?title_content=B") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 3) self.assertCountEqual( @@ -406,7 +410,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get("/api/documents/?title_content=X") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] self.assertEqual(len(results), 0) @@ -503,9 +507,9 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): index.update_document(writer, doc) response = self.client.get("/api/documents/?query=content&page=0&page_size=10") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) response = self.client.get("/api/documents/?query=content&page=3&page_size=10") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) @override_settings( TIME_ZONE="UTC", @@ -776,21 +780,21 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): m.side_effect = lambda ix, term, limit: [term for _ in range(limit)] response = self.client.get("/api/search/autocomplete/?term=test") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 10) response = self.client.get("/api/search/autocomplete/?term=test&limit=20") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 20) response = self.client.get("/api/search/autocomplete/?term=test&limit=-1") - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) response = self.client.get("/api/search/autocomplete/") - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) response = self.client.get("/api/search/autocomplete/?term=") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 10) @pytest.mark.skip(reason="Not implemented yet") @@ -841,7 +845,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get(f"/api/documents/?more_like_id={d2.id}") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) results = response.data["results"] @@ -873,7 +877,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): added=timezone.make_aware(datetime.datetime(2020, 7, 13)), content="test", ) - d6 = Document.objects.create(checksum="6", content="test2") + Document.objects.create(checksum="6", content="test2") d7 = Document.objects.create(checksum="7", storage_path=sp, content="test") with AsyncWriter(index.open_index()) as writer: @@ -882,7 +886,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def search_query(q): r = self.client.get("/api/documents/?query=test" + q) - self.assertEqual(r.status_code, 200) + self.assertEqual(r.status_code, status.HTTP_200_OK) return [hit["id"] for hit in r.data["results"]] self.assertCountEqual( @@ -1012,7 +1016,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def search_query(q): r = self.client.get("/api/documents/?query=test" + q) - self.assertEqual(r.status_code, 200) + self.assertEqual(r.status_code, status.HTTP_200_OK) return [hit["id"] for hit in r.data["results"]] self.assertListEqual( @@ -1036,30 +1040,57 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def test_statistics(self): - doc1 = Document.objects.create(title="none1", checksum="A") - doc2 = Document.objects.create(title="none2", checksum="B") - doc3 = Document.objects.create(title="none3", checksum="C") + doc1 = Document.objects.create( + title="none1", + checksum="A", + mime_type="application/pdf", + content="abc", + ) + Document.objects.create( + title="none2", + checksum="B", + mime_type="application/pdf", + content="123", + ) + Document.objects.create( + title="none3", + checksum="C", + mime_type="text/plain", + content="hello", + ) tag_inbox = Tag.objects.create(name="t1", is_inbox_tag=True) doc1.tags.add(tag_inbox) response = self.client.get("/api/statistics/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["documents_total"], 3) self.assertEqual(response.data["documents_inbox"], 1) + self.assertEqual(response.data["inbox_tag"], tag_inbox.pk) + self.assertEqual( + response.data["document_file_type_counts"][0]["mime_type_count"], + 2, + ) + self.assertEqual( + response.data["document_file_type_counts"][1]["mime_type_count"], + 1, + ) + self.assertEqual(response.data["character_count"], 11) def test_statistics_no_inbox_tag(self): Document.objects.create(title="none1", checksum="A") response = self.client.get("/api/statistics/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["documents_inbox"], None) + self.assertEqual(response.data["inbox_tag"], None) - @mock.patch("documents.views.consume_file.delay") - def test_upload(self, m): + def test_upload(self): - m.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1070,23 +1101,24 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): {"document": f}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - m.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = m.call_args - file_path = Path(args[0]) - self.assertEqual(file_path.name, "simple.pdf") - self.assertIn(Path(settings.SCRATCH_DIR), file_path.parents) - self.assertIsNone(kwargs["override_title"]) - self.assertIsNone(kwargs["override_correspondent_id"]) - self.assertIsNone(kwargs["override_document_type_id"]) - self.assertIsNone(kwargs["override_tag_ids"]) + input_doc, overrides = self.get_last_consume_delay_call_args() - @mock.patch("documents.views.consume_file.delay") - def test_upload_empty_metadata(self, m): + self.assertEqual(input_doc.original_file.name, "simple.pdf") + self.assertIn(Path(settings.SCRATCH_DIR), input_doc.original_file.parents) + self.assertIsNone(overrides.title) + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.tag_ids) - m.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + def test_upload_empty_metadata(self): + + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1097,23 +1129,24 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): {"document": f, "title": "", "correspondent": "", "document_type": ""}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - m.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = m.call_args - file_path = Path(args[0]) - self.assertEqual(file_path.name, "simple.pdf") - self.assertIn(Path(settings.SCRATCH_DIR), file_path.parents) - self.assertIsNone(kwargs["override_title"]) - self.assertIsNone(kwargs["override_correspondent_id"]) - self.assertIsNone(kwargs["override_document_type_id"]) - self.assertIsNone(kwargs["override_tag_ids"]) + input_doc, overrides = self.get_last_consume_delay_call_args() - @mock.patch("documents.views.consume_file.delay") - def test_upload_invalid_form(self, m): + self.assertEqual(input_doc.original_file.name, "simple.pdf") + self.assertIn(Path(settings.SCRATCH_DIR), input_doc.original_file.parents) + self.assertIsNone(overrides.title) + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.tag_ids) - m.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + def test_upload_invalid_form(self): + + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1123,13 +1156,14 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"documenst": f}, ) - self.assertEqual(response.status_code, 400) - m.assert_not_called() + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.consume_file_mock.assert_not_called() - @mock.patch("documents.views.consume_file.delay") - def test_upload_invalid_file(self, m): + def test_upload_invalid_file(self): - m.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.zip"), @@ -1139,13 +1173,14 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f}, ) - self.assertEqual(response.status_code, 400) - m.assert_not_called() + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.consume_file_mock.assert_not_called() - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_title(self, async_task): + def test_upload_with_title(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1155,18 +1190,22 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "title": "my custom title"}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - async_task.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = async_task.call_args + _, overrides = self.get_last_consume_delay_call_args() - self.assertEqual(kwargs["override_title"], "my custom title") + self.assertEqual(overrides.title, "my custom title") + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.tag_ids) - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_correspondent(self, async_task): + def test_upload_with_correspondent(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) c = Correspondent.objects.create(name="test-corres") with open( @@ -1177,18 +1216,22 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "correspondent": c.id}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - async_task.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = async_task.call_args + _, overrides = self.get_last_consume_delay_call_args() - self.assertEqual(kwargs["override_correspondent_id"], c.id) + self.assertEqual(overrides.correspondent_id, c.id) + self.assertIsNone(overrides.title) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.tag_ids) - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_invalid_correspondent(self, async_task): + def test_upload_with_invalid_correspondent(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1198,14 +1241,15 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "correspondent": 3456}, ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - async_task.assert_not_called() + self.consume_file_mock.assert_not_called() - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_document_type(self, async_task): + def test_upload_with_document_type(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) dt = DocumentType.objects.create(name="invoice") with open( @@ -1216,18 +1260,22 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "document_type": dt.id}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - async_task.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = async_task.call_args + _, overrides = self.get_last_consume_delay_call_args() - self.assertEqual(kwargs["override_document_type_id"], dt.id) + self.assertEqual(overrides.document_type_id, dt.id) + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.title) + self.assertIsNone(overrides.tag_ids) - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_invalid_document_type(self, async_task): + def test_upload_with_invalid_document_type(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) with open( os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), @@ -1237,14 +1285,15 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "document_type": 34578}, ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - async_task.assert_not_called() + self.consume_file_mock.assert_not_called() - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_tags(self, async_task): + def test_upload_with_tags(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) t1 = Tag.objects.create(name="tag1") t2 = Tag.objects.create(name="tag2") @@ -1256,18 +1305,22 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "tags": [t2.id, t1.id]}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - async_task.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = async_task.call_args + _, overrides = self.get_last_consume_delay_call_args() - self.assertCountEqual(kwargs["override_tag_ids"], [t1.id, t2.id]) + self.assertCountEqual(overrides.tag_ids, [t1.id, t2.id]) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.title) - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_invalid_tags(self, async_task): + def test_upload_with_invalid_tags(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) t1 = Tag.objects.create(name="tag1") t2 = Tag.objects.create(name="tag2") @@ -1279,14 +1332,15 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "tags": [t2.id, t1.id, 734563]}, ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - async_task.assert_not_called() + self.consume_file_mock.assert_not_called() - @mock.patch("documents.views.consume_file.delay") - def test_upload_with_created(self, async_task): + def test_upload_with_created(self): - async_task.return_value = celery.result.AsyncResult(id=str(uuid.uuid4())) + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) created = datetime.datetime( 2022, @@ -1306,13 +1360,41 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): "/api/documents/post_document/", {"document": f, "created": created}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - async_task.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = async_task.call_args + _, overrides = self.get_last_consume_delay_call_args() - self.assertEqual(kwargs["override_created"], created) + self.assertEqual(overrides.created, created) + + def test_upload_with_asn(self): + + self.consume_file_mock.return_value = celery.result.AsyncResult( + id=str(uuid.uuid4()), + ) + + with open( + os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), + "rb", + ) as f: + response = self.client.post( + "/api/documents/post_document/", + {"document": f, "archive_serial_number": 500}, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + self.consume_file_mock.assert_called_once() + + input_doc, overrides = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file.name, "simple.pdf") + self.assertEqual(overrides.filename, "simple.pdf") + self.assertIsNone(overrides.correspondent_id) + self.assertIsNone(overrides.document_type_id) + self.assertIsNone(overrides.tag_ids) + self.assertEqual(500, overrides.asn) def test_get_metadata(self): doc = Document.objects.create( @@ -1336,7 +1418,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): shutil.copy(archive_file, doc.archive_path) response = self.client.get(f"/api/documents/{doc.pk}/metadata/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) meta = response.data @@ -1351,7 +1433,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def test_get_metadata_invalid_doc(self): response = self.client.get("/api/documents/34576/metadata/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) def test_get_metadata_no_archive(self): doc = Document.objects.create( @@ -1366,7 +1448,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get(f"/api/documents/{doc.pk}/metadata/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) meta = response.data @@ -1387,7 +1469,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get(f"/api/documents/{doc.pk}/metadata/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) meta = response.data @@ -1402,7 +1484,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): response = self.client.get(f"/api/documents/{doc.pk}/suggestions/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( response.data, { @@ -1416,7 +1498,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): def test_get_suggestions_invalid_doc(self): response = self.client.get("/api/documents/34676/suggestions/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) @mock.patch("documents.views.match_storage_paths") @mock.patch("documents.views.match_document_types") @@ -1454,25 +1536,25 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) def test_saved_views(self): - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") + u1 = User.objects.create_superuser("user1") + u2 = User.objects.create_superuser("user2") v1 = SavedView.objects.create( - user=u1, + owner=u1, name="test1", sort_field="", show_on_dashboard=False, show_in_sidebar=False, ) - v2 = SavedView.objects.create( - user=u2, + SavedView.objects.create( + owner=u2, name="test2", sort_field="", show_on_dashboard=False, show_in_sidebar=False, ) - v3 = SavedView.objects.create( - user=u2, + SavedView.objects.create( + owner=u2, name="test3", sort_field="", show_on_dashboard=False, @@ -1480,30 +1562,39 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) response = self.client.get("/api/saved_views/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 0) - self.assertEqual(self.client.get(f"/api/saved_views/{v1.id}/").status_code, 404) + self.assertEqual( + self.client.get(f"/api/saved_views/{v1.id}/").status_code, + status.HTTP_404_NOT_FOUND, + ) self.client.force_authenticate(user=u1) response = self.client.get("/api/saved_views/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) - self.assertEqual(self.client.get(f"/api/saved_views/{v1.id}/").status_code, 200) + self.assertEqual( + self.client.get(f"/api/saved_views/{v1.id}/").status_code, + status.HTTP_200_OK, + ) self.client.force_authenticate(user=u2) response = self.client.get("/api/saved_views/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 2) - self.assertEqual(self.client.get(f"/api/saved_views/{v1.id}/").status_code, 404) + self.assertEqual( + self.client.get(f"/api/saved_views/{v1.id}/").status_code, + status.HTTP_404_NOT_FOUND, + ) def test_create_update_patch(self): - u1 = User.objects.create_user("user1") + User.objects.create_user("user1") view = { "name": "test", @@ -1514,12 +1605,12 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): } response = self.client.post("/api/saved_views/", view, format="json") - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) v1 = SavedView.objects.get(name="test") self.assertEqual(v1.sort_field, "created2") self.assertEqual(v1.filter_rules.count(), 1) - self.assertEqual(v1.user, self.user) + self.assertEqual(v1.owner, self.user) response = self.client.patch( f"/api/saved_views/{v1.id}/", @@ -1528,14 +1619,14 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): ) v1 = SavedView.objects.get(id=v1.id) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertFalse(v1.show_in_sidebar) self.assertEqual(v1.filter_rules.count(), 1) view["filter_rules"] = [{"rule_type": 12, "value": "secret"}] response = self.client.put(f"/api/saved_views/{v1.id}/", view, format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) v1 = SavedView.objects.get(id=v1.id) self.assertEqual(v1.filter_rules.count(), 1) @@ -1544,31 +1635,44 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): view["filter_rules"] = [] response = self.client.put(f"/api/saved_views/{v1.id}/", view, format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) v1 = SavedView.objects.get(id=v1.id) self.assertEqual(v1.filter_rules.count(), 0) def test_get_logs(self): + log_data = "test\ntest2\n" + with open(os.path.join(settings.LOGGING_DIR, "mail.log"), "w") as f: + f.write(log_data) + with open(os.path.join(settings.LOGGING_DIR, "paperless.log"), "w") as f: + f.write(log_data) response = self.client.get("/api/logs/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertCountEqual(response.data, ["mail", "paperless"]) + def test_get_logs_only_when_exist(self): + log_data = "test\ntest2\n" + with open(os.path.join(settings.LOGGING_DIR, "paperless.log"), "w") as f: + f.write(log_data) + response = self.client.get("/api/logs/") + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertCountEqual(response.data, ["paperless"]) + def test_get_invalid_log(self): response = self.client.get("/api/logs/bogus_log/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) @override_settings(LOGGING_DIR="bogus_dir") def test_get_nonexistent_log(self): response = self.client.get("/api/logs/paperless/") - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) def test_get_log(self): log_data = "test\ntest2\n" with open(os.path.join(settings.LOGGING_DIR, "paperless.log"), "w") as f: f.write(log_data) response = self.client.get("/api/logs/paperless/") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertListEqual(response.data, ["test", "test2"]) def test_invalid_regex_other_algorithm(self): @@ -1582,7 +1686,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): }, format="json", ) - self.assertEqual(response.status_code, 201, endpoint) + self.assertEqual(response.status_code, status.HTTP_201_CREATED, endpoint) def test_invalid_regex(self): for endpoint in ["correspondents", "tags", "document_types"]: @@ -1595,7 +1699,11 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): }, format="json", ) - self.assertEqual(response.status_code, 400, endpoint) + self.assertEqual( + response.status_code, + status.HTTP_400_BAD_REQUEST, + endpoint, + ) def test_valid_regex(self): for endpoint in ["correspondents", "tags", "document_types"]: @@ -1608,7 +1716,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): }, format="json", ) - self.assertEqual(response.status_code, 201, endpoint) + self.assertEqual(response.status_code, status.HTTP_201_CREATED, endpoint) def test_regex_no_algorithm(self): for endpoint in ["correspondents", "tags", "document_types"]: @@ -1617,11 +1725,11 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): {"name": "test", "match": "[0-9]"}, format="json", ) - self.assertEqual(response.status_code, 201, endpoint) + self.assertEqual(response.status_code, status.HTTP_201_CREATED, endpoint) def test_tag_color_default(self): response = self.client.post("/api/tags/", {"name": "tag"}, format="json") - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(Tag.objects.get(id=response.data["id"]).color, "#a6cee3") self.assertEqual( self.client.get(f"/api/tags/{response.data['id']}/", format="json").data[ @@ -1636,7 +1744,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): {"name": "tag", "colour": 3}, format="json", ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(Tag.objects.get(id=response.data["id"]).color, "#b2df8a") self.assertEqual( self.client.get(f"/api/tags/{response.data['id']}/", format="json").data[ @@ -1651,7 +1759,7 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): {"name": "tag", "colour": 34}, format="json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_tag_color_custom(self): tag = Tag.objects.create(name="test", color="#abcdef") @@ -1660,32 +1768,32 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): 1, ) - def test_get_existing_comments(self): + def test_get_existing_notes(self): """ GIVEN: - - A document with a single comment + - A document with a single note WHEN: - - API reuqest for document comments is made + - API reuqest for document notes is made THEN: - - The associated comment is returned + - The associated note is returned """ doc = Document.objects.create( title="test", mime_type="application/pdf", - content="this is a document which will have comments!", + content="this is a document which will have notes!", ) - comment = Comment.objects.create( - comment="This is a comment.", + note = Note.objects.create( + note="This is a note.", document=doc, user=self.user, ) response = self.client.get( - f"/api/documents/{doc.pk}/comments/", + f"/api/documents/{doc.pk}/notes/", format="json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) resp_data = response.json() @@ -1697,43 +1805,43 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): self.assertDictEqual( resp_data, { - "id": comment.id, - "comment": comment.comment, + "id": note.id, + "note": note.note, "user": { - "id": comment.user.id, - "username": comment.user.username, - "firstname": comment.user.first_name, - "lastname": comment.user.last_name, + "id": note.user.id, + "username": note.user.username, + "first_name": note.user.first_name, + "last_name": note.user.last_name, }, }, ) - def test_create_comment(self): + def test_create_note(self): """ GIVEN: - Existing document WHEN: - - API request is made to add a comment + - API request is made to add a note THEN: - - Comment is created and associated with document + - note is created and associated with document """ doc = Document.objects.create( title="test", mime_type="application/pdf", - content="this is a document which will have comments added", + content="this is a document which will have notes added", ) resp = self.client.post( - f"/api/documents/{doc.pk}/comments/", - data={"comment": "this is a posted comment"}, + f"/api/documents/{doc.pk}/notes/", + data={"note": "this is a posted note"}, ) - self.assertEqual(resp.status_code, 200) + self.assertEqual(resp.status_code, status.HTTP_200_OK) response = self.client.get( - f"/api/documents/{doc.pk}/comments/", + f"/api/documents/{doc.pk}/notes/", format="json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) resp_data = response.json() @@ -1741,51 +1849,145 @@ class TestDocumentApi(DirectoriesMixin, APITestCase): resp_data = resp_data[0] - self.assertEqual(resp_data["comment"], "this is a posted comment") + self.assertEqual(resp_data["note"], "this is a posted note") - def test_delete_comment(self): + def test_delete_note(self): """ GIVEN: - Existing document WHEN: - - API request is made to add a comment + - API request is made to add a note THEN: - - Comment is created and associated with document + - note is created and associated with document """ doc = Document.objects.create( title="test", mime_type="application/pdf", - content="this is a document which will have comments!", + content="this is a document which will have notes!", ) - comment = Comment.objects.create( - comment="This is a comment.", + note = Note.objects.create( + note="This is a note.", document=doc, user=self.user, ) response = self.client.delete( - f"/api/documents/{doc.pk}/comments/?id={comment.pk}", + f"/api/documents/{doc.pk}/notes/?id={note.pk}", format="json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(len(Comment.objects.all()), 0) + self.assertEqual(len(Note.objects.all()), 0) - def test_get_comments_no_doc(self): + def test_get_notes_no_doc(self): """ GIVEN: - - A request to get comments from a non-existent document + - A request to get notes from a non-existent document WHEN: - - API request for document comments is made + - API request for document notes is made THEN: - - HTTP 404 is returned + - HTTP status.HTTP_404_NOT_FOUND is returned """ response = self.client.get( - "/api/documents/500/comments/", + "/api/documents/500/notes/", format="json", ) - self.assertEqual(response.status_code, 404) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + + def test_tag_unique_name_and_owner(self): + """ + GIVEN: + - Multiple users + - Tags owned by particular users + WHEN: + - API request for creating items which are unique by name and owner + THEN: + - Unique items are created + - Non-unique items are not allowed + """ + user1 = User.objects.create_user(username="test1") + user1.user_permissions.add(*Permission.objects.filter(codename="add_tag")) + user1.save() + + user2 = User.objects.create_user(username="test2") + user2.user_permissions.add(*Permission.objects.filter(codename="add_tag")) + user2.save() + + # User 1 creates tag 1 owned by user 1 by default + # No issue + self.client.force_authenticate(user1) + response = self.client.post("/api/tags/", {"name": "tag 1"}, format="json") + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + # User 2 creates tag 1 owned by user 2 by default + # No issue + self.client.force_authenticate(user2) + response = self.client.post("/api/tags/", {"name": "tag 1"}, format="json") + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + # User 2 creates tag 2 owned by user 1 + # No issue + self.client.force_authenticate(user2) + response = self.client.post( + "/api/tags/", + {"name": "tag 2", "owner": user1.pk}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + # User 1 creates tag 2 owned by user 1 by default + # Not allowed, would create tag2/user1 which already exists + self.client.force_authenticate(user1) + response = self.client.post( + "/api/tags/", + {"name": "tag 2"}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + # User 1 creates tag 2 owned by user 1 + # Not allowed, would create tag2/user1 which already exists + response = self.client.post( + "/api/tags/", + {"name": "tag 2", "owner": user1.pk}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + def test_tag_unique_name_and_owner_enforced_on_update(self): + """ + GIVEN: + - Multiple users + - Tags owned by particular users + WHEN: + - API request for to update tag in such as way as makes it non-unqiue + THEN: + - Unique items are created + - Non-unique items are not allowed on update + """ + user1 = User.objects.create_user(username="test1") + user1.user_permissions.add(*Permission.objects.filter(codename="change_tag")) + user1.save() + + user2 = User.objects.create_user(username="test2") + user2.user_permissions.add(*Permission.objects.filter(codename="change_tag")) + user2.save() + + # Create name tag 1 owned by user 1 + # Create name tag 1 owned by user 2 + Tag.objects.create(name="tag 1", owner=user1) + tag2 = Tag.objects.create(name="tag 1", owner=user2) + + # User 2 attempts to change the owner of tag to user 1 + # Not allowed, would change to tag1/user1 which already exists + self.client.force_authenticate(user2) + response = self.client.patch( + f"/api/tags/{tag2.id}/", + {"owner": user1.pk}, + format="json", + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) class TestDocumentApiV2(DirectoriesMixin, APITestCase): @@ -1804,7 +2006,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase): {"name": "test", "color": "#12fFaA"}, format="json", ).status_code, - 201, + status.HTTP_201_CREATED, ) self.assertEqual( @@ -1813,7 +2015,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase): {"name": "test1", "color": "abcdef"}, format="json", ).status_code, - 400, + status.HTTP_400_BAD_REQUEST, ) self.assertEqual( self.client.post( @@ -1821,7 +2023,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase): {"name": "test2", "color": "#abcdfg"}, format="json", ).status_code, - 400, + status.HTTP_400_BAD_REQUEST, ) self.assertEqual( self.client.post( @@ -1829,7 +2031,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase): {"name": "test3", "color": "#asd"}, format="json", ).status_code, - 400, + status.HTTP_400_BAD_REQUEST, ) self.assertEqual( self.client.post( @@ -1837,7 +2039,7 @@ class TestDocumentApiV2(DirectoriesMixin, APITestCase): {"name": "test4", "color": "#12121212"}, format="json", ).status_code, - 400, + status.HTTP_400_BAD_REQUEST, ) def test_tag_text_color(self): @@ -1880,7 +2082,7 @@ class TestApiUiSettings(DirectoriesMixin, APITestCase): def test_api_get_ui_settings(self): response = self.client.get(self.ENDPOINT, format="json") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data["settings"], { @@ -1905,7 +2107,7 @@ class TestApiUiSettings(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) ui_settings = self.test_user.ui_settings self.assertDictEqual( @@ -2102,7 +2304,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2122,7 +2324,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2142,7 +2344,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2162,7 +2364,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2182,7 +2384,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2202,7 +2404,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2225,7 +2427,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertListEqual(args[0], [self.doc1.id, self.doc3.id]) @@ -2257,7 +2459,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) m.assert_not_called() @mock.patch("documents.serialisers.bulk_edit.delete") @@ -2270,7 +2472,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args self.assertEqual(args[0], [self.doc1.id]) @@ -2300,7 +2502,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args @@ -2331,7 +2533,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) m.assert_called_once() args, kwargs = m.call_args @@ -2360,7 +2562,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.async_task.assert_not_called() def test_api_set_storage_path_not_provided(self): @@ -2385,7 +2587,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.async_task.assert_not_called() def test_api_invalid_doc(self): @@ -2395,7 +2597,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): json.dumps({"documents": [-235], "method": "delete", "parameters": {}}), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(Document.objects.count(), 5) def test_api_invalid_method(self): @@ -2411,7 +2613,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(Document.objects.count(), 5) def test_api_invalid_correspondent(self): @@ -2427,7 +2629,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) doc2 = Document.objects.get(id=self.doc2.id) self.assertEqual(doc2.correspondent, self.c1) @@ -2444,7 +2646,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_invalid_document_type(self): self.assertEqual(self.doc2.document_type, self.dt1) @@ -2459,7 +2661,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) doc2 = Document.objects.get(id=self.doc2.id) self.assertEqual(doc2.document_type, self.dt1) @@ -2476,7 +2678,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_add_invalid_tag(self): self.assertEqual(list(self.doc2.tags.all()), [self.t1]) @@ -2491,7 +2693,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(list(self.doc2.tags.all()), [self.t1]) @@ -2503,7 +2705,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_delete_invalid_tag(self): self.assertEqual(list(self.doc2.tags.all()), [self.t1]) @@ -2518,7 +2720,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(list(self.doc2.tags.all()), [self.t1]) @@ -2530,7 +2732,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_modify_invalid_tags(self): self.assertEqual(list(self.doc2.tags.all()), [self.t1]) @@ -2548,7 +2750,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_modify_tags_no_tags(self): response = self.client.post( @@ -2562,7 +2764,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) response = self.client.post( "/api/documents/bulk_edit/", @@ -2575,7 +2777,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_api_selection_data_empty(self): response = self.client.post( @@ -2583,7 +2785,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): json.dumps({"documents": []}), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) for field, Entity in [ ("selected_correspondents", Correspondent), ("selected_tags", Tag), @@ -2605,7 +2807,7 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertCountEqual( response.data["selected_correspondents"], @@ -2629,6 +2831,41 @@ class TestBulkEdit(DirectoriesMixin, APITestCase): ], ) + @mock.patch("documents.serialisers.bulk_edit.set_permissions") + def test_set_permissions(self, m): + m.return_value = "OK" + user1 = User.objects.create(username="user1") + user2 = User.objects.create(username="user2") + permissions = { + "view": { + "users": [user1.id, user2.id], + "groups": None, + }, + "change": { + "users": [user1.id], + "groups": None, + }, + } + + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "documents": [self.doc2.id, self.doc3.id], + "method": "set_permissions", + "parameters": {"set_permissions": permissions}, + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + m.assert_called_once() + args, kwargs = m.call_args + self.assertCountEqual(args[0], [self.doc2.id, self.doc3.id]) + self.assertEqual(len(kwargs["set_permissions"]["view"]["users"]), 2) + class TestBulkDownload(DirectoriesMixin, APITestCase): @@ -2691,7 +2928,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2712,7 +2949,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2733,7 +2970,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2767,7 +3004,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2783,7 +3020,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): self.assertEqual(f.read(), zipf.read("2021-01-01 document A_01.pdf")) def test_compression(self): - response = self.client.post( + self.client.post( self.ENDPOINT, json.dumps( {"documents": [self.doc2.id, self.doc2b.id], "compression": "lzma"}, @@ -2826,7 +3063,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2874,7 +3111,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2923,7 +3160,7 @@ class TestBulkDownload(DirectoriesMixin, APITestCase): content_type="application/json", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response["Content-Type"], "application/zip") with zipfile.ZipFile(io.BytesIO(response.content)) as zipf: @@ -2956,38 +3193,65 @@ class TestApiAuth(DirectoriesMixin, APITestCase): d = Document.objects.create(title="Test") - self.assertEqual(self.client.get("/api/documents/").status_code, 401) + self.assertEqual( + self.client.get("/api/documents/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) - self.assertEqual(self.client.get(f"/api/documents/{d.id}/").status_code, 401) + self.assertEqual( + self.client.get(f"/api/documents/{d.id}/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) self.assertEqual( self.client.get(f"/api/documents/{d.id}/download/").status_code, - 401, + status.HTTP_401_UNAUTHORIZED, ) self.assertEqual( self.client.get(f"/api/documents/{d.id}/preview/").status_code, - 401, + status.HTTP_401_UNAUTHORIZED, ) self.assertEqual( self.client.get(f"/api/documents/{d.id}/thumb/").status_code, - 401, + status.HTTP_401_UNAUTHORIZED, ) - self.assertEqual(self.client.get("/api/tags/").status_code, 401) - self.assertEqual(self.client.get("/api/correspondents/").status_code, 401) - self.assertEqual(self.client.get("/api/document_types/").status_code, 401) + self.assertEqual( + self.client.get("/api/tags/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) + self.assertEqual( + self.client.get("/api/correspondents/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) + self.assertEqual( + self.client.get("/api/document_types/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) - self.assertEqual(self.client.get("/api/logs/").status_code, 401) - self.assertEqual(self.client.get("/api/saved_views/").status_code, 401) + self.assertEqual( + self.client.get("/api/logs/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) + self.assertEqual( + self.client.get("/api/saved_views/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) - self.assertEqual(self.client.get("/api/search/autocomplete/").status_code, 401) - self.assertEqual(self.client.get("/api/documents/bulk_edit/").status_code, 401) + self.assertEqual( + self.client.get("/api/search/autocomplete/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) + self.assertEqual( + self.client.get("/api/documents/bulk_edit/").status_code, + status.HTTP_401_UNAUTHORIZED, + ) self.assertEqual( self.client.get("/api/documents/bulk_download/").status_code, - 401, + status.HTTP_401_UNAUTHORIZED, ) self.assertEqual( self.client.get("/api/documents/selection_data/").status_code, - 401, + status.HTTP_401_UNAUTHORIZED, ) def test_api_version_no_auth(self): @@ -3003,6 +3267,98 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertIn("X-Api-Version", response) self.assertIn("X-Version", response) + def test_api_insufficient_permissions(self): + user = User.objects.create_user(username="test") + self.client.force_authenticate(user) + + Document.objects.create(title="Test") + + self.assertEqual( + self.client.get("/api/documents/").status_code, + status.HTTP_403_FORBIDDEN, + ) + + self.assertEqual( + self.client.get("/api/tags/").status_code, + status.HTTP_403_FORBIDDEN, + ) + self.assertEqual( + self.client.get("/api/correspondents/").status_code, + status.HTTP_403_FORBIDDEN, + ) + self.assertEqual( + self.client.get("/api/document_types/").status_code, + status.HTTP_403_FORBIDDEN, + ) + + self.assertEqual( + self.client.get("/api/logs/").status_code, + status.HTTP_403_FORBIDDEN, + ) + self.assertEqual( + self.client.get("/api/saved_views/").status_code, + status.HTTP_403_FORBIDDEN, + ) + + def test_api_sufficient_permissions(self): + user = User.objects.create_user(username="test") + user.user_permissions.add(*Permission.objects.all()) + self.client.force_authenticate(user) + + Document.objects.create(title="Test") + + self.assertEqual( + self.client.get("/api/documents/").status_code, + status.HTTP_200_OK, + ) + + self.assertEqual(self.client.get("/api/tags/").status_code, status.HTTP_200_OK) + self.assertEqual( + self.client.get("/api/correspondents/").status_code, + status.HTTP_200_OK, + ) + self.assertEqual( + self.client.get("/api/document_types/").status_code, + status.HTTP_200_OK, + ) + + self.assertEqual(self.client.get("/api/logs/").status_code, status.HTTP_200_OK) + self.assertEqual( + self.client.get("/api/saved_views/").status_code, + status.HTTP_200_OK, + ) + + def test_object_permissions(self): + user1 = User.objects.create_user(username="test1") + user2 = User.objects.create_user(username="test2") + user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) + self.client.force_authenticate(user1) + + self.assertEqual( + self.client.get("/api/documents/").status_code, + status.HTTP_200_OK, + ) + + d = Document.objects.create(title="Test", content="the content 1", checksum="1") + + # no owner + self.assertEqual( + self.client.get(f"/api/documents/{d.id}/").status_code, + status.HTTP_200_OK, + ) + + d2 = Document.objects.create( + title="Test 2", + content="the content 2", + checksum="2", + owner=user2, + ) + + self.assertEqual( + self.client.get(f"/api/documents/{d2.id}/").status_code, + status.HTTP_404_NOT_FOUND, + ) + class TestApiRemoteVersion(DirectoriesMixin, APITestCase): ENDPOINT = "/api/remote_version/" @@ -3014,14 +3370,14 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): def test_remote_version_enabled_no_update_prefix(self, urlopen_mock): cm = MagicMock() - cm.getcode.return_value = 200 + cm.getcode.return_value = status.HTTP_200_OK cm.read.return_value = json.dumps({"tag_name": "ngx-1.6.0"}).encode() cm.__enter__.return_value = cm urlopen_mock.return_value = cm response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data, { @@ -3034,7 +3390,7 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): def test_remote_version_enabled_no_update_no_prefix(self, urlopen_mock): cm = MagicMock() - cm.getcode.return_value = 200 + cm.getcode.return_value = status.HTTP_200_OK cm.read.return_value = json.dumps( {"tag_name": version.__full_version_str__}, ).encode() @@ -3043,7 +3399,7 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data, { @@ -3063,7 +3419,7 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): new_version_str = ".".join(map(str, new_version)) cm = MagicMock() - cm.getcode.return_value = 200 + cm.getcode.return_value = status.HTTP_200_OK cm.read.return_value = json.dumps( {"tag_name": new_version_str}, ).encode() @@ -3072,7 +3428,7 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data, { @@ -3085,14 +3441,14 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): def test_remote_version_bad_json(self, urlopen_mock): cm = MagicMock() - cm.getcode.return_value = 200 + cm.getcode.return_value = status.HTTP_200_OK cm.read.return_value = b'{ "blah":' cm.__enter__.return_value = cm urlopen_mock.return_value = cm response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data, { @@ -3105,14 +3461,14 @@ class TestApiRemoteVersion(DirectoriesMixin, APITestCase): def test_remote_version_exception(self, urlopen_mock): cm = MagicMock() - cm.getcode.return_value = 200 + cm.getcode.return_value = status.HTTP_200_OK cm.read.side_effect = urllib.error.URLError("an error") cm.__enter__.return_value = cm urlopen_mock.return_value = cm response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertDictEqual( response.data, { @@ -3128,7 +3484,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create(username="temp_admin") + user = User.objects.create_superuser(username="temp_admin") self.client.force_authenticate(user=user) self.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}") @@ -3143,9 +3499,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): - 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.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) resp_storage_path = response.data["results"][0] @@ -3172,7 +3527,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(StoragePath.objects.count(), 2) def test_api_create_invalid_storage_path(self): @@ -3196,7 +3551,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): ), content_type="application/json", ) - self.assertEqual(response.status_code, 400) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(StoragePath.objects.count(), 1) def test_api_storage_path_placeholders(self): @@ -3215,14 +3570,48 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): json.dumps( { "name": "Storage path with placeholders", - "path": "{title}/{correspondent}/{document_type}/{created}/{created_year}/{created_year_short}/{created_month}/{created_month_name}/{created_month_name_short}/{created_day}/{added}/{added_year}/{added_year_short}/{added_month}/{added_month_name}/{added_month_name_short}/{added_day}/{asn}/{tags}/{tag_list}/", + "path": "{title}/{correspondent}/{document_type}/{created}/{created_year}" + "/{created_year_short}/{created_month}/{created_month_name}" + "/{created_month_name_short}/{created_day}/{added}/{added_year}" + "/{added_year_short}/{added_month}/{added_month_name}" + "/{added_month_name_short}/{added_day}/{asn}/{tags}" + "/{tag_list}/", }, ), content_type="application/json", ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(StoragePath.objects.count(), 2) + @mock.patch("documents.bulk_edit.bulk_update_documents.delay") + def test_api_update_storage_path(self, bulk_update_mock): + """ + GIVEN: + - API request to get all storage paths + WHEN: + - API is called + THEN: + - Existing storage paths are returned + """ + document = Document.objects.create( + mime_type="application/pdf", + storage_path=self.sp1, + ) + response = self.client.patch( + f"{self.ENDPOINT}{self.sp1.pk}/", + data={ + "path": "somewhere/{created} - {title}", + }, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + bulk_update_mock.assert_called_once() + + args, _ = bulk_update_mock.call_args + + self.assertCountEqual([document.pk], args[0]) + class TestTasks(DirectoriesMixin, APITestCase): ENDPOINT = "/api/tasks/" @@ -3256,16 +3645,11 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2) returned_task1 = response.data[1] returned_task2 = response.data[0] - from pprint import pprint - - pprint(returned_task1) - pprint(returned_task2) - self.assertEqual(returned_task1["task_id"], task1.task_id) self.assertEqual(returned_task1["status"], celery.states.PENDING) self.assertEqual(returned_task1["task_file_name"], task1.task_file_name) @@ -3297,7 +3681,7 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT + f"?task_id={id1}") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) returned_task1 = response.data[0] @@ -3312,7 +3696,7 @@ class TestTasks(DirectoriesMixin, APITestCase): THEN: - No task data is returned """ - task1 = PaperlessTask.objects.create( + PaperlessTask.objects.create( task_id=str(uuid.uuid4()), task_file_name="task_one.pdf", ) @@ -3324,7 +3708,7 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT + "?task_id=bad-task-id") - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 0) def test_acknowledge_tasks(self): @@ -3348,7 +3732,7 @@ class TestTasks(DirectoriesMixin, APITestCase): self.ENDPOINT_ACKNOWLEDGE, {"tasks": [task.id]}, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) response = self.client.get(self.ENDPOINT) self.assertEqual(len(response.data), 0) @@ -3362,7 +3746,7 @@ class TestTasks(DirectoriesMixin, APITestCase): THEN: - The returned data includes the task result """ - task = PaperlessTask.objects.create( + PaperlessTask.objects.create( task_id=str(uuid.uuid4()), task_file_name="task_one.pdf", status=celery.states.SUCCESS, @@ -3371,7 +3755,7 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) returned_data = response.data[0] @@ -3388,7 +3772,7 @@ class TestTasks(DirectoriesMixin, APITestCase): THEN: - The returned result is the exception info """ - task = PaperlessTask.objects.create( + PaperlessTask.objects.create( task_id=str(uuid.uuid4()), task_file_name="task_one.pdf", status=celery.states.FAILURE, @@ -3397,7 +3781,7 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) returned_data = response.data[0] @@ -3417,7 +3801,7 @@ class TestTasks(DirectoriesMixin, APITestCase): THEN: - Returned data include the filename """ - task = PaperlessTask.objects.create( + PaperlessTask.objects.create( task_id=str(uuid.uuid4()), task_file_name="test.pdf", task_name="documents.tasks.some_task", @@ -3426,7 +3810,7 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) returned_data = response.data[0] @@ -3443,7 +3827,7 @@ class TestTasks(DirectoriesMixin, APITestCase): THEN: - Returned data include the filename """ - task = PaperlessTask.objects.create( + PaperlessTask.objects.create( task_id=str(uuid.uuid4()), task_file_name="anothertest.pdf", task_name="documents.tasks.some_task", @@ -3452,9 +3836,252 @@ class TestTasks(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 1) returned_data = response.data[0] self.assertEqual(returned_data["task_file_name"], "anothertest.pdf") + + +class TestApiUser(DirectoriesMixin, APITestCase): + ENDPOINT = "/api/users/" + + def setUp(self): + super().setUp() + + self.user = User.objects.create_superuser(username="temp_admin") + self.client.force_authenticate(user=self.user) + + def test_get_users(self): + """ + GIVEN: + - Configured users + WHEN: + - API call is made to get users + THEN: + - Configured users are provided + """ + + user1 = User.objects.create( + username="testuser", + password="test", + first_name="Test", + last_name="User", + ) + + response = self.client.get(self.ENDPOINT) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 2) + returned_user2 = response.data["results"][1] + + self.assertEqual(returned_user2["username"], user1.username) + self.assertEqual(returned_user2["password"], "**********") + self.assertEqual(returned_user2["first_name"], user1.first_name) + self.assertEqual(returned_user2["last_name"], user1.last_name) + + def test_create_user(self): + """ + WHEN: + - API request is made to add a user account + THEN: + - A new user account is created + """ + + user1 = { + "username": "testuser", + "password": "test", + "first_name": "Test", + "last_name": "User", + } + + response = self.client.post( + self.ENDPOINT, + data=user1, + ) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + returned_user1 = User.objects.get(username="testuser") + + self.assertEqual(returned_user1.username, user1["username"]) + self.assertEqual(returned_user1.first_name, user1["first_name"]) + self.assertEqual(returned_user1.last_name, user1["last_name"]) + + def test_delete_user(self): + """ + GIVEN: + - Existing user account + WHEN: + - API request is made to delete a user account + THEN: + - Account is deleted + """ + + user1 = User.objects.create( + username="testuser", + password="test", + first_name="Test", + last_name="User", + ) + + nUsers = User.objects.count() + + response = self.client.delete( + f"{self.ENDPOINT}{user1.pk}/", + ) + + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + self.assertEqual(User.objects.count(), nUsers - 1) + + def test_update_user(self): + """ + GIVEN: + - Existing user accounts + WHEN: + - API request is made to update user account + THEN: + - The user account is updated, password only updated if not '****' + """ + + user1 = User.objects.create( + username="testuser", + password="test", + first_name="Test", + last_name="User", + ) + + initial_password = user1.password + + response = self.client.patch( + f"{self.ENDPOINT}{user1.pk}/", + data={ + "first_name": "Updated Name 1", + "password": "******", + }, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + returned_user1 = User.objects.get(pk=user1.pk) + self.assertEqual(returned_user1.first_name, "Updated Name 1") + self.assertEqual(returned_user1.password, initial_password) + + response = self.client.patch( + f"{self.ENDPOINT}{user1.pk}/", + data={ + "first_name": "Updated Name 2", + "password": "123xyz", + }, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + returned_user2 = User.objects.get(pk=user1.pk) + self.assertEqual(returned_user2.first_name, "Updated Name 2") + self.assertNotEqual(returned_user2.password, initial_password) + + +class TestApiGroup(DirectoriesMixin, APITestCase): + ENDPOINT = "/api/groups/" + + def setUp(self): + super().setUp() + + self.user = User.objects.create_superuser(username="temp_admin") + self.client.force_authenticate(user=self.user) + + def test_get_groups(self): + """ + GIVEN: + - Configured groups + WHEN: + - API call is made to get groups + THEN: + - Configured groups are provided + """ + + group1 = Group.objects.create( + name="Test Group", + ) + + response = self.client.get(self.ENDPOINT) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["count"], 1) + returned_group1 = response.data["results"][0] + + self.assertEqual(returned_group1["name"], group1.name) + + def test_create_group(self): + """ + WHEN: + - API request is made to add a group + THEN: + - A new group is created + """ + + group1 = { + "name": "Test Group", + } + + response = self.client.post( + self.ENDPOINT, + data=group1, + ) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + returned_group1 = Group.objects.get(name="Test Group") + + self.assertEqual(returned_group1.name, group1["name"]) + + def test_delete_group(self): + """ + GIVEN: + - Existing group + WHEN: + - API request is made to delete a group + THEN: + - Group is deleted + """ + + group1 = Group.objects.create( + name="Test Group", + ) + + response = self.client.delete( + f"{self.ENDPOINT}{group1.pk}/", + ) + + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + self.assertEqual(len(Group.objects.all()), 0) + + def test_update_group(self): + """ + GIVEN: + - Existing groups + WHEN: + - API request is made to update group + THEN: + - The group is updated + """ + + group1 = Group.objects.create( + name="Test Group", + ) + + response = self.client.patch( + f"{self.ENDPOINT}{group1.pk}/", + data={ + "name": "Updated Name 1", + }, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + returned_group1 = Group.objects.get(pk=group1.pk) + self.assertEqual(returned_group1.name, "Updated Name 1") diff --git a/src/documents/tests/test_barcodes.py b/src/documents/tests/test_barcodes.py index 86c53755b..2520c7df6 100644 --- a/src/documents/tests/test_barcodes.py +++ b/src/documents/tests/test_barcodes.py @@ -1,25 +1,33 @@ -import os import shutil +from pathlib import Path from unittest import mock +import pytest 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.consumer import ConsumerError +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentSource from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from PIL import Image +try: + import zxingcpp # noqa: F401 -class TestBarcode(DirectoriesMixin, TestCase): + HAS_ZXING_LIB = True +except ImportError: + HAS_ZXING_LIB = False - SAMPLE_DIR = os.path.join( - os.path.dirname(__file__), - "samples", - ) - BARCODE_SAMPLE_DIR = os.path.join(SAMPLE_DIR, "barcodes") +@override_settings(CONSUMER_BARCODE_SCANNER="PYZBAR") +class TestBarcode(DirectoriesMixin, FileSystemAssertsMixin, TestCase): + SAMPLE_DIR = Path(__file__).parent / "samples" + + BARCODE_SAMPLE_DIR = SAMPLE_DIR / "barcodes" def test_barcode_reader_png(self): """ @@ -30,7 +38,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join(self.BARCODE_SAMPLE_DIR, "barcode-39-PATCHT.png") + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-PATCHT.png" img = Image.open(test_file) separator_barcode = settings.CONSUMER_BARCODE_STRING self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -44,10 +52,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pbm", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pbm" + img = Image.open(test_file) separator_barcode = str(settings.CONSUMER_BARCODE_STRING) self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -61,10 +67,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-PATCHT-distortion.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-PATCHT-distortion.png" img = Image.open(test_file) separator_barcode = str(settings.CONSUMER_BARCODE_STRING) self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -78,10 +81,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-PATCHT-distortion2.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-PATCHT-distortion2.png" img = Image.open(test_file) separator_barcode = str(settings.CONSUMER_BARCODE_STRING) self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -95,10 +95,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - No barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-PATCHT-unreadable.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-PATCHT-unreadable.png" img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), []) @@ -111,10 +108,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "qr-code-PATCHT.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "qr-code-PATCHT.png" img = Image.open(test_file) separator_barcode = str(settings.CONSUMER_BARCODE_STRING) self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -128,10 +122,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-128-PATCHT.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-128-PATCHT.png" + img = Image.open(test_file) separator_barcode = str(settings.CONSUMER_BARCODE_STRING) self.assertEqual(barcodes.barcode_reader(img), [separator_barcode]) @@ -145,7 +137,7 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - No barcode is detected """ - test_file = os.path.join(self.SAMPLE_DIR, "simple.png") + test_file = self.SAMPLE_DIR / "simple.png" img = Image.open(test_file) self.assertListEqual(barcodes.barcode_reader(img), []) @@ -158,10 +150,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-custom.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-custom.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"]) @@ -174,10 +164,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-qr-custom.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-qr-custom.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"]) @@ -190,104 +178,43 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-128-custom.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-128-custom.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM BARCODE"]) - def test_get_mime_type(self): - """ - GIVEN: - - - WHEN: - - - THEN: - - - """ - tiff_file = os.path.join( - self.SAMPLE_DIR, - "simple.tiff", - ) - pdf_file = os.path.join( - self.SAMPLE_DIR, - "simple.pdf", - ) - png_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "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): """ GIVEN: - - + - Multi-page TIFF image WHEN: - - + - Conversion to PDF THEN: - - + - The file converts without error """ - test_file = os.path.join( - os.path.dirname(__file__), - "samples", - "simple.tiff", - ) - dst = os.path.join(settings.SCRATCH_DIR, "simple.tiff") + test_file = self.SAMPLE_DIR / "simple.tiff" + + dst = 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): - """ - GIVEN: - - - WHEN: - - - THEN: - - - """ - test_file = os.path.join( - self.SAMPLE_DIR, - "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)) + self.assertIsFile(target_file) + self.assertEqual(target_file.suffix, ".pdf") def test_scan_file_for_separating_barcodes(self): """ GIVEN: - - + - PDF containing barcodes WHEN: - - + - File is scanned for barcodes THEN: - - + - Correct page index located """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -299,15 +226,17 @@ class TestBarcode(DirectoriesMixin, TestCase): def test_scan_file_for_separating_barcodes_none_present(self): """ GIVEN: - - + - File with no barcodes WHEN: - - + - File is scanned THEN: - - + - No barcodes detected + - No pages to split on """ - test_file = os.path.join(self.SAMPLE_DIR, "simple.pdf") + test_file = self.SAMPLE_DIR / "simple.pdf" doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -325,12 +254,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 1 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -348,12 +276,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on pages 2 and 5 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "several-patcht-codes.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "several-patcht-codes.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -372,12 +299,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 1 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle_reverse.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle_reverse.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -395,12 +321,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The barcode is still detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-fax-image.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-fax-image.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -419,12 +344,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 0 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-qr.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-qr.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -444,12 +368,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 0 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-custom.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-custom.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -470,12 +393,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 0 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-qr-custom.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-qr-custom.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -496,12 +418,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Barcode is detected on page 0 (zero indexed) """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-128-custom.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-128-custom.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -521,12 +442,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - No split pages are detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-custom.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-custom.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -536,7 +456,7 @@ class TestBarcode(DirectoriesMixin, TestCase): self.assertDictEqual(separator_page_numbers, {}) @override_settings(CONSUMER_BARCODE_STRING="ADAR-NEXTDOC") - def test_scan_file_for_separating_qr_barcodes(self): + def test_scan_file_qr_barcodes_was_problem(self): """ GIVEN: - Input PDF with certain QR codes that aren't detected at current size @@ -545,13 +465,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - QR codes are detected """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "many-qr-codes.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "many-qr-codes.pdf" doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -569,10 +487,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Two new documents are produced """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.pdf" + documents = barcodes.separate_pages(test_file, {1: False}) self.assertEqual(len(documents), 2) @@ -586,11 +502,8 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Only two files are output """ - test_file = os.path.join( - os.path.dirname(__file__), - self.BARCODE_SAMPLE_DIR, - "patch-code-t-double.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-double.pdf" + pages = barcodes.separate_pages(test_file, {1: False, 2: False}) self.assertEqual(len(pages), 2) @@ -605,10 +518,8 @@ class TestBarcode(DirectoriesMixin, TestCase): - No new documents are produced - A warning is logged """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.pdf" + with self.assertLogs("paperless.barcodes", level="WARNING") as cm: pages = barcodes.separate_pages(test_file, {}) self.assertEqual(pages, []) @@ -628,13 +539,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file exists """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pdf" + barcodes.save_to_dir(test_file, target_dir=settings.SCRATCH_DIR) - target_file = os.path.join(settings.SCRATCH_DIR, "patch-code-t.pdf") - self.assertTrue(os.path.isfile(target_file)) + target_file = settings.SCRATCH_DIR / "patch-code-t.pdf" + self.assertIsFile(target_file) def test_save_to_dir_not_existing(self): """ @@ -646,13 +555,10 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file exists """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pdf", - ) - nonexistingdir = "/nowhere" - if os.path.isdir(nonexistingdir): - self.fail("non-existing dir exists") + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pdf" + + nonexistingdir = Path("/nowhere") + self.assertIsNotDir(nonexistingdir) with self.assertLogs("paperless.barcodes", level="WARNING") as cm: barcodes.save_to_dir(test_file, target_dir=nonexistingdir) @@ -673,17 +579,15 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file exists """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pdf" + barcodes.save_to_dir( test_file, newname="newname.pdf", target_dir=settings.SCRATCH_DIR, ) - target_file = os.path.join(settings.SCRATCH_DIR, "newname.pdf") - self.assertTrue(os.path.isfile(target_file)) + target_file = settings.SCRATCH_DIR / "newname.pdf" + self.assertIsFile(target_file) def test_barcode_splitter(self): """ @@ -694,13 +598,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Correct number of files produced """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.pdf" doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -715,17 +617,12 @@ class TestBarcode(DirectoriesMixin, TestCase): for document in document_list: barcodes.save_to_dir(document, target_dir=settings.SCRATCH_DIR) - target_file1 = os.path.join( - settings.SCRATCH_DIR, - "patch-code-t-middle_document_0.pdf", - ) - target_file2 = os.path.join( - settings.SCRATCH_DIR, - "patch-code-t-middle_document_1.pdf", - ) + target_file1 = settings.SCRATCH_DIR / "patch-code-t-middle_document_0.pdf" - self.assertTrue(os.path.isfile(target_file1)) - self.assertTrue(os.path.isfile(target_file2)) + target_file2 = settings.SCRATCH_DIR / "patch-code-t-middle_document_1.pdf" + + self.assertIsFile(target_file1) + self.assertIsFile(target_file2) @override_settings(CONSUMER_ENABLE_BARCODES=True) def test_consume_barcode_file(self): @@ -737,16 +634,22 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file was split """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.pdf" - dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.pdf") + dst = settings.SCRATCH_DIR / "patch-code-t-middle.pdf" shutil.copy(test_file, dst) with mock.patch("documents.tasks.async_to_sync"): - self.assertEqual(tasks.consume_file(dst), "File successfully split") + self.assertEqual( + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ), + "File successfully split", + ) @override_settings( CONSUMER_ENABLE_BARCODES=True, @@ -761,15 +664,23 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file was split """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.tiff", - ) - dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle.tiff") + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.tiff" + + dst = settings.SCRATCH_DIR / "patch-code-t-middle.tiff" shutil.copy(test_file, dst) with mock.patch("documents.tasks.async_to_sync"): - self.assertEqual(tasks.consume_file(dst), "File successfully split") + self.assertEqual( + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ), + "File successfully split", + ) + self.assertFalse(dst.exists()) @override_settings( CONSUMER_ENABLE_BARCODES=True, @@ -786,15 +697,22 @@ class TestBarcode(DirectoriesMixin, TestCase): - Barcode reader reported warning - Consumption continued with the file """ - test_file = os.path.join( - self.SAMPLE_DIR, - "simple.jpg", - ) - dst = os.path.join(settings.SCRATCH_DIR, "simple.jpg") + test_file = self.SAMPLE_DIR / "simple.jpg" + + dst = settings.SCRATCH_DIR / "simple.jpg" shutil.copy(test_file, dst) with self.assertLogs("paperless.barcodes", level="WARNING") as cm: - self.assertIn("Success", tasks.consume_file(dst)) + self.assertIn( + "Success", + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ), + ) self.assertListEqual( cm.output, @@ -825,15 +743,23 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - The file was split """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t-middle.tiff", - ) - dst = os.path.join(settings.SCRATCH_DIR, "patch-code-t-middle") + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t-middle.tiff" + + dst = settings.SCRATCH_DIR / "patch-code-t-middle" shutil.copy(test_file, dst) with mock.patch("documents.tasks.async_to_sync"): - self.assertEqual(tasks.consume_file(dst), "File successfully split") + self.assertEqual( + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ), + "File successfully split", + ) + self.assertFalse(dst.exists()) def test_scan_file_for_separating_barcodes_password(self): """ @@ -844,10 +770,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Scanning handles the exception without crashing """ - test_file = os.path.join(self.SAMPLE_DIR, "password-is-test.pdf") + test_file = self.SAMPLE_DIR / "password-is-test.pdf" with self.assertLogs("paperless.barcodes", level="WARNING") as cm: doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) warning = cm.output[0] expected_str = "WARNING:paperless.barcodes:File is likely password protected, not checking for barcodes" @@ -873,14 +800,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Correct number of files produced, split correctly by correct pages """ - test_file = os.path.join( - os.path.dirname(__file__), - self.BARCODE_SAMPLE_DIR, - "split-by-asn-2.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "split-by-asn-2.pdf" doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -914,14 +838,11 @@ class TestBarcode(DirectoriesMixin, TestCase): THEN: - Correct number of files produced, split correctly by correct pages """ - test_file = os.path.join( - os.path.dirname(__file__), - self.BARCODE_SAMPLE_DIR, - "split-by-asn-1.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "split-by-asn-1.pdf" doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) separator_page_numbers = barcodes.get_separating_barcodes( doc_barcode_info.barcodes, @@ -942,14 +863,10 @@ class TestBarcode(DirectoriesMixin, TestCase): self.assertEqual(len(document_list), 5) -class TestAsnBarcodes(DirectoriesMixin, TestCase): +class TestAsnBarcode(DirectoriesMixin, TestCase): + SAMPLE_DIR = Path(__file__).parent / "samples" - SAMPLE_DIR = os.path.join( - os.path.dirname(__file__), - "samples", - ) - - BARCODE_SAMPLE_DIR = os.path.join(SAMPLE_DIR, "barcodes") + BARCODE_SAMPLE_DIR = SAMPLE_DIR / "barcodes" def test_barcode_reader_asn_normal(self): """ @@ -961,10 +878,8 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The barcode is located - The barcode value is correct """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-123.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-123.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["ASN00123"]) @@ -979,10 +894,8 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The barcode is located - The barcode value is correct """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-invalid.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-invalid.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["ASNXYZXYZ"]) @@ -996,10 +909,8 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The barcode is located - The barcode value is correct """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-custom-prefix.png", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-custom-prefix.png" + img = Image.open(test_file) self.assertEqual(barcodes.barcode_reader(img), ["CUSTOM-PREFIX-00123"]) @@ -1015,12 +926,11 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The ASN is located - The ASN integer value is correct """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-custom-prefix.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-custom-prefix.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) @@ -1038,12 +948,11 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The ASN is located - The ASN value is not used """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-invalid.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-invalid.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) @@ -1064,16 +973,19 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The ASN integer value is correct - The ASN is provided as the override value to the consumer """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-123.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-123.pdf" - dst = os.path.join(settings.SCRATCH_DIR, "barcode-39-asn-123.pdf") + dst = settings.SCRATCH_DIR / "barcode-39-asn-123.pdf" shutil.copy(test_file, dst) with mock.patch("documents.consumer.Consumer.try_consume_file") as mocked_call: - tasks.consume_file(dst) + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ) args, kwargs = mocked_call.call_args @@ -1090,12 +1002,11 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): - The ASN is located - The ASN integer value is correct """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "barcode-39-asn-123.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "barcode-39-asn-123.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) @@ -1111,12 +1022,11 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): THEN: - No ASN is retrieved from the document """ - test_file = os.path.join( - self.BARCODE_SAMPLE_DIR, - "patch-code-t.pdf", - ) + test_file = self.BARCODE_SAMPLE_DIR / "patch-code-t.pdf" + doc_barcode_info = barcodes.scan_file_for_barcodes( test_file, + "application/pdf", ) asn = barcodes.get_asn_from_barcodes(doc_barcode_info.barcodes) @@ -1134,19 +1044,38 @@ class TestAsnBarcodes(DirectoriesMixin, TestCase): THEN: - Exception is raised regarding size limits """ - src = os.path.join( - os.path.dirname(__file__), - "samples", - "barcodes", - "barcode-128-asn-too-large.pdf", - ) - dst = os.path.join(self.dirs.scratch_dir, "barcode-128-asn-too-large.pdf") + src = self.BARCODE_SAMPLE_DIR / "barcode-128-asn-too-large.pdf" + + dst = self.dirs.scratch_dir / "barcode-128-asn-too-large.pdf" shutil.copy(src, dst) + input_doc = ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ) + with mock.patch("documents.consumer.Consumer._send_progress"): self.assertRaisesMessage( ConsumerError, "Given ASN 4294967296 is out of range [0, 4,294,967,295]", tasks.consume_file, - dst, + input_doc, ) + + +@pytest.mark.skipif( + not HAS_ZXING_LIB, + reason="No zxingcpp", +) +@override_settings(CONSUMER_BARCODE_SCANNER="ZXING") +class TestBarcodeZxing(TestBarcode): + pass + + +@pytest.mark.skipif( + not HAS_ZXING_LIB, + reason="No zxingcpp", +) +@override_settings(CONSUMER_BARCODE_SCANNER="ZXING") +class TestAsnBarcodesZxing(TestAsnBarcode): + pass diff --git a/src/documents/tests/test_classifier.py b/src/documents/tests/test_classifier.py index 057f67204..f0aa5894e 100644 --- a/src/documents/tests/test_classifier.py +++ b/src/documents/tests/test_classifier.py @@ -1,7 +1,5 @@ import os import re -import shutil -import tempfile from pathlib import Path from unittest import mock @@ -16,21 +14,22 @@ from documents.classifier import load_classifier from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType +from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag from documents.tests.utils import DirectoriesMixin def dummy_preprocess(content: str): + """ + Simpler, faster pre-processing for testing purposes + """ content = content.lower().strip() content = re.sub(r"\s+", " ", content) return content class TestClassifier(DirectoriesMixin, TestCase): - - SAMPLE_MODEL_FILE = os.path.join(os.path.dirname(__file__), "data", "model.pickle") - def setUp(self): super().setUp() self.classifier = DocumentClassifier() @@ -48,6 +47,7 @@ class TestClassifier(DirectoriesMixin, TestCase): name="c3", matching_algorithm=Correspondent.MATCH_AUTO, ) + self.t1 = Tag.objects.create( name="t1", matching_algorithm=Tag.MATCH_AUTO, @@ -64,6 +64,12 @@ class TestClassifier(DirectoriesMixin, TestCase): matching_algorithm=Tag.MATCH_AUTO, pk=45, ) + self.t4 = Tag.objects.create( + name="t4", + matching_algorithm=Tag.MATCH_ANY, + pk=46, + ) + self.dt = DocumentType.objects.create( name="dt", matching_algorithm=DocumentType.MATCH_AUTO, @@ -72,6 +78,7 @@ class TestClassifier(DirectoriesMixin, TestCase): name="dt2", matching_algorithm=DocumentType.MATCH_AUTO, ) + self.sp1 = StoragePath.objects.create( name="sp1", path="path1", @@ -82,6 +89,7 @@ class TestClassifier(DirectoriesMixin, TestCase): path="path2", matching_algorithm=DocumentType.MATCH_AUTO, ) + self.store_paths = [self.sp1, self.sp2] self.doc1 = Document.objects.create( title="doc1", @@ -89,6 +97,7 @@ class TestClassifier(DirectoriesMixin, TestCase): correspondent=self.c1, checksum="A", document_type=self.dt, + storage_path=self.sp1, ) self.doc2 = Document.objects.create( @@ -109,19 +118,68 @@ class TestClassifier(DirectoriesMixin, TestCase): self.doc2.tags.add(self.t3) self.doc_inbox.tags.add(self.t2) - self.doc1.storage_path = self.sp1 + def generate_train_and_save(self): + """ + Generates the training data, trains and saves the updated pickle + file. This ensures the test is using the same scikit learn version + and eliminates a warning from the test suite + """ + self.generate_test_data() + self.classifier.train() + self.classifier.save() - def testNoTrainingData(self): - try: + def test_no_training_data(self): + """ + GIVEN: + - No documents exist to train + WHEN: + - Classifier training is requested + THEN: + - Exception is raised + """ + with self.assertRaisesMessage(ValueError, "No training data available."): + self.classifier.train() + + def test_no_non_inbox_tags(self): + """ + GIVEN: + - No documents without an inbox tag exist + WHEN: + - Classifier training is requested + THEN: + - Exception is raised + """ + + t1 = Tag.objects.create( + name="t1", + matching_algorithm=Tag.MATCH_ANY, + pk=34, + is_inbox_tag=True, + ) + + doc1 = Document.objects.create( + title="doc1", + content="this is a document from c1", + checksum="A", + ) + doc1.tags.add(t1) + + with self.assertRaisesMessage(ValueError, "No training data available."): self.classifier.train() - except ValueError as e: - self.assertEqual(str(e), "No training data available.") - else: - self.fail("Should raise exception") def testEmpty(self): + """ + GIVEN: + - A document exists + - No tags/not enough data to predict + WHEN: + - Classifier prediction is requested + THEN: + - Classifier returns no predictions + """ Document.objects.create(title="WOW", checksum="3457", content="ASD") self.classifier.train() + self.assertIsNone(self.classifier.document_type_classifier) self.assertIsNone(self.classifier.tags_classifier) self.assertIsNone(self.classifier.correspondent_classifier) @@ -131,8 +189,18 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertIsNone(self.classifier.predict_correspondent("")) def testTrain(self): + """ + GIVEN: + - Test data + WHEN: + - Classifier is trained + THEN: + - Classifier uses correct values for correspondent learning + - Classifier uses correct values for tags learning + """ self.generate_test_data() self.classifier.train() + self.assertListEqual( list(self.classifier.correspondent_classifier.classes_), [-1, self.c1.pk], @@ -143,8 +211,17 @@ class TestClassifier(DirectoriesMixin, TestCase): ) def testPredict(self): + """ + GIVEN: + - Classifier trained against test data + WHEN: + - Prediction requested for correspondent, tags, type + THEN: + - Expected predictions based on training set + """ self.generate_test_data() self.classifier.train() + self.assertEqual( self.classifier.predict_correspondent(self.doc1.content), self.c1.pk, @@ -164,20 +241,73 @@ class TestClassifier(DirectoriesMixin, TestCase): ) self.assertEqual(self.classifier.predict_document_type(self.doc2.content), None) - def testDatasetHashing(self): + def test_no_retrain_if_no_change(self): + """ + GIVEN: + - Classifier trained with current data + WHEN: + - Classifier training is requested again + THEN: + - Classifier does not redo training + """ self.generate_test_data() self.assertTrue(self.classifier.train()) self.assertFalse(self.classifier.train()) + def test_retrain_if_change(self): + """ + GIVEN: + - Classifier trained with current data + WHEN: + - Classifier training is requested again + - Documents have changed + THEN: + - Classifier does not redo training + """ + + self.generate_test_data() + + self.assertTrue(self.classifier.train()) + + self.doc1.correspondent = self.c2 + self.doc1.save() + + self.assertTrue(self.classifier.train()) + + def test_retrain_if_auto_match_set_changed(self): + """ + GIVEN: + - Classifier trained with current data + WHEN: + - Classifier training is requested again + - Some new AUTO match object exists + THEN: + - Classifier does redo training + """ + self.generate_test_data() + # Add the ANY type + self.doc1.tags.add(self.t4) + + self.assertTrue(self.classifier.train()) + + # Change the matching type + self.t4.matching_algorithm = MatchingModel.MATCH_AUTO + self.t4.save() + + self.assertTrue(self.classifier.train()) + def testVersionIncreased(self): - - self.generate_test_data() - self.assertTrue(self.classifier.train()) - self.assertFalse(self.classifier.train()) - - self.classifier.save() + """ + GIVEN: + - Existing classifier model saved at a version + WHEN: + - Attempt to load classifier file from newer version + THEN: + - Exception is raised + """ + self.generate_train_and_save() classifier2 = DocumentClassifier() @@ -194,14 +324,9 @@ class TestClassifier(DirectoriesMixin, TestCase): # assure that we can load the classifier after saving it. classifier2.load() - @override_settings(DATA_DIR=tempfile.mkdtemp()) def testSaveClassifier(self): - self.generate_test_data() - - self.classifier.train() - - self.classifier.save() + self.generate_train_and_save() new_classifier = DocumentClassifier() new_classifier.load() @@ -209,25 +334,9 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertFalse(new_classifier.train()) - # @override_settings( - # MODEL_FILE=os.path.join(os.path.dirname(__file__), "data", "model.pickle"), - # ) - # def test_create_test_load_and_classify(self): - # self.generate_test_data() - # self.classifier.train() - # self.classifier.save() - 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 - shutil.copy( - self.SAMPLE_MODEL_FILE, - os.path.join(self.dirs.data_dir, "classification_model.pickle"), - ) - self.generate_test_data() - self.classifier.train() - self.classifier.save() + + self.generate_train_and_save() new_classifier = DocumentClassifier() new_classifier.load() @@ -236,7 +345,7 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertCountEqual(new_classifier.predict_tags(self.doc2.content), [45, 12]) @mock.patch("documents.classifier.pickle.load") - def test_load_corrupt_file(self, patched_pickle_load): + def test_load_corrupt_file(self, patched_pickle_load: mock.MagicMock): """ GIVEN: - Corrupted classifier pickle file @@ -245,23 +354,24 @@ class TestClassifier(DirectoriesMixin, TestCase): THEN: - The ClassifierModelCorruptError is raised """ - shutil.copy( - self.SAMPLE_MODEL_FILE, - os.path.join(self.dirs.data_dir, "classification_model.pickle"), - ) - # First load is the schema version + self.generate_train_and_save() + + # First load is the schema version,allow it patched_pickle_load.side_effect = [DocumentClassifier.FORMAT_VERSION, OSError()] with self.assertRaises(ClassifierModelCorruptError): self.classifier.load() + patched_pickle_load.assert_called() + + patched_pickle_load.reset_mock() + patched_pickle_load.side_effect = [ + DocumentClassifier.FORMAT_VERSION, + ClassifierModelCorruptError(), + ] + + self.assertIsNone(load_classifier()) + patched_pickle_load.assert_called() - @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: @@ -271,9 +381,11 @@ class TestClassifier(DirectoriesMixin, TestCase): THEN: - The classifier reports the warning was captured and processed """ - - with self.assertRaises(IncompatibleClassifierVersionError): - self.classifier.load() + # TODO: This wasn't testing the warning anymore, as the schema changed + # but as it was implemented, it would require installing an old version + # rebuilding the file and committing that. Not developer friendly + # Need to rethink how to pass the load through to a file with a single + # old model? def test_one_correspondent_predict(self): c1 = Correspondent.objects.create( @@ -403,7 +515,7 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertListEqual(self.classifier.predict_tags(doc1.content), [t1.pk]) def test_one_tag_predict_unassigned(self): - t1 = Tag.objects.create(name="t1", matching_algorithm=Tag.MATCH_AUTO, pk=12) + Tag.objects.create(name="t1", matching_algorithm=Tag.MATCH_AUTO, pk=12) doc1 = Document.objects.create( title="doc1", @@ -530,7 +642,7 @@ class TestClassifier(DirectoriesMixin, TestCase): self.assertIsNotNone(classifier) with mock.patch("documents.classifier.DocumentClassifier.load") as load: - classifier2 = load_classifier() + load_classifier() load.assert_not_called() @mock.patch("documents.classifier.DocumentClassifier.load") diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index 8aaefa242..cd06e9782 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -12,24 +12,25 @@ from dateutil import tz try: import zoneinfo except ImportError: - import backports.zoneinfo as zoneinfo + from backports import zoneinfo from django.conf import settings from django.utils import timezone from django.test import override_settings from django.test import TestCase -from ..consumer import Consumer -from ..consumer import ConsumerError -from ..models import Correspondent -from ..models import Document -from ..models import DocumentType -from ..models import FileInfo -from ..models import Tag -from ..parsers import DocumentParser -from ..parsers import ParseError -from ..tasks import sanity_check +from documents.consumer import Consumer +from documents.consumer import ConsumerError +from documents.models import Correspondent +from documents.models import Document +from documents.models import DocumentType +from documents.models import FileInfo +from documents.models import Tag +from documents.parsers import DocumentParser +from documents.parsers import ParseError +from documents.tasks import sanity_check from .utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin class TestAttributes(TestCase): @@ -71,8 +72,8 @@ class TestFieldPermutations(TestCase): "20150102030405Z", "20150102Z", ) - valid_correspondents = ["timmy", "Dr. McWheelie", "Dash Gor-don", "ο Θερμαστής", ""] - valid_titles = ["title", "Title w Spaces", "Title a-dash", "Τίτλος", ""] + valid_correspondents = ["timmy", "Dr. McWheelie", "Dash Gor-don", "o Θεpμaoτής", ""] + valid_titles = ["title", "Title w Spaces", "Title a-dash", "Tίτλoς", ""] valid_tags = ["tag", "tig,tag", "tag1,tag2,tag-3"] def _test_guessed_attributes( @@ -134,9 +135,7 @@ class TestFieldPermutations(TestCase): filename = "tag1,tag2_20190908_180610_0001.pdf" all_patt = re.compile("^.*$") none_patt = re.compile("$a") - exact_patt = re.compile("^([a-z0-9,]+)_(\\d{8})_(\\d{6})_([0-9]+)\\.") - repl1 = " - \\4 - \\1." # (empty) corrspondent, title and tags - repl2 = "\\2Z - " + repl1 # creation date + repl1 + re.compile("^([a-z0-9,]+)_(\\d{8})_(\\d{6})_([0-9]+)\\.") # No transformations configured (= default) info = FileInfo.from_filename(filename) @@ -176,10 +175,6 @@ class TestFieldPermutations(TestCase): class DummyParser(DocumentParser): - def get_thumbnail(self, document_path, mime_type, file_name=None): - # not important during tests - raise NotImplementedError() - def __init__(self, logging_group, scratch_dir, archive_path): super().__init__(logging_group, None) _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir) @@ -196,9 +191,6 @@ class CopyParser(DocumentParser): def get_thumbnail(self, document_path, mime_type, file_name=None): return self.fake_thumb - 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=".webp", dir=self.tempdir) @@ -210,10 +202,6 @@ class CopyParser(DocumentParser): class FaultyParser(DocumentParser): - def get_thumbnail(self, document_path, mime_type, file_name=None): - # not important during tests - raise NotImplementedError() - def __init__(self, logging_group, scratch_dir): super().__init__(logging_group) _, self.fake_thumb = tempfile.mkstemp(suffix=".webp", dir=scratch_dir) @@ -241,7 +229,7 @@ def fake_magic_from_file(file, mime=False): @mock.patch("documents.consumer.magic.from_file", fake_magic_from_file) -class TestConsumer(DirectoriesMixin, TestCase): +class TestConsumer(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def _assert_first_last_send_progress( self, first_status="STARTING", @@ -346,16 +334,16 @@ class TestConsumer(DirectoriesMixin, TestCase): self.assertEqual(document.filename, "0000001.pdf") self.assertEqual(document.archive_filename, "0000001.pdf") - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) - self.assertTrue(os.path.isfile(document.thumbnail_path)) + self.assertIsFile(document.thumbnail_path) - self.assertTrue(os.path.isfile(document.archive_path)) + self.assertIsFile(document.archive_path) self.assertEqual(document.checksum, "42995833e01aea9b3edee44bbfdd7ce1") self.assertEqual(document.archive_checksum, "62acb0bcbfbcaa62ca6ad3668e4e404b") - self.assertFalse(os.path.isfile(filename)) + self.assertIsNotFile(filename) self._assert_first_last_send_progress() @@ -383,14 +371,14 @@ class TestConsumer(DirectoriesMixin, TestCase): shutil.copy(filename, shadow_file) - self.assertTrue(os.path.isfile(shadow_file)) + self.assertIsFile(shadow_file) document = self.consumer.try_consume_file(filename) - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) - self.assertFalse(os.path.isfile(shadow_file)) - self.assertFalse(os.path.isfile(filename)) + self.assertIsNotFile(shadow_file) + self.assertIsNotFile(filename) def testOverrideFilename(self): filename = self.get_test_file() @@ -536,7 +524,7 @@ class TestConsumer(DirectoriesMixin, TestCase): self._assert_first_last_send_progress(last_status="FAILED") # file not deleted - self.assertTrue(os.path.isfile(filename)) + self.assertIsFile(filename) # Database empty self.assertEqual(len(Document.objects.all()), 0) @@ -573,9 +561,9 @@ class TestConsumer(DirectoriesMixin, TestCase): document = self.consumer.try_consume_file(filename, override_title="new docs") self.assertEqual(document.title, "new docs") - self.assertIsNotNone(os.path.isfile(document.title)) - self.assertTrue(os.path.isfile(document.source_path)) - self.assertTrue(os.path.isfile(document.archive_path)) + self.assertIsNotNone(document.title) + self.assertIsFile(document.source_path) + self.assertIsFile(document.archive_path) self._assert_first_last_send_progress() @@ -603,35 +591,35 @@ class TestConsumer(DirectoriesMixin, TestCase): @override_settings(CONSUMER_DELETE_DUPLICATES=True) def test_delete_duplicate(self): dst = self.get_test_file() - self.assertTrue(os.path.isfile(dst)) + self.assertIsFile(dst) doc = self.consumer.try_consume_file(dst) self._assert_first_last_send_progress() - self.assertFalse(os.path.isfile(dst)) + self.assertIsNotFile(dst) self.assertIsNotNone(doc) self._send_progress.reset_mock() dst = self.get_test_file() - self.assertTrue(os.path.isfile(dst)) + self.assertIsFile(dst) self.assertRaises(ConsumerError, self.consumer.try_consume_file, dst) - self.assertFalse(os.path.isfile(dst)) + self.assertIsNotFile(dst) self._assert_first_last_send_progress(last_status="FAILED") @override_settings(CONSUMER_DELETE_DUPLICATES=False) def test_no_delete_duplicate(self): dst = self.get_test_file() - self.assertTrue(os.path.isfile(dst)) + self.assertIsFile(dst) doc = self.consumer.try_consume_file(dst) - self.assertFalse(os.path.isfile(dst)) + self.assertIsNotFile(dst) self.assertIsNotNone(doc) dst = self.get_test_file() - self.assertTrue(os.path.isfile(dst)) + self.assertIsFile(dst) self.assertRaises(ConsumerError, self.consumer.try_consume_file, dst) - self.assertTrue(os.path.isfile(dst)) + self.assertIsFile(dst) self._assert_first_last_send_progress(last_status="FAILED") diff --git a/src/documents/tests/test_date_parsing.py b/src/documents/tests/test_date_parsing.py index 30466a83f..e1b179976 100644 --- a/src/documents/tests/test_date_parsing.py +++ b/src/documents/tests/test_date_parsing.py @@ -46,7 +46,7 @@ class TestDate(TestCase): ) def test_date_format_5(self): - text = "lorem ipsum 130218, 2018, 20180213 and lorem 13.02.2018 lorem " "ipsum" + text = "lorem ipsum 130218, 2018, 20180213 and lorem 13.02.2018 lorem ipsum" date = parse_date("", text) self.assertEqual( date, @@ -68,7 +68,7 @@ class TestDate(TestCase): self.assertEqual(parse_date("", text), None) def test_date_format_7(self): - text = "lorem ipsum\n" "März 2019\n" "lorem ipsum" + text = "lorem ipsum\nMärz 2019\nlorem ipsum" date = parse_date("", text) self.assertEqual( date, @@ -95,7 +95,7 @@ class TestDate(TestCase): @override_settings(SCRATCH_DIR=SCRATCH) def test_date_format_9(self): - text = "lorem ipsum\n" "27. Nullmonth 2020\n" "März 2020\n" "lorem ipsum" + text = "lorem ipsum\n27. Nullmonth 2020\nMärz 2020\nlorem ipsum" self.assertEqual( parse_date("", text), datetime.datetime(2020, 3, 1, 0, 0, tzinfo=tz.gettz(settings.TIME_ZONE)), @@ -262,7 +262,7 @@ class TestDate(TestCase): THEN: - Should parse the date non-ignored date from content """ - text = "lorem ipsum 110319, 20200117 and lorem 13.02.2018 lorem " "ipsum" + text = "lorem ipsum 110319, 20200117 and lorem 13.02.2018 lorem ipsum" self.assertEqual( parse_date("", text), datetime.datetime(2018, 2, 13, 0, 0, tzinfo=tz.gettz(settings.TIME_ZONE)), @@ -283,7 +283,7 @@ class TestDate(TestCase): THEN: - Should parse the date non-ignored date from content """ - text = "lorem ipsum 190311, 20200117 and lorem 13.02.2018 lorem " "ipsum" + text = "lorem ipsum 190311, 20200117 and lorem 13.02.2018 lorem ipsum" self.assertEqual( parse_date("", text), diff --git a/src/documents/tests/test_document_model.py b/src/documents/tests/test_document_model.py index 57455fb8f..763f5049c 100644 --- a/src/documents/tests/test_document_model.py +++ b/src/documents/tests/test_document_model.py @@ -6,14 +6,14 @@ from unittest import mock try: import zoneinfo except ImportError: - import backports.zoneinfo as zoneinfo + from backports import zoneinfo from django.test import override_settings from django.test import TestCase from django.utils import timezone -from ..models import Correspondent -from ..models import Document +from documents.models import Correspondent +from documents.models import Document class TestDocument(TestCase): diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py index 8d726b339..d2f61eb1c 100644 --- a/src/documents/tests/test_file_handling.py +++ b/src/documents/tests/test_file_handling.py @@ -1,30 +1,28 @@ import datetime -import hashlib import os -import random import tempfile -import uuid from pathlib import Path from unittest import mock from django.conf import settings +from django.contrib.auth.models import User from django.db import DatabaseError from django.test import override_settings from django.test import TestCase from django.utils import timezone -from ..file_handling import create_source_path_directory -from ..file_handling import delete_empty_directories -from ..file_handling import generate_filename -from ..file_handling import generate_unique_filename -from ..models import Correspondent -from ..models import Document -from ..models import DocumentType -from ..models import StoragePath -from .utils import DirectoriesMixin +from documents.file_handling import create_source_path_directory +from documents.file_handling import delete_empty_directories +from documents.file_handling import generate_filename +from documents.models import Correspondent +from documents.models import Document +from documents.models import DocumentType +from documents.models import StoragePath +from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin -class TestFileHandling(DirectoriesMixin, TestCase): +class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @override_settings(FILENAME_FORMAT="") def test_generate_source_filename(self): document = Document() @@ -50,7 +48,7 @@ class TestFileHandling(DirectoriesMixin, TestCase): # Test default source_path self.assertEqual( document.source_path, - settings.ORIGINALS_DIR + f"/{document.pk:07d}.pdf", + settings.ORIGINALS_DIR / f"{document.pk:07d}.pdf", ) document.filename = generate_filename(document) @@ -68,18 +66,21 @@ class TestFileHandling(DirectoriesMixin, TestCase): # test that creating dirs for the source_path creates the correct directory create_source_path_directory(document.source_path) Path(document.source_path).touch() - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), True) + self.assertIsDir(os.path.join(settings.ORIGINALS_DIR, "none")) # Set a correspondent and save the document document.correspondent = Correspondent.objects.get_or_create(name="test")[0] document.save() # Check proper handling of files - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/test"), True) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), False) - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/test/test.pdf.gpg"), - True, + self.assertIsDir( + settings.ORIGINALS_DIR / "test", + ) + self.assertIsNotDir( + settings.ORIGINALS_DIR / "none", + ) + self.assertIsFile( + settings.ORIGINALS_DIR / "test" / "test.pdf.gpg", ) @override_settings(FILENAME_FORMAT="{correspondent}/{correspondent}") @@ -93,34 +94,33 @@ class TestFileHandling(DirectoriesMixin, TestCase): document.filename = generate_filename(document) self.assertEqual(document.filename, "none/none.pdf") create_source_path_directory(document.source_path) - Path(document.source_path).touch() + document.source_path.touch() # Test source_path self.assertEqual( document.source_path, - settings.ORIGINALS_DIR + "/none/none.pdf", + settings.ORIGINALS_DIR / "none" / "none.pdf", ) # Make the folder read- and execute-only (no writing and no renaming) - os.chmod(settings.ORIGINALS_DIR + "/none", 0o555) + os.chmod(os.path.join(settings.ORIGINALS_DIR, "none"), 0o555) # Set a correspondent and save the document document.correspondent = Correspondent.objects.get_or_create(name="test")[0] document.save() # Check proper handling of files - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/none/none.pdf"), - True, + self.assertIsFile( + settings.ORIGINALS_DIR / "none" / "none.pdf", ) self.assertEqual(document.filename, "none/none.pdf") - os.chmod(settings.ORIGINALS_DIR + "/none", 0o777) + os.chmod(os.path.join(settings.ORIGINALS_DIR, "none"), 0o777) @override_settings(FILENAME_FORMAT="{correspondent}/{correspondent}") def test_file_renaming_database_error(self): - document1 = Document.objects.create( + Document.objects.create( mime_type="application/pdf", storage_type=Document.STORAGE_TYPE_UNENCRYPTED, checksum="AAAAA", @@ -139,7 +139,7 @@ class TestFileHandling(DirectoriesMixin, TestCase): Path(document.source_path).touch() # Test source_path - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) # Set a correspondent and save the document document.correspondent = Correspondent.objects.get_or_create(name="test")[0] @@ -149,10 +149,9 @@ class TestFileHandling(DirectoriesMixin, TestCase): document.save() # Check proper handling of files - self.assertTrue(os.path.isfile(document.source_path)) - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/none/none.pdf"), - True, + self.assertIsFile(document.source_path) + self.assertIsFile( + os.path.join(settings.ORIGINALS_DIR, "none/none.pdf"), ) self.assertEqual(document.filename, "none/none.pdf") @@ -171,13 +170,11 @@ class TestFileHandling(DirectoriesMixin, TestCase): Path(document.source_path).touch() # Ensure file deletion after delete - pk = document.pk document.delete() - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/none/none.pdf"), - False, + self.assertIsNotFile( + os.path.join(settings.ORIGINALS_DIR, "none", "none.pdf"), ) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), False) + self.assertIsNotDir(os.path.join(settings.ORIGINALS_DIR, "none")) @override_settings( FILENAME_FORMAT="{correspondent}/{correspondent}", @@ -197,15 +194,14 @@ class TestFileHandling(DirectoriesMixin, TestCase): Path(document.source_path).touch() # Ensure file was moved to trash after delete - self.assertEqual(os.path.isfile(settings.TRASH_DIR + "/none/none.pdf"), False) + self.assertIsNotFile(os.path.join(settings.TRASH_DIR, "none", "none.pdf")) document.delete() - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/none/none.pdf"), - False, + self.assertIsNotFile( + os.path.join(settings.ORIGINALS_DIR, "none", "none.pdf"), ) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), False) - self.assertEqual(os.path.isfile(settings.TRASH_DIR + "/none.pdf"), True) - self.assertEqual(os.path.isfile(settings.TRASH_DIR + "/none_01.pdf"), False) + self.assertIsNotDir(os.path.join(settings.ORIGINALS_DIR, "none")) + self.assertIsFile(os.path.join(settings.TRASH_DIR, "none.pdf")) + self.assertIsNotFile(os.path.join(settings.TRASH_DIR, "none_01.pdf")) # Create an identical document and ensure it is trashed under a new name document = Document() @@ -216,7 +212,7 @@ class TestFileHandling(DirectoriesMixin, TestCase): create_source_path_directory(document.source_path) Path(document.source_path).touch() document.delete() - self.assertEqual(os.path.isfile(settings.TRASH_DIR + "/none_01.pdf"), True) + self.assertIsFile(os.path.join(settings.TRASH_DIR, "none_01.pdf")) @override_settings(FILENAME_FORMAT="{correspondent}/{correspondent}") def test_document_delete_nofile(self): @@ -240,18 +236,18 @@ class TestFileHandling(DirectoriesMixin, TestCase): create_source_path_directory(document.source_path) - Path(document.source_path).touch() - important_file = document.source_path + "test" - Path(important_file).touch() + document.source_path.touch() + important_file = document.source_path.with_suffix(".test") + important_file.touch() # Set a correspondent and save the document document.correspondent = Correspondent.objects.get_or_create(name="test")[0] document.save() # Check proper handling of files - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/test"), True) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), True) - self.assertTrue(os.path.isfile(important_file)) + self.assertIsDir(os.path.join(settings.ORIGINALS_DIR, "test")) + self.assertIsDir(os.path.join(settings.ORIGINALS_DIR, "none")) + self.assertIsFile(important_file) @override_settings(FILENAME_FORMAT="{document_type} - {title}") def test_document_type(self): @@ -387,7 +383,7 @@ class TestFileHandling(DirectoriesMixin, TestCase): self.assertEqual( doc.source_path, - os.path.join(settings.ORIGINALS_DIR, "etc", "something", "doc1.pdf"), + settings.ORIGINALS_DIR / "etc" / "something" / "doc1.pdf", ) @override_settings( @@ -440,18 +436,16 @@ class TestFileHandling(DirectoriesMixin, TestCase): Path(document.source_path).touch() # Check proper handling of files - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none/none"), True) + self.assertIsDir(os.path.join(settings.ORIGINALS_DIR, "none/none")) - pk = document.pk document.delete() - self.assertEqual( - os.path.isfile(settings.ORIGINALS_DIR + "/none/none/none.pdf"), - False, + self.assertIsNotFile( + os.path.join(settings.ORIGINALS_DIR, "none/none/none.pdf"), ) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none/none"), False) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR + "/none"), False) - self.assertEqual(os.path.isdir(settings.ORIGINALS_DIR), True) + self.assertIsNotDir(os.path.join(settings.ORIGINALS_DIR, "none/none")) + self.assertIsNotDir(os.path.join(settings.ORIGINALS_DIR, "none")) + self.assertIsDir(settings.ORIGINALS_DIR) @override_settings(FILENAME_FORMAT=None) def test_format_none(self): @@ -475,9 +469,9 @@ class TestFileHandling(DirectoriesMixin, TestCase): os.path.join(tmp, "notempty", "empty"), root=settings.ORIGINALS_DIR, ) - self.assertEqual(os.path.isdir(os.path.join(tmp, "notempty")), True) - self.assertEqual(os.path.isfile(os.path.join(tmp, "notempty", "file")), True) - self.assertEqual(os.path.isdir(os.path.join(tmp, "notempty", "empty")), False) + self.assertIsDir(os.path.join(tmp, "notempty")) + self.assertIsFile(os.path.join(tmp, "notempty", "file")) + self.assertIsNotDir(os.path.join(tmp, "notempty", "empty")) @override_settings(FILENAME_FORMAT="{created/[title]") def test_invalid_format(self): @@ -516,36 +510,36 @@ class TestFileHandling(DirectoriesMixin, TestCase): document.filename = "0000001.pdf" document.save() - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) self.assertEqual(document.filename, "qwe.pdf") document2.filename = "0000002.pdf" document2.save() - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) self.assertEqual(document2.filename, "qwe_01.pdf") # saving should not change the file names. document.save() - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) self.assertEqual(document.filename, "qwe.pdf") document2.save() - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) self.assertEqual(document2.filename, "qwe_01.pdf") document.delete() - self.assertFalse(os.path.isfile(document.source_path)) + self.assertIsNotFile(document.source_path) # filename free, should remove _01 suffix document2.save() - self.assertTrue(os.path.isfile(document.source_path)) + self.assertIsFile(document.source_path) self.assertEqual(document2.filename, "qwe.pdf") @override_settings(FILENAME_FORMAT="{title}") @@ -567,7 +561,7 @@ class TestFileHandling(DirectoriesMixin, TestCase): m.assert_not_called() -class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): +class TestFileHandlingWithArchive(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @override_settings(FILENAME_FORMAT=None) def test_create_no_format(self): original = os.path.join(settings.ORIGINALS_DIR, "0000001.pdf") @@ -582,10 +576,10 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_checksum="B", ) - self.assertTrue(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") def test_create_with_format(self): @@ -602,17 +596,17 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_filename="0000001.pdf", ) - self.assertFalse(os.path.isfile(original)) - self.assertFalse(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsNotFile(original) + self.assertIsNotFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) self.assertEqual( doc.source_path, - os.path.join(settings.ORIGINALS_DIR, "none", "my_doc.pdf"), + settings.ORIGINALS_DIR / "none" / "my_doc.pdf", ) self.assertEqual( doc.archive_path, - os.path.join(settings.ARCHIVE_DIR, "none", "my_doc.pdf"), + settings.ARCHIVE_DIR / "none" / "my_doc.pdf", ) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") @@ -629,10 +623,10 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_filename="0000001.pdf", ) - self.assertTrue(os.path.isfile(original)) - self.assertFalse(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertFalse(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsNotFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsNotFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") def test_move_archive_exists(self): @@ -652,11 +646,11 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_filename="0000001.pdf", ) - self.assertFalse(os.path.isfile(original)) - self.assertFalse(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) - self.assertTrue(os.path.isfile(existing_archive_file)) + self.assertIsNotFile(original) + self.assertIsNotFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) + self.assertIsFile(existing_archive_file) self.assertEqual(doc.archive_filename, "none/my_doc_01.pdf") @override_settings(FILENAME_FORMAT="{title}") @@ -678,8 +672,8 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): self.assertEqual(doc.filename, "document.pdf") self.assertEqual(doc.archive_filename, "document.pdf") - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{title}") def test_move_archive_only(self): @@ -700,15 +694,15 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): self.assertEqual(doc.filename, "document.pdf") self.assertEqual(doc.archive_filename, "document.pdf") - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") @mock.patch("documents.signals.handlers.os.rename") def test_move_archive_error(self, m): def fake_rename(src, dst): - if "archive" in src: - raise OSError() + if "archive" in str(src): + raise OSError else: os.remove(src) Path(dst).touch() @@ -729,10 +723,10 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): ) m.assert_called() - self.assertTrue(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") def test_move_file_gone(self): @@ -749,17 +743,17 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_checksum="B", ) - self.assertFalse(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertFalse(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsNotFile(original) + self.assertIsFile(archive) + self.assertIsNotFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") @mock.patch("documents.signals.handlers.os.rename") def test_move_file_error(self, m): def fake_rename(src, dst): - if "original" in src: - raise OSError() + if "original" in str(src): + raise OSError else: os.remove(src) Path(dst).touch() @@ -780,10 +774,10 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): ) m.assert_called() - self.assertTrue(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) @override_settings(FILENAME_FORMAT="") def test_archive_deleted(self): @@ -800,17 +794,17 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): archive_filename="0000001.pdf", ) - self.assertTrue(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) doc.delete() - self.assertFalse(os.path.isfile(original)) - self.assertFalse(os.path.isfile(archive)) - self.assertFalse(os.path.isfile(doc.source_path)) - self.assertFalse(os.path.isfile(doc.archive_path)) + self.assertIsNotFile(original) + self.assertIsNotFile(archive) + self.assertIsNotFile(doc.source_path) + self.assertIsNotFile(doc.archive_path) @override_settings(FILENAME_FORMAT="{title}") def test_archive_deleted2(self): @@ -836,15 +830,15 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): checksum="C", ) - self.assertTrue(os.path.isfile(doc1.source_path)) - self.assertTrue(os.path.isfile(doc1.archive_path)) - self.assertTrue(os.path.isfile(doc2.source_path)) + self.assertIsFile(doc1.source_path) + self.assertIsFile(doc1.archive_path) + self.assertIsFile(doc2.source_path) doc2.delete() - self.assertTrue(os.path.isfile(doc1.source_path)) - self.assertTrue(os.path.isfile(doc1.archive_path)) - self.assertFalse(os.path.isfile(doc2.source_path)) + self.assertIsFile(doc1.source_path) + self.assertIsFile(doc1.archive_path) + self.assertIsNotFile(doc2.source_path) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") def test_database_error(self): @@ -865,13 +859,13 @@ class TestFileHandlingWithArchive(DirectoriesMixin, TestCase): m.side_effect = DatabaseError() doc.save() - self.assertTrue(os.path.isfile(original)) - self.assertTrue(os.path.isfile(archive)) - self.assertTrue(os.path.isfile(doc.source_path)) - self.assertTrue(os.path.isfile(doc.archive_path)) + self.assertIsFile(original) + self.assertIsFile(archive) + self.assertIsFile(doc.source_path) + self.assertIsFile(doc.archive_path) -class TestFilenameGeneration(TestCase): +class TestFilenameGeneration(DirectoriesMixin, TestCase): @override_settings(FILENAME_FORMAT="{title}") def test_invalid_characters(self): @@ -1064,27 +1058,92 @@ class TestFilenameGeneration(TestCase): ) self.assertEqual(generate_filename(doc), "84/August/Aug/The Title.pdf") - -def run(): - doc = Document.objects.create( - checksum=str(uuid.uuid4()), - title=str(uuid.uuid4()), - content="wow", + @override_settings( + FILENAME_FORMAT="{owner_username}/{title}", ) - doc.filename = generate_unique_filename(doc) - Path(doc.thumbnail_path).touch() - with open(doc.source_path, "w") as f: - f.write(str(uuid.uuid4())) - with open(doc.source_path, "rb") as f: - doc.checksum = hashlib.md5(f.read()).hexdigest() + def test_document_owner_string(self): + """ + GIVEN: + - Document with an other + - Document without an owner + - Filename format string includes owner + WHEN: + - Filename is generated for each document + THEN: + - Owned document includes username + - Document without owner returns "none" + """ - with open(doc.archive_path, "w") as f: - f.write(str(uuid.uuid4())) - with open(doc.archive_path, "rb") as f: - doc.archive_checksum = hashlib.md5(f.read()).hexdigest() + u1 = User.objects.create_user("user1") - doc.save() + owned_doc = Document.objects.create( + title="The Title", + mime_type="application/pdf", + checksum="2", + owner=u1, + ) - for i in range(30): - doc.title = str(random.randrange(1, 5)) - doc.save() + no_owner_doc = Document.objects.create( + title="does matter", + mime_type="application/pdf", + checksum="3", + ) + + self.assertEqual(generate_filename(owned_doc), "user1/The Title.pdf") + self.assertEqual(generate_filename(no_owner_doc), "none/does matter.pdf") + + @override_settings( + FILENAME_FORMAT="{original_name}", + ) + def test_document_original_filename(self): + """ + GIVEN: + - Document with an original filename + - Document without an original filename + - Document which was plain text document + - Filename format string includes original filename + WHEN: + - Filename is generated for each document + THEN: + - Document with original name uses it, dropping suffix + - Document without original name returns "none" + - Text document returns extension of .txt + - Text document archive returns extension of .pdf + - No extensions are doubled + """ + doc_with_original = Document.objects.create( + title="does matter", + mime_type="application/pdf", + checksum="3", + original_filename="someepdf.pdf", + ) + tricky_with_original = Document.objects.create( + title="does matter", + mime_type="application/pdf", + checksum="1", + original_filename="some pdf with spaces and stuff.pdf", + ) + no_original = Document.objects.create( + title="does matter", + mime_type="application/pdf", + checksum="2", + ) + + text_doc = Document.objects.create( + title="does matter", + mime_type="text/plain", + checksum="4", + original_filename="logs.txt", + ) + + self.assertEqual(generate_filename(doc_with_original), "someepdf.pdf") + + self.assertEqual( + generate_filename(tricky_with_original), + "some pdf with spaces and stuff.pdf", + ) + + self.assertEqual(generate_filename(no_original), "none.pdf") + + self.assertEqual(generate_filename(text_doc), "logs.txt") + self.assertEqual(generate_filename(text_doc, archive_filename=True), "logs.pdf") diff --git a/src/documents/tests/test_importer.py b/src/documents/tests/test_importer.py index 10146ff30..8a659dbb6 100644 --- a/src/documents/tests/test_importer.py +++ b/src/documents/tests/test_importer.py @@ -2,7 +2,7 @@ from django.core.management.base import CommandError from django.test import TestCase from documents.settings import EXPORTER_FILE_NAME -from ..management.commands.document_importer import Command +from documents.management.commands.document_importer import Command class TestImporter(TestCase): diff --git a/src/documents/tests/test_management.py b/src/documents/tests/test_management.py index 2844a0a30..d5b81a5e1 100644 --- a/src/documents/tests/test_management.py +++ b/src/documents/tests/test_management.py @@ -13,13 +13,14 @@ from documents.file_handling import generate_filename from documents.models import Document from documents.tasks import update_document_archive_file from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin sample_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf") @override_settings(FILENAME_FORMAT="{correspondent}/{title}") -class TestArchiver(DirectoriesMixin, TestCase): +class TestArchiver(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def make_models(self): return Document.objects.create( checksum="A", @@ -52,8 +53,8 @@ class TestArchiver(DirectoriesMixin, TestCase): self.assertIsNotNone(doc.checksum) self.assertIsNotNone(doc.archive_checksum) - self.assertTrue(os.path.isfile(doc.archive_path)) - self.assertTrue(os.path.isfile(doc.source_path)) + self.assertIsFile(doc.archive_path) + self.assertIsFile(doc.source_path) self.assertTrue(filecmp.cmp(sample_file, doc.source_path)) self.assertEqual(doc.archive_filename, "none/A.pdf") @@ -70,7 +71,7 @@ class TestArchiver(DirectoriesMixin, TestCase): self.assertIsNotNone(doc.checksum) self.assertIsNone(doc.archive_checksum) self.assertIsNone(doc.archive_filename) - self.assertTrue(os.path.isfile(doc.source_path)) + self.assertIsFile(doc.source_path) @override_settings(FILENAME_FORMAT="{title}") def test_naming_priorities(self): @@ -104,7 +105,7 @@ class TestArchiver(DirectoriesMixin, TestCase): self.assertEqual(doc2.archive_filename, "document_01.pdf") -class TestDecryptDocuments(TestCase): +class TestDecryptDocuments(FileSystemAssertsMixin, TestCase): @override_settings( ORIGINALS_DIR=os.path.join(os.path.dirname(__file__), "samples", "originals"), THUMBNAIL_DIR=os.path.join(os.path.dirname(__file__), "samples", "thumb"), @@ -161,10 +162,10 @@ class TestDecryptDocuments(TestCase): self.assertEqual(doc.storage_type, Document.STORAGE_TYPE_UNENCRYPTED) 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}.webp"))) - self.assertTrue(os.path.isfile(doc.thumbnail_path)) + self.assertIsFile(os.path.join(originals_dir, "0000004.pdf")) + self.assertIsFile(doc.source_path) + self.assertIsFile(os.path.join(thumb_dir, f"{doc.id:07}.webp")) + self.assertIsFile(doc.thumbnail_path) with doc.source_file as f: checksum = hashlib.md5(f.read()).hexdigest() @@ -183,7 +184,7 @@ class TestMakeIndex(TestCase): m.assert_called_once() -class TestRenamer(DirectoriesMixin, TestCase): +class TestRenamer(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @override_settings(FILENAME_FORMAT="") def test_rename(self): doc = Document.objects.create(title="test", mime_type="image/jpeg") @@ -201,10 +202,10 @@ class TestRenamer(DirectoriesMixin, TestCase): self.assertEqual(doc2.filename, "none/test.jpg") self.assertEqual(doc2.archive_filename, "none/test.pdf") - self.assertFalse(os.path.isfile(doc.source_path)) - self.assertFalse(os.path.isfile(doc.archive_path)) - self.assertTrue(os.path.isfile(doc2.source_path)) - self.assertTrue(os.path.isfile(doc2.archive_path)) + self.assertIsNotFile(doc.source_path) + self.assertIsNotFile(doc.archive_path) + self.assertIsFile(doc2.source_path) + self.assertIsFile(doc2.archive_path) class TestCreateClassifier(TestCase): diff --git a/src/documents/tests/test_management_consumer.py b/src/documents/tests/test_management_consumer.py index 3db8de034..150880116 100644 --- a/src/documents/tests/test_management_consumer.py +++ b/src/documents/tests/test_management_consumer.py @@ -1,6 +1,7 @@ import filecmp import os import shutil +from pathlib import Path from threading import Thread from time import sleep from unittest import mock @@ -11,9 +12,11 @@ from django.core.management import CommandError from django.test import override_settings from django.test import TransactionTestCase from documents.consumer import ConsumerError +from documents.data_models import ConsumableDocument from documents.management.commands import document_consumer from documents.models import Tag from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import DocumentConsumeDelayMixin class ConsumerThread(Thread): @@ -35,18 +38,19 @@ def chunked(size, source): yield source[i : i + size] -class ConsumerMixin: +class ConsumerThreadMixin(DocumentConsumeDelayMixin): + """ + Provides a thread which runs the consumer management command at setUp + and stops it at tearDown + """ - sample_file = os.path.join(os.path.dirname(__file__), "samples", "simple.pdf") + sample_file: Path = ( + Path(__file__).parent / Path("samples") / Path("simple.pdf") + ).resolve() def setUp(self) -> None: super().setUp() self.t = None - patcher = mock.patch( - "documents.tasks.consume_file.delay", - ) - self.task_mock = patcher.start() - self.addCleanup(patcher.stop) def t_start(self): self.t = ConsumerThread() @@ -67,7 +71,7 @@ class ConsumerMixin: def wait_for_task_mock_call(self, expected_call_count=1): n = 0 while n < 50: - if self.task_mock.call_count >= expected_call_count: + if self.consume_file_mock.call_count >= expected_call_count: # give task_mock some time to finish and raise errors sleep(1) return @@ -76,8 +80,12 @@ class ConsumerMixin: # A bogus async_task that will simply check the file for # completeness and raise an exception otherwise. - def bogus_task(self, filename, **kwargs): - eq = filecmp.cmp(filename, self.sample_file, shallow=False) + def bogus_task( + self, + input_doc: ConsumableDocument, + overrides=None, + ): + eq = filecmp.cmp(input_doc.original_file, self.sample_file, shallow=False) if not eq: print("Consumed an INVALID file.") raise ConsumerError("Incomplete File READ FAILED") @@ -103,19 +111,20 @@ class ConsumerMixin: @override_settings( CONSUMER_INOTIFY_DELAY=0.01, ) -class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): +class TestConsumer(DirectoriesMixin, ConsumerThreadMixin, TransactionTestCase): def test_consume_file(self): self.t_start() - f = os.path.join(self.dirs.consumption_dir, "my_file.pdf") + f = Path(os.path.join(self.dirs.consumption_dir, "my_file.pdf")) shutil.copy(self.sample_file, f) self.wait_for_task_mock_call() - self.task_mock.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], f) + input_doc, _ = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, f) def test_consume_file_invalid_ext(self): self.t_start() @@ -125,26 +134,27 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): self.wait_for_task_mock_call() - self.task_mock.assert_not_called() + self.consume_file_mock.assert_not_called() def test_consume_existing_file(self): - f = os.path.join(self.dirs.consumption_dir, "my_file.pdf") + f = Path(os.path.join(self.dirs.consumption_dir, "my_file.pdf")) shutil.copy(self.sample_file, f) self.t_start() - self.task_mock.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], f) + input_doc, _ = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, f) @mock.patch("documents.management.commands.document_consumer.logger.error") def test_slow_write_pdf(self, error_logger): - self.task_mock.side_effect = self.bogus_task + self.consume_file_mock.side_effect = self.bogus_task self.t_start() - fname = os.path.join(self.dirs.consumption_dir, "my_file.pdf") + fname = Path(os.path.join(self.dirs.consumption_dir, "my_file.pdf")) self.slow_write_file(fname) @@ -152,48 +162,52 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): error_logger.assert_not_called() - self.task_mock.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], fname) + input_doc, _ = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, fname) @mock.patch("documents.management.commands.document_consumer.logger.error") def test_slow_write_and_move(self, error_logger): - self.task_mock.side_effect = self.bogus_task + self.consume_file_mock.side_effect = self.bogus_task self.t_start() - fname = os.path.join(self.dirs.consumption_dir, "my_file.~df") - fname2 = os.path.join(self.dirs.consumption_dir, "my_file.pdf") + fname = Path(os.path.join(self.dirs.consumption_dir, "my_file.~df")) + fname2 = Path(os.path.join(self.dirs.consumption_dir, "my_file.pdf")) self.slow_write_file(fname) shutil.move(fname, fname2) self.wait_for_task_mock_call() - self.task_mock.assert_called_once() + self.consume_file_mock.assert_called_once() - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], fname2) + input_doc, _ = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, fname2) error_logger.assert_not_called() @mock.patch("documents.management.commands.document_consumer.logger.error") def test_slow_write_incomplete(self, error_logger): - self.task_mock.side_effect = self.bogus_task + self.consume_file_mock.side_effect = self.bogus_task self.t_start() - fname = os.path.join(self.dirs.consumption_dir, "my_file.pdf") + fname = Path(os.path.join(self.dirs.consumption_dir, "my_file.pdf")) self.slow_write_file(fname, incomplete=True) self.wait_for_task_mock_call() - self.task_mock.assert_called_once() - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], fname) + self.consume_file_mock.assert_called_once() + + input_doc, _ = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, fname) # assert that we have an error logged with this invalid file. error_logger.assert_called_once() @@ -209,7 +223,7 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): self.assertRaises(CommandError, call_command, "document_consumer", "--oneshot") def test_mac_write(self): - self.task_mock.side_effect = self.bogus_task + self.consume_file_mock.side_effect = self.bogus_task self.t_start() @@ -238,12 +252,13 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): self.wait_for_task_mock_call(expected_call_count=2) - self.assertEqual(2, self.task_mock.call_count) + self.assertEqual(2, self.consume_file_mock.call_count) - fnames = [ - os.path.basename(args[0]) for args, _ in self.task_mock.call_args_list - ] - self.assertCountEqual(fnames, ["my_file.pdf", "my_second_file.pdf"]) + consumed_files = [] + for input_doc, _ in self.get_all_consume_delay_call_args(): + consumed_files.append(input_doc.original_file.name) + + self.assertCountEqual(consumed_files, ["my_file.pdf", "my_second_file.pdf"]) def test_is_ignored(self): test_paths = [ @@ -341,7 +356,7 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase): self.wait_for_task_mock_call() - self.task_mock.assert_not_called() + self.consume_file_mock.assert_not_called() @override_settings( @@ -373,7 +388,7 @@ class TestConsumerRecursivePolling(TestConsumer): pass -class TestConsumerTags(DirectoriesMixin, ConsumerMixin, TransactionTestCase): +class TestConsumerTags(DirectoriesMixin, ConsumerThreadMixin, TransactionTestCase): @override_settings(CONSUMER_RECURSIVE=True, CONSUMER_SUBDIRS_AS_TAGS=True) def test_consume_file_with_path_tags(self): @@ -387,7 +402,7 @@ class TestConsumerTags(DirectoriesMixin, ConsumerMixin, TransactionTestCase): path = os.path.join(self.dirs.consumption_dir, *tag_names) os.makedirs(path, exist_ok=True) - f = os.path.join(path, "my_file.pdf") + f = Path(os.path.join(path, "my_file.pdf")) # Wait at least inotify read_delay for recursive watchers # to be created for the new directories sleep(1) @@ -395,18 +410,19 @@ class TestConsumerTags(DirectoriesMixin, ConsumerMixin, TransactionTestCase): self.wait_for_task_mock_call() - self.task_mock.assert_called_once() + self.consume_file_mock.assert_called_once() # Add the pk of the Tag created by _consume() tag_ids.append(Tag.objects.get(name=tag_names[1]).pk) - args, kwargs = self.task_mock.call_args - self.assertEqual(args[0], f) + input_doc, overrides = self.get_last_consume_delay_call_args() + + self.assertEqual(input_doc.original_file, f) # assertCountEqual has a bad name, but test that the first # sequence contains the same elements as second, regardless of # their order. - self.assertCountEqual(kwargs["override_tag_ids"], tag_ids) + self.assertCountEqual(overrides.tag_ids, tag_ids) @override_settings( CONSUMER_POLLING=1, diff --git a/src/documents/tests/test_management_exporter.py b/src/documents/tests/test_management_exporter.py index 0d815a602..05b6db5b3 100644 --- a/src/documents/tests/test_management_exporter.py +++ b/src/documents/tests/test_management_exporter.py @@ -13,20 +13,21 @@ from django.test import override_settings from django.test import TestCase from django.utils import timezone from documents.management.commands import document_exporter -from documents.models import Comment from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType +from documents.models import Note from documents.models import StoragePath from documents.models import Tag from documents.models import User from documents.sanity_checker import check_sanity from documents.settings import EXPORTER_FILE_NAME from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import paperless_environment -class TestExportImport(DirectoriesMixin, TestCase): +class TestExportImport(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def setUp(self) -> None: self.target = tempfile.mkdtemp() self.addCleanup(shutil.rmtree, self.target) @@ -65,8 +66,8 @@ class TestExportImport(DirectoriesMixin, TestCase): storage_type=Document.STORAGE_TYPE_GPG, ) - self.comment = Comment.objects.create( - comment="This is a comment. amaze.", + self.note = Note.objects.create( + note="This is a note. amaze.", document=self.d1, user=self.user, ) @@ -139,13 +140,13 @@ class TestExportImport(DirectoriesMixin, TestCase): manifest = self._do_export(use_filename_format=use_filename_format) - self.assertEqual(len(manifest), 11) + self.assertEqual(len(manifest), 12) self.assertEqual( len(list(filter(lambda e: e["model"] == "documents.document", manifest))), 4, ) - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) self.assertEqual( self._get_document_from_manifest(manifest, self.d1.id)["fields"]["title"], @@ -170,13 +171,11 @@ class TestExportImport(DirectoriesMixin, TestCase): self.target, element[document_exporter.EXPORTER_FILE_NAME], ) - self.assertTrue(os.path.exists(fname)) - self.assertTrue( - os.path.exists( - os.path.join( - self.target, - element[document_exporter.EXPORTER_THUMBNAIL_NAME], - ), + self.assertIsFile(fname) + self.assertIsFile( + os.path.join( + self.target, + element[document_exporter.EXPORTER_THUMBNAIL_NAME], ), ) @@ -194,18 +193,18 @@ class TestExportImport(DirectoriesMixin, TestCase): self.target, element[document_exporter.EXPORTER_ARCHIVE_NAME], ) - self.assertTrue(os.path.exists(fname)) + self.assertIsFile(fname) with open(fname, "rb") as f: checksum = hashlib.md5(f.read()).hexdigest() self.assertEqual(checksum, element["fields"]["archive_checksum"]) - elif element["model"] == "documents.comment": - self.assertEqual(element["fields"]["comment"], self.comment.comment) + elif element["model"] == "documents.note": + self.assertEqual(element["fields"]["note"], self.note.note) self.assertEqual(element["fields"]["document"], self.d1.id) self.assertEqual(element["fields"]["user"], self.user.id) - with paperless_environment() as dirs: + with paperless_environment(): self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() Correspondent.objects.all().delete() @@ -247,7 +246,7 @@ class TestExportImport(DirectoriesMixin, TestCase): ) self._do_export() - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) st_mtime_1 = os.stat(os.path.join(self.target, "manifest.json")).st_mtime @@ -257,7 +256,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self._do_export() m.assert_not_called() - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) st_mtime_2 = os.stat(os.path.join(self.target, "manifest.json")).st_mtime Path(self.d1.source_path).touch() @@ -269,7 +268,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self.assertEqual(m.call_count, 1) st_mtime_3 = os.stat(os.path.join(self.target, "manifest.json")).st_mtime - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) self.assertNotEqual(st_mtime_1, st_mtime_2) self.assertNotEqual(st_mtime_2, st_mtime_3) @@ -283,7 +282,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self._do_export() - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) with mock.patch( "documents.management.commands.document_exporter.shutil.copy2", @@ -291,7 +290,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self._do_export() m.assert_not_called() - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) self.d2.checksum = "asdfasdgf3" self.d2.save() @@ -302,7 +301,7 @@ class TestExportImport(DirectoriesMixin, TestCase): self._do_export(compare_checksums=True) self.assertEqual(m.call_count, 1) - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) def test_update_export_deleted_document(self): shutil.rmtree(os.path.join(self.dirs.media_dir, "documents")) @@ -315,10 +314,8 @@ class TestExportImport(DirectoriesMixin, TestCase): self.assertTrue(len(manifest), 7) doc_from_manifest = self._get_document_from_manifest(manifest, self.d3.id) - self.assertTrue( - os.path.isfile( - os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), - ), + self.assertIsFile( + os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), ) self.d3.delete() @@ -329,17 +326,13 @@ class TestExportImport(DirectoriesMixin, TestCase): manifest, self.d3.id, ) - self.assertTrue( - os.path.isfile( - os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), - ), + self.assertIsFile( + os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), ) manifest = self._do_export(delete=True) - self.assertFalse( - os.path.isfile( - os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), - ), + self.assertIsNotFile( + os.path.join(self.target, doc_from_manifest[EXPORTER_FILE_NAME]), ) self.assertTrue(len(manifest), 6) @@ -352,21 +345,21 @@ class TestExportImport(DirectoriesMixin, TestCase): os.path.join(self.dirs.media_dir, "documents"), ) - m = self._do_export(use_filename_format=True) - self.assertTrue(os.path.isfile(os.path.join(self.target, "wow1", "c.pdf"))) + self._do_export(use_filename_format=True) + self.assertIsFile(os.path.join(self.target, "wow1", "c.pdf")) - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) + self.assertIsFile(os.path.join(self.target, "manifest.json")) self.d1.title = "new_title" self.d1.save() self._do_export(use_filename_format=True, delete=True) - self.assertFalse(os.path.isfile(os.path.join(self.target, "wow1", "c.pdf"))) - self.assertFalse(os.path.isdir(os.path.join(self.target, "wow1"))) - self.assertTrue(os.path.isfile(os.path.join(self.target, "new_title", "c.pdf"))) - self.assertTrue(os.path.exists(os.path.join(self.target, "manifest.json"))) - self.assertTrue(os.path.isfile(os.path.join(self.target, "wow2", "none.pdf"))) - self.assertTrue( - os.path.isfile(os.path.join(self.target, "wow2", "none_01.pdf")), + self.assertIsNotFile(os.path.join(self.target, "wow1", "c.pdf")) + self.assertIsNotDir(os.path.join(self.target, "wow1")) + self.assertIsFile(os.path.join(self.target, "new_title", "c.pdf")) + self.assertIsFile(os.path.join(self.target, "manifest.json")) + self.assertIsFile(os.path.join(self.target, "wow2", "none.pdf")) + self.assertIsFile( + os.path.join(self.target, "wow2", "none_01.pdf"), ) def test_export_missing_files(self): @@ -407,7 +400,7 @@ class TestExportImport(DirectoriesMixin, TestCase): f"export-{timezone.localdate().isoformat()}.zip", ) - self.assertTrue(os.path.isfile(expected_file)) + self.assertIsFile(expected_file) with ZipFile(expected_file) as zip: self.assertEqual(len(zip.namelist()), 11) @@ -444,7 +437,7 @@ class TestExportImport(DirectoriesMixin, TestCase): f"export-{timezone.localdate().isoformat()}.zip", ) - self.assertTrue(os.path.isfile(expected_file)) + self.assertIsFile(expected_file) with ZipFile(expected_file) as zip: # Extras are from the directories, which also appear in the listing @@ -544,7 +537,7 @@ class TestExportImport(DirectoriesMixin, TestCase): ) self.assertFalse(has_archive) - with paperless_environment() as dirs: + with paperless_environment(): self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) @@ -587,7 +580,7 @@ class TestExportImport(DirectoriesMixin, TestCase): ) self.assertFalse(has_thumbnail) - with paperless_environment() as dirs: + with paperless_environment(): self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) @@ -616,7 +609,7 @@ class TestExportImport(DirectoriesMixin, TestCase): has_document = has_document or element["model"] == "documents.document" self.assertFalse(has_document) - with paperless_environment() as dirs: + with paperless_environment(): self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) @@ -638,9 +631,9 @@ class TestExportImport(DirectoriesMixin, TestCase): os.path.join(self.dirs.media_dir, "documents"), ) - manifest = self._do_export(use_folder_prefix=True) + self._do_export(use_folder_prefix=True) - with paperless_environment() as dirs: + with paperless_environment(): self.assertEqual(Document.objects.count(), 4) Document.objects.all().delete() self.assertEqual(Document.objects.count(), 0) diff --git a/src/documents/tests/test_management_superuser.py b/src/documents/tests/test_management_superuser.py index d5fa86ce3..b79a9f9a6 100644 --- a/src/documents/tests/test_management_superuser.py +++ b/src/documents/tests/test_management_superuser.py @@ -31,8 +31,8 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): out = self.call_command(environ={}) # just the consumer user which is created - # during migration - self.assertEqual(User.objects.count(), 1) + # during migration, and AnonymousUser + self.assertEqual(User.objects.count(), 2) self.assertTrue(User.objects.filter(username="consumer").exists()) self.assertEqual(User.objects.filter(is_superuser=True).count(), 0) self.assertEqual( @@ -50,10 +50,10 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) - # count is 2 as there's the consumer - # user already created during migration + # count is 3 as there's the consumer + # user already created during migration, and AnonymousUser user: User = User.objects.get_by_natural_key("admin") - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) self.assertTrue(user.is_superuser) self.assertEqual(user.email, "root@localhost") self.assertEqual(out, 'Created superuser "admin" with provided password.\n') @@ -70,7 +70,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) with self.assertRaises(User.DoesNotExist): User.objects.get_by_natural_key("admin") self.assertEqual( @@ -91,7 +91,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) user: User = User.objects.get_by_natural_key("admin") self.assertTrue(user.check_password("password")) self.assertEqual(out, "Did not create superuser, a user admin already exists\n") @@ -110,7 +110,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): out = self.call_command(environ={"PAPERLESS_ADMIN_PASSWORD": "123456"}) - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) user: User = User.objects.get_by_natural_key("admin") self.assertTrue(user.check_password("password")) self.assertFalse(user.is_superuser) @@ -149,7 +149,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): ) user: User = User.objects.get_by_natural_key("admin") - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) self.assertTrue(user.is_superuser) self.assertEqual(user.email, "hello@world.com") self.assertEqual(user.username, "admin") @@ -173,7 +173,7 @@ class TestManageSuperUser(DirectoriesMixin, TestCase): ) user: User = User.objects.get_by_natural_key("super") - self.assertEqual(User.objects.count(), 2) + self.assertEqual(User.objects.count(), 3) self.assertTrue(user.is_superuser) self.assertEqual(user.email, "hello@world.com") self.assertEqual(user.username, "super") diff --git a/src/documents/tests/test_management_thumbnails.py b/src/documents/tests/test_management_thumbnails.py index 48821725b..0767e4e37 100644 --- a/src/documents/tests/test_management_thumbnails.py +++ b/src/documents/tests/test_management_thumbnails.py @@ -7,9 +7,10 @@ from django.test import TestCase from documents.management.commands.document_thumbnails import _process_document from documents.models import Document from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin -class TestMakeThumbnails(DirectoriesMixin, TestCase): +class TestMakeThumbnails(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def make_models(self): self.d1 = Document.objects.create( checksum="A", @@ -40,9 +41,9 @@ class TestMakeThumbnails(DirectoriesMixin, TestCase): self.make_models() def test_process_document(self): - self.assertFalse(os.path.isfile(self.d1.thumbnail_path)) + self.assertIsNotFile(self.d1.thumbnail_path) _process_document(self.d1.id) - self.assertTrue(os.path.isfile(self.d1.thumbnail_path)) + self.assertIsFile(self.d1.thumbnail_path) @mock.patch("documents.management.commands.document_thumbnails.shutil.move") def test_process_document_invalid_mime_type(self, m): @@ -54,15 +55,15 @@ class TestMakeThumbnails(DirectoriesMixin, TestCase): m.assert_not_called() def test_command(self): - self.assertFalse(os.path.isfile(self.d1.thumbnail_path)) - self.assertFalse(os.path.isfile(self.d2.thumbnail_path)) + self.assertIsNotFile(self.d1.thumbnail_path) + self.assertIsNotFile(self.d2.thumbnail_path) call_command("document_thumbnails") - self.assertTrue(os.path.isfile(self.d1.thumbnail_path)) - self.assertTrue(os.path.isfile(self.d2.thumbnail_path)) + self.assertIsFile(self.d1.thumbnail_path) + self.assertIsFile(self.d2.thumbnail_path) def test_command_documentid(self): - self.assertFalse(os.path.isfile(self.d1.thumbnail_path)) - self.assertFalse(os.path.isfile(self.d2.thumbnail_path)) + self.assertIsNotFile(self.d1.thumbnail_path) + self.assertIsNotFile(self.d2.thumbnail_path) call_command("document_thumbnails", "-d", f"{self.d1.id}") - self.assertTrue(os.path.isfile(self.d1.thumbnail_path)) - self.assertFalse(os.path.isfile(self.d2.thumbnail_path)) + self.assertIsFile(self.d1.thumbnail_path) + self.assertIsNotFile(self.d2.thumbnail_path) diff --git a/src/documents/tests/test_matchables.py b/src/documents/tests/test_matchables.py index 8dc629b0b..56d47ee46 100644 --- a/src/documents/tests/test_matchables.py +++ b/src/documents/tests/test_matchables.py @@ -8,12 +8,12 @@ from django.contrib.auth.models import User from django.test import override_settings from django.test import TestCase -from .. import matching -from ..models import Correspondent -from ..models import Document -from ..models import DocumentType -from ..models import Tag -from ..signals import document_consumption_finished +from documents import matching +from documents.models import Correspondent +from documents.models import Document +from documents.models import DocumentType +from documents.models import Tag +from documents.signals import document_consumption_finished class _TestMatchingBase(TestCase): @@ -47,6 +47,18 @@ class _TestMatchingBase(TestCase): class TestMatching(_TestMatchingBase): + def test_match_none(self): + + self._test_matching( + "", + "MATCH_NONE", + (), + ( + "no", + "match", + ), + ) + def test_match_all(self): self._test_matching( diff --git a/src/documents/tests/test_migration_archive_files.py b/src/documents/tests/test_migration_archive_files.py index fb9b9e1e3..32929d92c 100644 --- a/src/documents/tests/test_migration_archive_files.py +++ b/src/documents/tests/test_migration_archive_files.py @@ -8,6 +8,7 @@ from django.conf import settings from django.test import override_settings from documents.parsers import ParseError from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import TestMigrations @@ -112,7 +113,7 @@ simple_png2 = os.path.join(os.path.dirname(__file__), "examples", "no-text.png") @override_settings(FILENAME_FORMAT="") -class TestMigrateArchiveFiles(DirectoriesMixin, TestMigrations): +class TestMigrateArchiveFiles(DirectoriesMixin, FileSystemAssertsMixin, TestMigrations): migrate_from = "1011_auto_20210101_2340" migrate_to = "1012_fix_archive_files" @@ -189,7 +190,7 @@ class TestMigrateArchiveFiles(DirectoriesMixin, TestMigrations): for doc in Document.objects.all(): if doc.archive_checksum: self.assertIsNotNone(doc.archive_filename) - self.assertTrue(os.path.isfile(archive_path_new(doc))) + self.assertIsFile(archive_path_new(doc)) else: self.assertIsNone(doc.archive_filename) @@ -198,7 +199,7 @@ class TestMigrateArchiveFiles(DirectoriesMixin, TestMigrations): self.assertEqual(original_checksum, doc.checksum) if doc.archive_checksum: - self.assertTrue(os.path.isfile(archive_path_new(doc))) + self.assertIsFile(archive_path_new(doc)) with open(archive_path_new(doc), "rb") as f: archive_checksum = hashlib.md5(f.read()).hexdigest() self.assertEqual(archive_checksum, doc.archive_checksum) @@ -309,7 +310,7 @@ class TestMigrateArchiveFilesErrors(DirectoriesMixin, TestMigrations): def test_parser_missing(self): Document = self.apps.get_model("documents", "Document") - doc1 = make_test_document( + make_test_document( Document, "document", "invalid/typesss768", @@ -317,7 +318,7 @@ class TestMigrateArchiveFilesErrors(DirectoriesMixin, TestMigrations): "document.png", simple_pdf, ) - doc2 = make_test_document( + make_test_document( Document, "document", "invalid/typesss768", @@ -448,7 +449,11 @@ class TestMigrateArchiveFilesErrors(DirectoriesMixin, TestMigrations): @override_settings(FILENAME_FORMAT="") -class TestMigrateArchiveFilesBackwards(DirectoriesMixin, TestMigrations): +class TestMigrateArchiveFilesBackwards( + DirectoriesMixin, + FileSystemAssertsMixin, + TestMigrations, +): migrate_from = "1012_fix_archive_files" migrate_to = "1011_auto_20210101_2340" @@ -457,7 +462,7 @@ class TestMigrateArchiveFilesBackwards(DirectoriesMixin, TestMigrations): Document = apps.get_model("documents", "Document") - doc_unrelated = make_test_document( + make_test_document( Document, "unrelated", "application/pdf", @@ -466,14 +471,14 @@ class TestMigrateArchiveFilesBackwards(DirectoriesMixin, TestMigrations): simple_pdf2, "unrelated.pdf", ) - doc_no_archive = make_test_document( + make_test_document( Document, "no_archive", "text/plain", simple_txt, "no_archive.txt", ) - clashB = make_test_document( + make_test_document( Document, "clash", "image/jpeg", @@ -488,13 +493,13 @@ class TestMigrateArchiveFilesBackwards(DirectoriesMixin, TestMigrations): for doc in Document.objects.all(): if doc.archive_checksum: - self.assertTrue(os.path.isfile(archive_path_old(doc))) + self.assertIsFile(archive_path_old(doc)) with open(source_path(doc), "rb") as f: original_checksum = hashlib.md5(f.read()).hexdigest() self.assertEqual(original_checksum, doc.checksum) if doc.archive_checksum: - self.assertTrue(os.path.isfile(archive_path_old(doc))) + self.assertIsFile(archive_path_old(doc)) with open(archive_path_old(doc), "rb") as f: archive_checksum = hashlib.md5(f.read()).hexdigest() self.assertEqual(archive_checksum, doc.archive_checksum) diff --git a/src/documents/tests/test_models.py b/src/documents/tests/test_models.py index d230511ff..ee882dd84 100644 --- a/src/documents/tests/test_models.py +++ b/src/documents/tests/test_models.py @@ -1,14 +1,14 @@ from django.test import TestCase -from ..models import Correspondent -from ..models import Document +from documents.models import Correspondent +from documents.models import Document from .factories import CorrespondentFactory from .factories import DocumentFactory class CorrespondentTestCase(TestCase): def test___str__(self): - for s in ("test", "οχι", "test with fun_charÅc'\"terß"): + for s in ("test", "oχi", "test with fun_charÅc'\"terß"): correspondent = CorrespondentFactory.create(name=s) self.assertEqual(str(correspondent), s) diff --git a/src/documents/tests/test_parsers.py b/src/documents/tests/test_parsers.py index eda4bacf8..7ec06d1a0 100644 --- a/src/documents/tests/test_parsers.py +++ b/src/documents/tests/test_parsers.py @@ -94,7 +94,7 @@ class TestParserDiscovery(TestCase): - No parser class is returned """ m.return_value = [] - with TemporaryDirectory() as tmpdir: + with TemporaryDirectory(): self.assertIsNone(get_parser_class_for_mime_type("application/pdf")) @mock.patch("documents.parsers.document_consumer_declaration.send") diff --git a/src/documents/tests/test_sanity_check.py b/src/documents/tests/test_sanity_check.py index 9bb424cbc..5fb4adfcc 100644 --- a/src/documents/tests/test_sanity_check.py +++ b/src/documents/tests/test_sanity_check.py @@ -149,7 +149,7 @@ class TestSanityCheck(DirectoriesMixin, TestCase): ) def test_orphaned_file(self): - doc = self.make_test_data() + self.make_test_data() Path(self.dirs.originals_dir, "orphaned").touch() messages = check_sanity() self.assertTrue(messages.has_warning) diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index e21879802..d63df0b3c 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -1,76 +1,21 @@ +import uuid +from unittest import mock + import celery from django.test import TestCase +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentSource from documents.models import PaperlessTask from documents.signals.handlers import before_task_publish_handler from documents.signals.handlers import task_postrun_handler from documents.signals.handlers import task_prerun_handler +from documents.signals.handlers import task_failure_handler +from documents.tests.test_consumer import fake_magic_from_file from documents.tests.utils import DirectoriesMixin +@mock.patch("documents.consumer.magic.from_file", fake_magic_from_file) class TestTaskSignalHandler(DirectoriesMixin, TestCase): - - HEADERS_CONSUME = { - "lang": "py", - "task": "documents.tasks.consume_file", - "id": "52d31e24-9dcc-4c32-9e16-76007e9add5e", - "shadow": None, - "eta": None, - "expires": None, - "group": None, - "group_index": None, - "retries": 0, - "timelimit": [None, None], - "root_id": "52d31e24-9dcc-4c32-9e16-76007e9add5e", - "parent_id": None, - "argsrepr": "('/consume/hello-999.pdf',)", - "kwargsrepr": "{'override_tag_ids': None}", - "origin": "gen260@paperless-ngx-dev-webserver", - "ignore_result": False, - } - - BODY_CONSUME = ( - # args - ("/consume/hello-999.pdf",), - # kwargs - {"override_tag_ids": None}, - {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, - ) - - HEADERS_WEB_UI = { - "lang": "py", - "task": "documents.tasks.consume_file", - "id": "6e88a41c-e5f8-4631-9972-68c314512498", - "shadow": None, - "eta": None, - "expires": None, - "group": None, - "group_index": None, - "retries": 0, - "timelimit": [None, None], - "root_id": "6e88a41c-e5f8-4631-9972-68c314512498", - "parent_id": None, - "argsrepr": "('/tmp/paperless/paperless-upload-st9lmbvx',)", - "kwargsrepr": "{'override_filename': 'statement.pdf', 'override_title': None, 'override_correspondent_id': None, 'override_document_type_id': None, 'override_tag_ids': None, 'task_id': 'f5622ca9-3707-4ed0-b418-9680b912572f', 'override_created': None}", - "origin": "gen342@paperless-ngx-dev-webserver", - "ignore_result": False, - } - - BODY_WEB_UI = ( - # args - ("/tmp/paperless/paperless-upload-st9lmbvx",), - # kwargs - { - "override_filename": "statement.pdf", - "override_title": None, - "override_correspondent_id": None, - "override_document_type_id": None, - "override_tag_ids": None, - "task_id": "f5622ca9-3707-4ed0-b418-9680b912572f", - "override_created": None, - }, - {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, - ) - def util_call_before_task_publish_handler(self, headers_to_use, body_to_use): """ Simple utility to call the pre-run handle and ensure it created a single task @@ -91,41 +36,36 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): THEN: - The task is created and marked as pending """ + headers = { + "id": str(uuid.uuid4()), + "task": "documents.tasks.consume_file", + } + body = ( + # args + ( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file="/consume/hello-999.pdf", + ), + None, + ), + # kwargs + {}, + # celery stuff + {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, + ) self.util_call_before_task_publish_handler( - headers_to_use=self.HEADERS_CONSUME, - body_to_use=self.BODY_CONSUME, + headers_to_use=headers, + body_to_use=body, ) task = PaperlessTask.objects.get() self.assertIsNotNone(task) - self.assertEqual(self.HEADERS_CONSUME["id"], task.task_id) + self.assertEqual(headers["id"], task.task_id) self.assertEqual("hello-999.pdf", task.task_file_name) self.assertEqual("documents.tasks.consume_file", task.task_name) self.assertEqual(celery.states.PENDING, task.status) - def test_before_task_publish_handler_webui(self): - """ - GIVEN: - - A celery task is started via the web ui - WHEN: - - Task before publish handler is called - THEN: - - The task is created and marked as pending - """ - self.util_call_before_task_publish_handler( - headers_to_use=self.HEADERS_WEB_UI, - body_to_use=self.BODY_WEB_UI, - ) - - task = PaperlessTask.objects.get() - - self.assertIsNotNone(task) - - self.assertEqual(self.HEADERS_WEB_UI["id"], task.task_id) - self.assertEqual("statement.pdf", task.task_file_name) - self.assertEqual("documents.tasks.consume_file", task.task_name) - self.assertEqual(celery.states.PENDING, task.status) - def test_task_prerun_handler(self): """ GIVEN: @@ -135,12 +75,32 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): THEN: - The task is marked as started """ - self.util_call_before_task_publish_handler( - headers_to_use=self.HEADERS_CONSUME, - body_to_use=self.BODY_CONSUME, + + headers = { + "id": str(uuid.uuid4()), + "task": "documents.tasks.consume_file", + } + body = ( + # args + ( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file="/consume/hello-99.pdf", + ), + None, + ), + # kwargs + {}, + # celery stuff + {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, ) - task_prerun_handler(task_id=self.HEADERS_CONSUME["id"]) + self.util_call_before_task_publish_handler( + headers_to_use=headers, + body_to_use=body, + ) + + task_prerun_handler(task_id=headers["id"]) task = PaperlessTask.objects.get() @@ -155,13 +115,31 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): THEN: - The task is marked as started """ + headers = { + "id": str(uuid.uuid4()), + "task": "documents.tasks.consume_file", + } + body = ( + # args + ( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file="/consume/hello-9.pdf", + ), + None, + ), + # kwargs + {}, + # celery stuff + {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, + ) self.util_call_before_task_publish_handler( - headers_to_use=self.HEADERS_CONSUME, - body_to_use=self.BODY_CONSUME, + headers_to_use=headers, + body_to_use=body, ) task_postrun_handler( - task_id=self.HEADERS_CONSUME["id"], + task_id=headers["id"], retval="Success. New document id 1 created", state=celery.states.SUCCESS, ) @@ -169,3 +147,44 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase): task = PaperlessTask.objects.get() self.assertEqual(celery.states.SUCCESS, task.status) + + def test_task_failure_handler(self): + """ + GIVEN: + - A celery task is started via the consume folder + WHEN: + - Task failed execution + THEN: + - The task is marked as failed + """ + headers = { + "id": str(uuid.uuid4()), + "task": "documents.tasks.consume_file", + } + body = ( + # args + ( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file="/consume/hello-9.pdf", + ), + None, + ), + # kwargs + {}, + # celery stuff + {"callbacks": None, "errbacks": None, "chain": None, "chord": None}, + ) + self.util_call_before_task_publish_handler( + headers_to_use=headers, + body_to_use=body, + ) + + task_failure_handler( + task_id=headers["id"], + exception="Example failure", + ) + + task = PaperlessTask.objects.get() + + self.assertEqual(celery.states.FAILURE, task.status) diff --git a/src/documents/tests/test_tasks.py b/src/documents/tests/test_tasks.py index 8b104ab1d..2d27f93ec 100644 --- a/src/documents/tests/test_tasks.py +++ b/src/documents/tests/test_tasks.py @@ -13,6 +13,7 @@ from documents.sanity_checker import SanityCheckFailedException from documents.sanity_checker import SanityCheckMessages from documents.tests.test_classifier import dummy_preprocess from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin class TestIndexReindex(DirectoriesMixin, TestCase): @@ -41,7 +42,7 @@ class TestIndexReindex(DirectoriesMixin, TestCase): tasks.index_optimize() -class TestClassifier(DirectoriesMixin, TestCase): +class TestClassifier(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @mock.patch("documents.tasks.load_classifier") def test_train_classifier_no_auto_matching(self, load_classifier): tasks.train_classifier() @@ -53,7 +54,7 @@ class TestClassifier(DirectoriesMixin, TestCase): Tag.objects.create(matching_algorithm=Tag.MATCH_AUTO, name="test") tasks.train_classifier() load_classifier.assert_called_once() - self.assertFalse(os.path.isfile(settings.MODEL_FILE)) + self.assertIsNotFile(settings.MODEL_FILE) @mock.patch("documents.tasks.load_classifier") def test_train_classifier_with_auto_type(self, load_classifier): @@ -61,7 +62,7 @@ class TestClassifier(DirectoriesMixin, TestCase): DocumentType.objects.create(matching_algorithm=Tag.MATCH_AUTO, name="test") tasks.train_classifier() load_classifier.assert_called_once() - self.assertFalse(os.path.isfile(settings.MODEL_FILE)) + self.assertIsNotFile(settings.MODEL_FILE) @mock.patch("documents.tasks.load_classifier") def test_train_classifier_with_auto_correspondent(self, load_classifier): @@ -69,12 +70,12 @@ class TestClassifier(DirectoriesMixin, TestCase): Correspondent.objects.create(matching_algorithm=Tag.MATCH_AUTO, name="test") tasks.train_classifier() load_classifier.assert_called_once() - self.assertFalse(os.path.isfile(settings.MODEL_FILE)) + self.assertIsNotFile(settings.MODEL_FILE) def test_train_classifier(self): c = Correspondent.objects.create(matching_algorithm=Tag.MATCH_AUTO, name="test") doc = Document.objects.create(correspondent=c, content="test", title="test") - self.assertFalse(os.path.isfile(settings.MODEL_FILE)) + self.assertIsNotFile(settings.MODEL_FILE) with mock.patch( "documents.classifier.DocumentClassifier.preprocess_content", @@ -82,18 +83,18 @@ class TestClassifier(DirectoriesMixin, TestCase): pre_proc_mock.side_effect = dummy_preprocess tasks.train_classifier() - self.assertTrue(os.path.isfile(settings.MODEL_FILE)) + self.assertIsFile(settings.MODEL_FILE) mtime = os.stat(settings.MODEL_FILE).st_mtime tasks.train_classifier() - self.assertTrue(os.path.isfile(settings.MODEL_FILE)) + self.assertIsFile(settings.MODEL_FILE) mtime2 = os.stat(settings.MODEL_FILE).st_mtime self.assertEqual(mtime, mtime2) doc.content = "test2" doc.save() tasks.train_classifier() - self.assertTrue(os.path.isfile(settings.MODEL_FILE)) + self.assertIsFile(settings.MODEL_FILE) mtime3 = os.stat(settings.MODEL_FILE).st_mtime self.assertNotEqual(mtime2, mtime3) diff --git a/src/documents/tests/test_views.py b/src/documents/tests/test_views.py index 19ce82e49..a8c6a67da 100644 --- a/src/documents/tests/test_views.py +++ b/src/documents/tests/test_views.py @@ -5,6 +5,7 @@ from django.conf import settings from django.contrib.auth.models import User from django.test import override_settings from django.test import TestCase +from rest_framework import status class TestViews(TestCase): @@ -28,7 +29,7 @@ class TestViews(TestCase): def test_login_redirect(self): response = self.client.get("/") - self.assertEqual(response.status_code, 302) + self.assertEqual(response.status_code, status.HTTP_302_FOUND) self.assertEqual(response.url, "/accounts/login/?next=/") def test_index(self): @@ -46,13 +47,13 @@ class TestViews(TestCase): self.client.cookies.load( {settings.LANGUAGE_COOKIE_NAME: language_given}, ) - elif settings.LANGUAGE_COOKIE_NAME in self.client.cookies.keys(): + elif settings.LANGUAGE_COOKIE_NAME in self.client.cookies: self.client.cookies.pop(settings.LANGUAGE_COOKIE_NAME) response = self.client.get( "/", ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( response.context_data["webmanifest"], f"frontend/{language_actual}/manifest.webmanifest", diff --git a/src/documents/tests/utils.py b/src/documents/tests/utils.py index b2ec0d024..26760f780 100644 --- a/src/documents/tests/utils.py +++ b/src/documents/tests/utils.py @@ -1,8 +1,12 @@ -import os import shutil import tempfile from collections import namedtuple from contextlib import contextmanager +from os import PathLike +from pathlib import Path +from typing import Iterator +from typing import Tuple +from typing import Union from unittest import mock from django.apps import apps @@ -10,29 +14,30 @@ from django.db import connection from django.db.migrations.executor import MigrationExecutor from django.test import override_settings from django.test import TransactionTestCase +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentMetadataOverrides def setup_directories(): dirs = namedtuple("Dirs", ()) - dirs.data_dir = tempfile.mkdtemp() - 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") - dirs.archive_dir = os.path.join(dirs.media_dir, "documents", "archive") - dirs.logging_dir = os.path.join(dirs.data_dir, "log") + dirs.data_dir = Path(tempfile.mkdtemp()) + dirs.scratch_dir = Path(tempfile.mkdtemp()) + dirs.media_dir = Path(tempfile.mkdtemp()) + dirs.consumption_dir = Path(tempfile.mkdtemp()) + dirs.static_dir = Path(tempfile.mkdtemp()) + dirs.index_dir = dirs.data_dir / "index" + dirs.originals_dir = dirs.media_dir / "documents" / "originals" + dirs.thumbnail_dir = dirs.media_dir / "documents" / "thumbnails" + dirs.archive_dir = dirs.media_dir / "documents" / "archive" + dirs.logging_dir = dirs.data_dir / "log" - os.makedirs(dirs.index_dir, exist_ok=True) - os.makedirs(dirs.originals_dir, exist_ok=True) - os.makedirs(dirs.thumbnail_dir, exist_ok=True) - os.makedirs(dirs.archive_dir, exist_ok=True) - - os.makedirs(dirs.logging_dir, exist_ok=True) + dirs.index_dir.mkdir(parents=True, exist_ok=True) + dirs.originals_dir.mkdir(parents=True, exist_ok=True) + dirs.thumbnail_dir.mkdir(parents=True, exist_ok=True) + dirs.archive_dir.mkdir(parents=True, exist_ok=True) + dirs.logging_dir.mkdir(parents=True, exist_ok=True) dirs.settings_override = override_settings( DATA_DIR=dirs.data_dir, @@ -45,8 +50,8 @@ def setup_directories(): 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"), + MODEL_FILE=dirs.data_dir / "classification_model.pickle", + MEDIA_LOCK=dirs.media_dir / "media.lock", ) dirs.settings_override.enable() @@ -87,6 +92,20 @@ class DirectoriesMixin: remove_dirs(self.dirs) +class FileSystemAssertsMixin: + def assertIsFile(self, path: Union[PathLike, str]): + self.assertTrue(Path(path).resolve().is_file(), f"File does not exist: {path}") + + def assertIsNotFile(self, path: Union[PathLike, str]): + self.assertFalse(Path(path).resolve().is_file(), f"File does exist: {path}") + + def assertIsDir(self, path: Union[PathLike, str]): + self.assertTrue(Path(path).resolve().is_dir(), f"Dir does not exist: {path}") + + def assertIsNotDir(self, path: Union[PathLike, str]): + self.assertFalse(Path(path).resolve().is_dir(), f"Dir does exist: {path}") + + class ConsumerProgressMixin: def setUp(self) -> None: self.send_progress_patcher = mock.patch( @@ -101,6 +120,11 @@ class ConsumerProgressMixin: class DocumentConsumeDelayMixin: + """ + Provides mocking of the consume_file asynchronous task and useful utilities + for decoding its arguments + """ + def setUp(self) -> None: self.consume_file_patcher = mock.patch("documents.tasks.consume_file.delay") self.consume_file_mock = self.consume_file_patcher.start() @@ -110,6 +134,47 @@ class DocumentConsumeDelayMixin: super().tearDown() self.consume_file_patcher.stop() + def get_last_consume_delay_call_args( + self, + ) -> Tuple[ConsumableDocument, DocumentMetadataOverrides]: + """ + Returns the most recent arguments to the async task + """ + # Must be at least 1 call + self.consume_file_mock.assert_called() + + args, _ = self.consume_file_mock.call_args + input_doc, overrides = args + + return (input_doc, overrides) + + def get_all_consume_delay_call_args( + self, + ) -> Iterator[Tuple[ConsumableDocument, DocumentMetadataOverrides]]: + """ + Iterates over all calls to the async task and returns the arguments + """ + + for args, _ in self.consume_file_mock.call_args_list: + input_doc, overrides = args + + yield (input_doc, overrides) + + def get_specific_consume_delay_call_args( + self, + index: int, + ) -> Iterator[Tuple[ConsumableDocument, DocumentMetadataOverrides]]: + """ + Returns the arguments of a specific call to the async task + """ + # Must be at least 1 call + self.consume_file_mock.assert_called() + + args, _ = self.consume_file_mock.call_args_list[index] + input_doc, overrides = args + + return (input_doc, overrides) + class TestMigrations(TransactionTestCase): @property @@ -125,7 +190,7 @@ class TestMigrations(TransactionTestCase): assert ( self.migrate_from and self.migrate_to - ), "TestCase '{}' must define migrate_from and migrate_to properties".format( + ), "TestCase '{}' must define migrate_from and migrate_to properties".format( type(self).__name__, ) self.migrate_from = [(self.app, self.migrate_from)] diff --git a/src/documents/views.py b/src/documents/views.py index 6a719fe70..1edbdccc3 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -2,9 +2,9 @@ import itertools import json import logging import os +import re import tempfile import urllib -import uuid import zipfile from datetime import datetime from pathlib import Path @@ -19,7 +19,9 @@ from django.db.models import Case from django.db.models import Count from django.db.models import IntegerField from django.db.models import Max +from django.db.models import Sum from django.db.models import When +from django.db.models.functions import Length from django.db.models.functions import Lower from django.http import Http404 from django.http import HttpResponse @@ -30,6 +32,9 @@ from django.utils.translation import get_language from django.views.decorators.cache import cache_control from django.views.generic import TemplateView from django_filters.rest_framework import DjangoFilterBackend +from documents.filters import ObjectOwnedOrGrantedPermissionsFilter +from documents.permissions import PaperlessAdminPermissions +from documents.permissions import PaperlessObjectPermissions from documents.tasks import consume_file from langdetect import detect from packaging import version as packaging_version @@ -42,6 +47,7 @@ from rest_framework.exceptions import NotFound from rest_framework.filters import OrderingFilter from rest_framework.filters import SearchFilter from rest_framework.generics import GenericAPIView +from rest_framework.mixins import CreateModelMixin from rest_framework.mixins import DestroyModelMixin from rest_framework.mixins import ListModelMixin from rest_framework.mixins import RetrieveModelMixin @@ -58,6 +64,9 @@ from .bulk_download import ArchiveOnlyStrategy from .bulk_download import OriginalAndArchiveStrategy from .bulk_download import OriginalsOnlyStrategy from .classifier import load_classifier +from .data_models import ConsumableDocument +from .data_models import DocumentMetadataOverrides +from .data_models import DocumentSource from .filters import CorrespondentFilterSet from .filters import DocumentFilterSet from .filters import DocumentTypeFilterSet @@ -67,10 +76,10 @@ from .matching import match_correspondents from .matching import match_document_types from .matching import match_storage_paths from .matching import match_tags -from .models import Comment from .models import Correspondent from .models import Document from .models import DocumentType +from .models import Note from .models import PaperlessTask from .models import SavedView from .models import StoragePath @@ -137,7 +146,17 @@ class IndexView(TemplateView): return context -class CorrespondentViewSet(ModelViewSet): +class PassUserMixin(CreateModelMixin): + """ + Pass a user object to serializer + """ + + def get_serializer(self, *args, **kwargs): + kwargs.setdefault("user", self.request.user) + return super().get_serializer(*args, **kwargs) + + +class CorrespondentViewSet(ModelViewSet, PassUserMixin): model = Correspondent queryset = Correspondent.objects.annotate( @@ -147,8 +166,12 @@ class CorrespondentViewSet(ModelViewSet): serializer_class = CorrespondentSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) - filter_backends = (DjangoFilterBackend, OrderingFilter) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = ( + DjangoFilterBackend, + OrderingFilter, + ObjectOwnedOrGrantedPermissionsFilter, + ) filterset_class = CorrespondentFilterSet ordering_fields = ( "name", @@ -159,27 +182,32 @@ class CorrespondentViewSet(ModelViewSet): ) -class TagViewSet(ModelViewSet): +class TagViewSet(ModelViewSet, PassUserMixin): model = Tag queryset = Tag.objects.annotate(document_count=Count("documents")).order_by( Lower("name"), ) - def get_serializer_class(self): + def get_serializer_class(self, *args, **kwargs): + print(self.request.version) if int(self.request.version) == 1: return TagSerializerVersion1 else: return TagSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) - filter_backends = (DjangoFilterBackend, OrderingFilter) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = ( + DjangoFilterBackend, + OrderingFilter, + ObjectOwnedOrGrantedPermissionsFilter, + ) filterset_class = TagFilterSet ordering_fields = ("color", "name", "matching_algorithm", "match", "document_count") -class DocumentTypeViewSet(ModelViewSet): +class DocumentTypeViewSet(ModelViewSet, PassUserMixin): model = DocumentType queryset = DocumentType.objects.annotate( @@ -188,13 +216,18 @@ class DocumentTypeViewSet(ModelViewSet): serializer_class = DocumentTypeSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) - filter_backends = (DjangoFilterBackend, OrderingFilter) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = ( + DjangoFilterBackend, + OrderingFilter, + ObjectOwnedOrGrantedPermissionsFilter, + ) filterset_class = DocumentTypeFilterSet ordering_fields = ("name", "matching_algorithm", "match", "document_count") class DocumentViewSet( + PassUserMixin, RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, @@ -202,11 +235,16 @@ class DocumentViewSet( GenericViewSet, ): model = Document - queryset = Document.objects.all() + queryset = Document.objects.annotate(num_notes=Count("notes")) serializer_class = DocumentSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) - filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = ( + DjangoFilterBackend, + SearchFilter, + OrderingFilter, + ObjectOwnedOrGrantedPermissionsFilter, + ) filterset_class = DocumentFilterSet search_fields = ("title", "correspondent__name", "content") ordering_fields = ( @@ -218,17 +256,16 @@ class DocumentViewSet( "modified", "added", "archive_serial_number", + "num_notes", ) def get_queryset(self): - return Document.objects.distinct() + return Document.objects.distinct().annotate(num_notes=Count("notes")) def get_serializer(self, *args, **kwargs): + super().get_serializer(*args, **kwargs) fields_param = self.request.query_params.get("fields", None) - if fields_param: - fields = fields_param.split(",") - else: - fields = None + fields = fields_param.split(",") if fields_param else None truncate_content = self.request.query_params.get("truncate_content", "False") serializer_class = self.get_serializer_class() kwargs.setdefault("context", self.get_serializer_context()) @@ -277,7 +314,11 @@ class DocumentViewSet( # Firefox is not able to handle unicode characters in filename field # RFC 5987 addresses this issue # see https://datatracker.ietf.org/doc/html/rfc5987#section-4.2 - filename_normalized = normalize("NFKD", filename).encode("ascii", "ignore") + # Chromium cannot handle commas in the filename + filename_normalized = normalize("NFKD", filename.replace(",", "_")).encode( + "ascii", + "ignore", + ) filename_encoded = quote(filename) content_disposition = ( f"{disposition}; " @@ -314,7 +355,7 @@ class DocumentViewSet( try: doc = Document.objects.get(pk=pk) except Document.DoesNotExist: - raise Http404() + raise Http404 meta = { "original_checksum": doc.checksum, @@ -360,12 +401,16 @@ class DocumentViewSet( return Response( { - "correspondents": [c.id for c in match_correspondents(doc, classifier)], - "tags": [t.id for t in match_tags(doc, classifier)], - "document_types": [ - dt.id for dt in match_document_types(doc, classifier) + "correspondents": [ + c.id for c in match_correspondents(doc, classifier, request.user) + ], + "tags": [t.id for t in match_tags(doc, classifier, request.user)], + "document_types": [ + dt.id for dt in match_document_types(doc, classifier, request.user) + ], + "storage_paths": [ + dt.id for dt in match_storage_paths(doc, classifier, request.user) ], - "storage_paths": [dt.id for dt in match_storage_paths(doc, classifier)], "dates": [ date.strftime("%Y-%m-%d") for date in dates if date is not None ], @@ -378,7 +423,7 @@ class DocumentViewSet( response = self.file_response(pk, request, "inline") return response except (FileNotFoundError, Document.DoesNotExist): - raise Http404() + raise Http404 @action(methods=["get"], detail=True) @method_decorator(cache_control(public=False, max_age=315360000)) @@ -394,53 +439,53 @@ class DocumentViewSet( return HttpResponse(handle, content_type="image/webp") except (FileNotFoundError, Document.DoesNotExist): - raise Http404() + raise Http404 @action(methods=["get"], detail=True) def download(self, request, pk=None): try: return self.file_response(pk, request, "attachment") except (FileNotFoundError, Document.DoesNotExist): - raise Http404() + raise Http404 - def getComments(self, doc): + def getNotes(self, doc): return [ { "id": c.id, - "comment": c.comment, + "note": c.note, "created": c.created, "user": { "id": c.user.id, "username": c.user.username, - "firstname": c.user.first_name, - "lastname": c.user.last_name, + "first_name": c.user.first_name, + "last_name": c.user.last_name, }, } - for c in Comment.objects.filter(document=doc).order_by("-created") + for c in Note.objects.filter(document=doc).order_by("-created") ] @action(methods=["get", "post", "delete"], detail=True) - def comments(self, request, pk=None): + def notes(self, request, pk=None): try: doc = Document.objects.get(pk=pk) except Document.DoesNotExist: - raise Http404() + raise Http404 currentUser = request.user if request.method == "GET": try: - return Response(self.getComments(doc)) + return Response(self.getNotes(doc)) except Exception as e: - logger.warning(f"An error occurred retrieving comments: {str(e)}") + logger.warning(f"An error occurred retrieving notes: {str(e)}") return Response( - {"error": "Error retreiving comments, check logs for more detail."}, + {"error": "Error retreiving notes, check logs for more detail."}, ) elif request.method == "POST": try: - c = Comment.objects.create( + c = Note.objects.create( document=doc, - comment=request.data["comment"], + note=request.data["note"], user=currentUser, ) c.save() @@ -449,23 +494,23 @@ class DocumentViewSet( index.add_or_update_document(self.get_object()) - return Response(self.getComments(doc)) + return Response(self.getNotes(doc)) except Exception as e: - logger.warning(f"An error occurred saving comment: {str(e)}") + logger.warning(f"An error occurred saving note: {str(e)}") return Response( { - "error": "Error saving comment, check logs for more detail.", + "error": "Error saving note, check logs for more detail.", }, ) elif request.method == "DELETE": - comment = Comment.objects.get(id=int(request.GET.get("id"))) - comment.delete() + note = Note.objects.get(id=int(request.GET.get("id"))) + note.delete() from documents import index index.add_or_update_document(self.get_object()) - return Response(self.getComments(doc)) + return Response(self.getNotes(doc)) return Response( { @@ -474,17 +519,17 @@ class DocumentViewSet( ) -class SearchResultSerializer(DocumentSerializer): +class SearchResultSerializer(DocumentSerializer, PassUserMixin): def to_representation(self, instance): doc = Document.objects.get(id=instance["id"]) - comments = ",".join( - [str(c.comment) for c in Comment.objects.filter(document=instance["id"])], + notes = ",".join( + [str(c.note) for c in Note.objects.filter(document=instance["id"])], ) r = super().to_representation(doc) r["__search_hit__"] = { "score": instance.score, "highlights": instance.highlights("content", text=doc.content), - "comment_highlights": instance.highlights("comments", text=comments) + "note_highlights": instance.highlights("notes", text=notes) if doc else None, "rank": instance.rank, @@ -514,12 +559,18 @@ class UnifiedSearchViewSet(DocumentViewSet): if self._is_search_request(): from documents import index + if hasattr(self.request, "user"): + # pass user to query for perms + self.request.query_params._mutable = True + self.request.query_params["user"] = self.request.user.id + self.request.query_params._mutable = False + if "query" in self.request.query_params: query_class = index.DelayedFullTextQuery elif "more_like_id" in self.request.query_params: query_class = index.DelayedMoreLikeThisQuery else: - raise ValueError() + raise ValueError return query_class( self.searcher, @@ -547,18 +598,21 @@ class UnifiedSearchViewSet(DocumentViewSet): class LogViewSet(ViewSet): - permission_classes = (IsAuthenticated,) + permission_classes = (IsAuthenticated, PaperlessAdminPermissions) log_files = ["paperless", "mail"] + def get_log_filename(self, log): + return os.path.join(settings.LOGGING_DIR, f"{log}.log") + def retrieve(self, request, pk=None, *args, **kwargs): if pk not in self.log_files: - raise Http404() + raise Http404 - filename = os.path.join(settings.LOGGING_DIR, f"{pk}.log") + filename = self.get_log_filename(pk) if not os.path.isfile(filename): - raise Http404() + raise Http404 with open(filename) as f: lines = [line.rstrip() for line in f.readlines()] @@ -566,23 +620,26 @@ class LogViewSet(ViewSet): return Response(lines) def list(self, request, *args, **kwargs): - return Response(self.log_files) + exist = [ + log for log in self.log_files if os.path.isfile(self.get_log_filename(log)) + ] + return Response(exist) -class SavedViewViewSet(ModelViewSet): +class SavedViewViewSet(ModelViewSet, PassUserMixin): model = SavedView queryset = SavedView.objects.all() serializer_class = SavedViewSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) def get_queryset(self): user = self.request.user - return SavedView.objects.filter(user=user) + return SavedView.objects.filter(owner=user) def perform_create(self, serializer): - serializer.save(user=self.request.user) + serializer.save(owner=self.request.user) class BulkEditView(GenericAPIView): @@ -624,6 +681,7 @@ class PostDocumentView(GenericAPIView): tag_ids = serializer.validated_data.get("tags") title = serializer.validated_data.get("title") created = serializer.validated_data.get("created") + archive_serial_number = serializer.validated_data.get("archive_serial_number") t = int(mktime(datetime.now().timetuple())) @@ -637,17 +695,24 @@ class PostDocumentView(GenericAPIView): os.utime(temp_file_path, times=(t, t)) - task_id = str(uuid.uuid4()) + input_doc = ConsumableDocument( + source=DocumentSource.ApiUpload, + original_file=temp_file_path, + ) + input_doc_overrides = DocumentMetadataOverrides( + filename=doc_name, + title=title, + correspondent_id=correspondent_id, + document_type_id=document_type_id, + tag_ids=tag_ids, + created=created, + asn=archive_serial_number, + owner_id=request.user.id, + ) async_task = consume_file.delay( - # Paths are not JSON friendly - str(temp_file_path), - override_title=title, - override_correspondent_id=correspondent_id, - override_document_type_id=document_type_id, - override_tag_ids=tag_ids, - task_id=task_id, - override_created=created, + input_doc, + input_doc_overrides, ) return Response(async_task.id) @@ -741,17 +806,38 @@ class StatisticsView(APIView): def get(self, request, format=None): documents_total = Document.objects.all().count() - if Tag.objects.filter(is_inbox_tag=True).exists(): - documents_inbox = ( - Document.objects.filter(tags__is_inbox_tag=True).distinct().count() + + inbox_tag = Tag.objects.filter(is_inbox_tag=True) + + documents_inbox = ( + Document.objects.filter(tags__is_inbox_tag=True).distinct().count() + if inbox_tag.exists() + else None + ) + + document_file_type_counts = ( + Document.objects.values("mime_type") + .annotate(mime_type_count=Count("mime_type")) + .order_by("-mime_type_count") + if documents_total > 0 + else 0 + ) + + character_count = ( + Document.objects.annotate( + characters=Length("content"), ) - else: - documents_inbox = None + .aggregate(Sum("characters")) + .get("characters__sum") + ) return Response( { "documents_total": documents_total, "documents_inbox": documents_inbox, + "inbox_tag": inbox_tag.first().pk if inbox_tag.exists() else None, + "document_file_type_counts": document_file_type_counts, + "character_count": character_count, }, ) @@ -842,7 +928,7 @@ class RemoteVersionView(GenericAPIView): ) -class StoragePathViewSet(ModelViewSet): +class StoragePathViewSet(ModelViewSet, PassUserMixin): model = StoragePath queryset = StoragePath.objects.annotate(document_count=Count("documents")).order_by( @@ -851,7 +937,7 @@ class StoragePathViewSet(ModelViewSet): serializer_class = StoragePathSerializer pagination_class = StandardPagination - permission_classes = (IsAuthenticated,) + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) filter_backends = (DjangoFilterBackend, OrderingFilter) filterset_class = StoragePathFilterSet ordering_fields = ("name", "path", "matching_algorithm", "match", "document_count") @@ -867,9 +953,6 @@ class UiSettingsView(GenericAPIView): serializer.is_valid(raise_exception=True) user = User.objects.get(pk=request.user.id) - displayname = user.username - if user.first_name or user.last_name: - displayname = " ".join([user.first_name, user.last_name]) ui_settings = {} if hasattr(user, "ui_settings"): ui_settings = user.ui_settings.settings @@ -881,12 +964,18 @@ class UiSettingsView(GenericAPIView): ui_settings["update_checking"] = { "backend_setting": settings.ENABLE_UPDATE_CHECK, } + # strip <app_label>. + roles = map(lambda perm: re.sub(r"^\w+.", "", perm), user.get_all_permissions()) return Response( { - "user_id": user.id, - "username": user.username, - "display_name": displayname, + "user": { + "id": user.id, + "username": user.username, + "is_superuser": user.is_superuser, + "groups": user.groups.values_list("id", flat=True), + }, "settings": ui_settings, + "permissions": roles, }, ) diff --git a/src/locale/ar_AR/LC_MESSAGES/django.po b/src/locale/ar_AR/LC_MESSAGES/django.po index c442a9d78..c9350a857 100644 --- a/src/locale/ar_AR/LC_MESSAGES/django.po +++ b/src/locale/ar_AR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2023-01-02 19:42\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-07 19:40\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "المستندات" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "لا شيء" + +#: documents/models.py:37 msgid "Any word" msgstr "أي كلمة" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "كل الكلمات" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "تطابق تام" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "التعابير النظامية" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "كلمة غامضة" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "تلقائي" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "اسم" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "تطابق" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "خوارزمية مطابقة" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "غير حساس" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "مالك" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" -msgstr "مراسل" +msgstr "جهة التراسل" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" -msgstr "مراسلون" +msgstr "جهة التراسل" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "لون" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "علامة علبة الوارد" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "ضع علامة على هذه السمة كعلامة علبة الوارد: سيتم وضع علامة على جميع المستندات المستهلكة حديثا مع علامات صندوق الواردات." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "علامة" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "علامات" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "نوع المستند" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "أنواع المستندات" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "مسار" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "مسار التخزين" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "مسارات التخزين" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" -msgstr "دون تشفير" +msgstr "غير مشفرة" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "مشفر باستخدام حارس خصوصية غنو" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "عنوان" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "محتوى" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "الخام, فقط النص من المستند. يستخدم هذا الحقل أساسا للبحث." -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "MIME type" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "بصمة الملف" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "بصمة الملف للمستند الأصلي." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "بصمة الملف للربيدة" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "بصمة الملف للمستند الربيدة." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "أُنشئ" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "مُعدّل" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "نوع التخزين" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "أضيف" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "اسم الملف" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "اسم الملف الحالي في التخزين" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "اسم الربيدة" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "اسم ملف الربيدة الحالي في التخزين" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "اسم الملف الأصلي" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "اسم الملف الأصلي عند تحميله" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "الرقم التسلسلي للربيدة" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "موقع هذا المستند في ربيدة المستند الفيزيائي." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "مستند" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "المستندات" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "تصحيح الأخطاء" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "معلومات" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "تحذير" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "خطأ" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "الحرجة" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "مجموعة" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "رسالة" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "المستوى" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "سجل" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "السجلات" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "العرض المحفوظ" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "العروض المحفوظة" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "المستخدم" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "عرض على لوحة التحكم" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "عرض على الشريط الجانبي" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "فرز الحقل" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "فرز بالعكس" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "العنوان يحتوي" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "المحتوى يحتوي" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN هو" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "المراسل هو" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "نوع المستند" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "موجود في علبة الوارد" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "لديه علامة" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "لديه أي وسم" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "أنشئت قبل" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "أنشئت بعد" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "أنشئت سنة" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "أنشئت شهر" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "أنشئت يوم" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "أضيف قبل" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "أضيف بعد" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "عُدِّل قبل" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "عُدِّل بعد" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "ليس لديه علامة" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "ليس لديه ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "العنوان أو المحتوى يحتوي" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "استعلام كامل النص" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "أخرى مثلها" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "لديه علامات في" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN أكبر من" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN أقل من" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "مسار التخزين" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "نوع القاعدة" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "قيمة" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "تصفية القاعدة" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "تصفية القواعد" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "الرمز التعريفي للمهمة" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "رمز المعرف للمهمة التي كانت تعمل" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "مُعترف" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "إذا عرف على المهمة عبر الواجهة الأمامية أو API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "اسم المهمة" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "اسم ملف المهمة" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "اسم الملف الذي وكل بالمهمة" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "اسم المهمة" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "اسم المهمة التي كانت تعمل" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "مهمة قيمة المعاملات الموضعية" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "تمثيل JSON لقيمة المعاملات الموضعية المستخدمة في المهمة" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "مهمة قيمة المعامل المسمى" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "تمثيل JSON لقيمة المعاملات المسمية المستخدمة في المهمة" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "حالة المهمة" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "الحالة الراهنة للمهمة قيد العمل" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "تاريخ و وقت الإنشاء" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "حقل التاريخ والوقت عند إنشاء نتيجة المهمة في UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "تاريخ و وقت البداية" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "حقل التاريخ والوقت عند بدء المهمة في UTC" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "التاريخ و الوقت المكتمل" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "حقل التاريخ و الوقت عند اكتمال المهمة في UTC" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "نتائج البيانات" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "البيانات المستردة من قبل المهمة" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "التعليق على المستند" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "المستخدم" + +#: documents/models.py:655 msgid "comment" msgstr "تعليق" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "التعليقات" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "التعبير النظامي خاطىء: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "لون خاطئ." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "نوع الملف %(type)s غير مدعوم" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "اكتشاف متغير خاطئ." @@ -556,323 +552,363 @@ msgstr "كلمة المرور" msgid "Sign in" msgstr "تسجيل الدخول" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "لا ورقي" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "الإنجليزية (الولايات المتحدة)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "العربية" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "البيلاروسية" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "التشيكية" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "الدانماركية" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "الألمانية" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "الإنجليزية (المملكة المتحدة)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "الإسبانية" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "الفرنسية" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "الإيطالية" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "اللوكسمبرجية" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "الهولندية" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "البولندية" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "البرتغالية (البرازيل)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "البرتغالية" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "الرومانية" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "الروسية" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "السلوفانية" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "الصربية" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "السويدية" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "التركية" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "الصينية المبسطة" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx الإدارة" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "المصادقة" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "الإعدادات المتقدمة" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "تصفية" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless يقوم فقط بمعالجة البُرُد التي تتطابق جميع التصفيات المقدمة أدناه." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "الإجراء المطبق على البريد. يتم تنفيذ هذا الإجراء فقط عندما يتم إستهلاك البريد أو المرفقات من البريد." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "البيانات الوصفية" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "بريد paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "حساب البريد" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "حساب البُرُد" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "دون تشفير" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "استخدم SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "استخدم STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "خادم IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "منفذ IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "عادة ما يكون 143 للغير مشفر و اتصالات STARTTLS و 993 للاتصالات SSL." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "أمان IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "اسم المستخدم" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "كلمة المرور" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "نوع ترميز المحارف" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "قاعدة البريد" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "قواعد البريد" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "معالجة المرفقات فقط." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "معالجة البريد الكامل (مع المرفقات المضمنة في الملف) مثل .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "معالجة البريد الكامل (مع المرفقات المضمنة في الملف) مثل .eml + معالجة المرفقات كوثائق منفصلة" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "معالجة جميع الملفات، بما في ذلك المرفقات المضمنة." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "حذف" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "نقل إلى مجلد محدد" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "وضع علامة كمقروءة، لا تعالج الرسائل المقروءة" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "علم الرسالة، لا تعالج الرسائل المعلمة" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "علم الرسالة بعلامة محددة، لا تعالج الرسائل المُعلمة" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "استخدم الموضوع كعنوان" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "استخدم اسم الملف المرفق كعنوان" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "لا تعيّن مراسل" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "استخدم عنوان البريد" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "استخدم الاسم (أو عنوان البريد إذا لم يكن متاحا)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "استخدم المراسل المحدد أدناه" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "الطلب" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "الحساب" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "مجلد" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "تصفية من" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "تصفية الموضوع" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "تصفية الجسم" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "تصفية اسم الملف المرفق" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "أقصى عُمُر" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "محدد بالأيام." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "نوع المرفق" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "تتضمن المرفقات المضمنة صورا مضمنة، لذا من الأفضل دمج هذا الخِيار مع تصفية اسم الملف." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "نطاق الاستهلاك" + +#: paperless_mail/models.py:164 msgid "action" msgstr "إجراء" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "إجراء المعامل" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "تعيين العنوان من" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "تعيين هذه العلامة" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "تعيين نوع هذا المستند" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "تعيين مراسل من" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "تعيين هذا المراسل" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "المعرّف‫ الفريد (UID)" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "موضوع" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "الواردة" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "المعالجة" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "حالة" + diff --git a/src/locale/be_BY/LC_MESSAGES/django.po b/src/locale/be_BY/LC_MESSAGES/django.po index 2b12b7dfb..ab0409975 100644 --- a/src/locale/be_BY/LC_MESSAGES/django.po +++ b/src/locale/be_BY/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Belarusian\n" "Language: be_BY\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Дакументы" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Любое слова" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Усе словы" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Дакладнае супадзенне" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Рэгулярны выраз" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Невыразнае слова" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Аўтаматычна" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "назва" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "супадзенне" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "алгарытм супастаўлення" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "без уліку рэгістра" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "карэспандэнт" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "карэспандэнты" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "колер" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "гэта ўваходны тэг" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "Пазначыць гэты тэг як тэг папкі \"Уваходныя\": Усе нядаўна спажытыя дакументы будуць пазначаны тэгамі \"Уваходныя\"." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "тэг" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "тэгі" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "тып дакумента" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "тыпы дакументаў" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "шлях" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "шлях захоўвання" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "шляхі захоўвання" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Незашыфраваны" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Зашыфравана з дапамогай GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "назва" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "змест" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "Неапрацаваныя тэкставыя даныя дакумента. Гэта поле ў асноўным выкарыстоўваецца для пошуку." -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "тып MIME" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "кантрольная сума" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Кантрольная сума зыходнага дакумента." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "кантрольная сума архіва" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Кантрольная сума архіўнага дакумента." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "створаны" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "мадыфікаваны" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "тып захоўвання" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "дададзена" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "імя файла" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Цяперашняе імя файла ў сховішчы" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "імя файла архіва" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Цяперашняе імя файла архіва ў сховішчы" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "парадкавы нумар архіва" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Пазіцыя гэтага дакумента ў вашым фізічным архіве дакументаў." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "дакумент" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "дакументы" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "адладка" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "інфармацыя" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "папярэджанне" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "памылка" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "крытычны" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "група" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "паведамленне" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "узровень" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "лог" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "логі" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "захаваны выгляд" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "захаваныя выгляды" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "карыстальнік" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "паказаць на панэлі" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "паказаць у бакавой панэлі" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "поле сартавання" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "сартаваць у адваротным парадку" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "назва змяшчае" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "змест змяшчае" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "карэспандэнт" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "тып дакумента" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "ва ўваходных" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "мае тэг" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "мае любы тэг" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "створана перад" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "створана пасля" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "год стварэння" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "месяц стварэння" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "дзень стварэння" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "даданы перад" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "даданы пасля" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "зменены перад" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "зменены пасля" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "не мае тэга" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "не мае ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "назва або змест смяшчае" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "поўнатэкставы запыт" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "больш падобнага" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "мае тэгі ў" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "тып правіла" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "значэнне" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "правіла фільтрацыі" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "правілы фільтрацыі" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "карыстальнік" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Няправільны рэгулярны выраз: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Няправільны колер." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Тып файла %(type)s не падтрымліваецца" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Выяўлена няправільная зменная." @@ -556,323 +552,363 @@ msgstr "Пароль" msgid "Sign in" msgstr "Увайсці" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Англійская (ЗША)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Беларуская" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Чэшская" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Дацкая" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Нямецкая" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Англійская (Вялікабрытанія)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Іспанская" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Французская" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Італьянская" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Люксембургская" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Нідэрландская" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Польская" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Партугальская (Бразілія)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Партугальская" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Румынская" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Руская" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Славенская" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Сербская" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Шведская" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Турэцкая" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Кітайская спрошчаная" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Адміністраванне Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Аўтэнтыфікацыя" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Пашыраныя налады" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Фільтр" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless-ngx будзе апрацоўваць толькі лісты, якія адпавядаюць УСІМ фільтрам, прыведзеным ніжэй." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Метаданыя" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless-ngx пошта" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "паштовы акаўнт" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "паштовыя акаўнты" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Без шыфравання" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Выкарыстоўваць SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Выкарыстоўваць STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Сервер IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Порт IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "Звычайна гэта 143 для незашыфраваных і STARTTLS злучэнняў і 993 для злучэнняў SSL." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Бяспека IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "імя карыстальніка" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "пароль" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "кадзіроўка" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "правіла пошты" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "правілы пошты" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Апрацоўваць толькі ўкладанні." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Апрацоўваць усе файлы, уключаючы 'убудаваныя' укладанні." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Выдаліць" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Перамясціць у паказаную папку" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Пазначыць як прачытанае, не апрацоўваць прачытаныя лісты" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Пазначыць пошту, не апрацоўваць пазначаныя лісты" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Пазначце ліст указаным тэгам, не апрацоўвайце пазначаныя лісты" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Тэма ў якасці загалоўка" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Выкарыстоўваць імя ўкладзенага файла як загаловак" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Не прызначаць карэспандэнта" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Выкарыстоўваць email адрас" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Выкарыстоўваць імя (або адрас электроннай пошты, калі недаступна)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Выкарыстоўваць карэспандэнта, абранага ніжэй" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "парадак" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "ўліковы запіс" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "каталог" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "фільтр па адпраўніку" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "фільтр па тэме" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "фільтр па тэксце паведамлення" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "фільтр па імені ўкладання" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "максімальны ўзрост" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Указваецца ў днях." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "тып укладання" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "Убудаваныя ўкладанні ўключаюць убудаваныя выявы, таму лепш камбінаваць гэты варыянт з фільтрам імёнаў файла." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "дзеянне" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "параметр дзеяння" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "прызначыць загаловак з" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "прызначыць гэты тэг" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "прызначыць гэты тып дакумента" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "прызначыць карэспандэнта з" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "прызначыць гэтага карэспандэнта" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/ca_ES/LC_MESSAGES/django.po b/src/locale/ca_ES/LC_MESSAGES/django.po new file mode 100644 index 000000000..1b7174b34 --- /dev/null +++ b/src/locale/ca_ES/LC_MESSAGES/django.po @@ -0,0 +1,914 @@ +msgid "" +msgstr "" +"Project-Id-Version: paperless-ngx\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-21 14:51\n" +"Last-Translator: \n" +"Language-Team: Catalan\n" +"Language: ca_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Crowdin-Project: paperless-ngx\n" +"X-Crowdin-Project-ID: 500308\n" +"X-Crowdin-Language: ca\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" + +#: documents/models.py:36 +msgid "None" +msgstr "Cap" + +#: documents/models.py:37 +msgid "Any word" +msgstr "Qualsevol paraula" + +#: documents/models.py:38 +msgid "All words" +msgstr "Totes paraules" + +#: documents/models.py:39 +msgid "Exact match" +msgstr "Coincidència exacte" + +#: documents/models.py:40 +msgid "Regular expression" +msgstr "Expressió Regular" + +#: documents/models.py:41 +msgid "Fuzzy word" +msgstr "Paraula difusa" + +#: documents/models.py:42 +msgid "Automatic" +msgstr "Automàtic" + +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 +msgid "name" +msgstr "nom" + +#: documents/models.py:47 +msgid "match" +msgstr "coincidència" + +#: documents/models.py:50 +msgid "matching algorithm" +msgstr "algoritme coincident" + +#: documents/models.py:55 +msgid "is insensitive" +msgstr "no distingeix entre majúscules i minúscules" + +#: documents/models.py:71 +msgid "owner" +msgstr "propietari" + +#: documents/models.py:81 documents/models.py:136 +msgid "correspondent" +msgstr "corresponsal" + +#: documents/models.py:82 +msgid "correspondents" +msgstr "corresponsals" + +#: documents/models.py:87 +msgid "color" +msgstr "color" + +#: documents/models.py:90 +msgid "is inbox tag" +msgstr "etiqueta entrada" + +#: documents/models.py:93 +msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." +msgstr "Marca aquesta etiqueta com a etiqueta de safata d'entrada: tots els documents consumits s'etiquetaran amb etiquetes d'entrada." + +#: documents/models.py:99 +msgid "tag" +msgstr "etiqueta" + +#: documents/models.py:100 documents/models.py:174 +msgid "tags" +msgstr "etiquetes" + +#: documents/models.py:105 documents/models.py:156 +msgid "document type" +msgstr "tipus document" + +#: documents/models.py:106 +msgid "document types" +msgstr "tipus document" + +#: documents/models.py:111 +msgid "path" +msgstr "camí" + +#: documents/models.py:117 documents/models.py:145 +msgid "storage path" +msgstr "ruta emmagatzematge" + +#: documents/models.py:118 +msgid "storage paths" +msgstr "rutes emmagatzematge" + +#: documents/models.py:126 +msgid "Unencrypted" +msgstr "No Encriptat" + +#: documents/models.py:127 +msgid "Encrypted with GNU Privacy Guard" +msgstr "Xifrat amb GNU Privacy Guard" + +#: documents/models.py:148 +msgid "title" +msgstr "títol" + +#: documents/models.py:160 documents/models.py:624 +msgid "content" +msgstr "contingut" + +#: documents/models.py:163 +msgid "The raw, text-only data of the document. This field is primarily used for searching." +msgstr "Les dades en brut del document només és text. Aquest camp s'utilitza principalment per a la cerca." + +#: documents/models.py:168 +msgid "mime type" +msgstr "topus mimètic" + +#: documents/models.py:178 +msgid "checksum" +msgstr "checksum" + +#: documents/models.py:182 +msgid "The checksum of the original document." +msgstr "Checksum del document original." + +#: documents/models.py:186 +msgid "archive checksum" +msgstr "arxiva checksum" + +#: documents/models.py:191 +msgid "The checksum of the archived document." +msgstr "El checksum del document arxivat." + +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 +msgid "created" +msgstr "creat" + +#: documents/models.py:197 +msgid "modified" +msgstr "modificat" + +#: documents/models.py:204 +msgid "storage type" +msgstr "tipus emmagatzematge" + +#: documents/models.py:212 +msgid "added" +msgstr "afegit" + +#: documents/models.py:219 +msgid "filename" +msgstr "nom arxiu" + +#: documents/models.py:225 +msgid "Current filename in storage" +msgstr "Nom arxiu a emmagatzematge" + +#: documents/models.py:229 +msgid "archive filename" +msgstr "nom arxiu arxivat" + +#: documents/models.py:235 +msgid "Current archive filename in storage" +msgstr "Nom arxiu arxivat a emmagatzematge" + +#: documents/models.py:239 +msgid "original filename" +msgstr "nom arxiu original" + +#: documents/models.py:245 +msgid "The original name of the file when it was uploaded" +msgstr "El nom original del fitxer quan es va pujar" + +#: documents/models.py:252 +msgid "archive serial number" +msgstr "número de sèrie de l'arxiu" + +#: documents/models.py:262 +msgid "The position of this document in your physical document archive." +msgstr "Posició d'aquest document al vostre arxiu físic de documents." + +#: documents/models.py:268 documents/models.py:641 +msgid "document" +msgstr "document" + +#: documents/models.py:269 +msgid "documents" +msgstr "documents" + +#: documents/models.py:359 +msgid "debug" +msgstr "depura" + +#: documents/models.py:360 +msgid "information" +msgstr "informació" + +#: documents/models.py:361 +msgid "warning" +msgstr "alerta" + +#: documents/models.py:362 paperless_mail/models.py:276 +msgid "error" +msgstr "error" + +#: documents/models.py:363 +msgid "critical" +msgstr "crític" + +#: documents/models.py:366 +msgid "group" +msgstr "grup" + +#: documents/models.py:368 +msgid "message" +msgstr "missatge" + +#: documents/models.py:371 +msgid "level" +msgstr "nivell" + +#: documents/models.py:380 +msgid "log" +msgstr "log" + +#: documents/models.py:381 +msgid "logs" +msgstr "logs" + +#: documents/models.py:391 documents/models.py:446 +msgid "saved view" +msgstr "vista guardada" + +#: documents/models.py:392 +msgid "saved views" +msgstr "vistes guardades" + +#: documents/models.py:397 +msgid "show on dashboard" +msgstr "mostra al panell" + +#: documents/models.py:400 +msgid "show in sidebar" +msgstr "mostra barra lateral" + +#: documents/models.py:404 +msgid "sort field" +msgstr "camp ordenació" + +#: documents/models.py:409 +msgid "sort reverse" +msgstr "ordenament invers" + +#: documents/models.py:414 +msgid "title contains" +msgstr "títol conté" + +#: documents/models.py:415 +msgid "content contains" +msgstr "contingut conté" + +#: documents/models.py:416 +msgid "ASN is" +msgstr "ASN és" + +#: documents/models.py:417 +msgid "correspondent is" +msgstr "corresponsal és" + +#: documents/models.py:418 +msgid "document type is" +msgstr "tipus document és" + +#: documents/models.py:419 +msgid "is in inbox" +msgstr "està safata entrada" + +#: documents/models.py:420 +msgid "has tag" +msgstr "té etiqueta" + +#: documents/models.py:421 +msgid "has any tag" +msgstr "qualsevol etiqueta" + +#: documents/models.py:422 +msgid "created before" +msgstr "creat abans" + +#: documents/models.py:423 +msgid "created after" +msgstr "creat després" + +#: documents/models.py:424 +msgid "created year is" +msgstr "any creació és" + +#: documents/models.py:425 +msgid "created month is" +msgstr "mes creació és" + +#: documents/models.py:426 +msgid "created day is" +msgstr "dia creació és" + +#: documents/models.py:427 +msgid "added before" +msgstr "afegit abans" + +#: documents/models.py:428 +msgid "added after" +msgstr "afegit després" + +#: documents/models.py:429 +msgid "modified before" +msgstr "modificat abans" + +#: documents/models.py:430 +msgid "modified after" +msgstr "modificat després" + +#: documents/models.py:431 +msgid "does not have tag" +msgstr "no té etiqueta" + +#: documents/models.py:432 +msgid "does not have ASN" +msgstr "no té ASN" + +#: documents/models.py:433 +msgid "title or content contains" +msgstr "títol o contingut conté" + +#: documents/models.py:434 +msgid "fulltext query" +msgstr "consulta de text complet" + +#: documents/models.py:435 +msgid "more like this" +msgstr "més com aquest" + +#: documents/models.py:436 +msgid "has tags in" +msgstr "té etiquetes a" + +#: documents/models.py:437 +msgid "ASN greater than" +msgstr "ASN més gran que" + +#: documents/models.py:438 +msgid "ASN less than" +msgstr "ASN menor que" + +#: documents/models.py:439 +msgid "storage path is" +msgstr "emmagatzematge és" + +#: documents/models.py:449 +msgid "rule type" +msgstr "tipus de regla" + +#: documents/models.py:451 +msgid "value" +msgstr "valor" + +#: documents/models.py:454 +msgid "filter rule" +msgstr "regla de filtre" + +#: documents/models.py:455 +msgid "filter rules" +msgstr "regla de filtres" + +#: documents/models.py:563 +msgid "Task ID" +msgstr "ID Tasca" + +#: documents/models.py:564 +msgid "Celery ID for the Task that was run" +msgstr "Celery ID per la tasca que es va executar" + +#: documents/models.py:569 +msgid "Acknowledged" +msgstr "Reconegut" + +#: documents/models.py:570 +msgid "If the task is acknowledged via the frontend or API" +msgstr "Si la tasca es reconeix mitjançant la interfície o l'API" + +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nom Arxiu tasca" + +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Nom del fitxer per al qual s'ha executat la tasca" + +#: documents/models.py:583 +msgid "Task Name" +msgstr "Nom tasca" + +#: documents/models.py:584 +msgid "Name of the Task which was run" +msgstr "Nom de la tasca que s'ha executat" + +#: documents/models.py:591 +msgid "Task State" +msgstr "Estat de tasca" + +#: documents/models.py:592 +msgid "Current state of the task being run" +msgstr "Estat actual de la tasca que s'està executant" + +#: documents/models.py:597 +msgid "Created DateTime" +msgstr "Data Hora Creació" + +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "Camp data i hora en què es va iniciar la tasca UTC" + +#: documents/models.py:603 +msgid "Started DateTime" +msgstr "Data Hora Creació" + +#: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "Camp data i hora en què es va iniciar la tasca UTC" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "Data Hora completada" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "Camp data i hora en què es va completar la tasca UTC" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "Dades del resultat" + +#: documents/models.py:617 +msgid "The data returned by the task" +msgstr "Dades retornades per la tasca" + +#: documents/models.py:626 +msgid "Comment for the document" +msgstr "Comentari pel document" + +#: documents/models.py:650 +msgid "user" +msgstr "usuari" + +#: documents/models.py:655 +msgid "comment" +msgstr "comentari" + +#: documents/models.py:656 +msgid "comments" +msgstr "comentaris" + +#: documents/serialisers.py:80 +#, python-format +msgid "Invalid regular expression: %(error)s" +msgstr "Expressió regular invàlida: %(error)s" + +#: documents/serialisers.py:320 +msgid "Invalid color." +msgstr "Color Invàlid." + +#: documents/serialisers.py:700 +#, python-format +msgid "File type %(type)s not supported" +msgstr "Tipus arxiu %(type)s no suportat" + +#: documents/serialisers.py:794 +msgid "Invalid variable detected." +msgstr "Variable detectada invàlida." + +#: documents/templates/index.html:78 +msgid "Paperless-ngx is loading..." +msgstr "Paperless-ngx carregant..." + +#: documents/templates/index.html:79 +msgid "Still here?! Hmm, something might be wrong." +msgstr "Encara Aquí?! Hmm, alguna cosa pot estar malament." + +#: documents/templates/index.html:79 +msgid "Here's a link to the docs." +msgstr "Link als documents." + +#: documents/templates/registration/logged_out.html:14 +msgid "Paperless-ngx signed out" +msgstr "Deslogat de Paperless-ngx" + +#: documents/templates/registration/logged_out.html:59 +msgid "You have been successfully logged out. Bye!" +msgstr "Deslogat correctament. Adéu!" + +#: documents/templates/registration/logged_out.html:60 +msgid "Sign in again" +msgstr "Entra de nou" + +#: documents/templates/registration/login.html:15 +msgid "Paperless-ngx sign in" +msgstr "Paperless-ngx sign in" + +#: documents/templates/registration/login.html:61 +msgid "Please sign in." +msgstr "Siusplau valida't." + +#: documents/templates/registration/login.html:64 +msgid "Your username and password didn't match. Please try again." +msgstr "Nom usuari / contrasenya no coincideixen. Siusplau torna a provar." + +#: documents/templates/registration/login.html:67 +msgid "Username" +msgstr "Nom usuari" + +#: documents/templates/registration/login.html:68 +msgid "Password" +msgstr "Contrasenya" + +#: documents/templates/registration/login.html:73 +msgid "Sign in" +msgstr "Validació" + +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 +msgid "English (US)" +msgstr "English (US)" + +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Àrab" + +#: paperless/settings.py:523 +msgid "Belarusian" +msgstr "Bielorús" + +#: paperless/settings.py:524 +msgid "Czech" +msgstr "Txec" + +#: paperless/settings.py:525 +msgid "Danish" +msgstr "Danès" + +#: paperless/settings.py:526 +msgid "German" +msgstr "Alemany" + +#: paperless/settings.py:527 +msgid "English (GB)" +msgstr "Anglès (GB)" + +#: paperless/settings.py:528 +msgid "Spanish" +msgstr "Espanyol" + +#: paperless/settings.py:529 +msgid "French" +msgstr "Francès" + +#: paperless/settings.py:530 +msgid "Italian" +msgstr "Italià" + +#: paperless/settings.py:531 +msgid "Luxembourgish" +msgstr "Luxemburguès" + +#: paperless/settings.py:532 +msgid "Dutch" +msgstr "Holandès" + +#: paperless/settings.py:533 +msgid "Polish" +msgstr "Polac" + +#: paperless/settings.py:534 +msgid "Portuguese (Brazil)" +msgstr "Portuguès (BZ)" + +#: paperless/settings.py:535 +msgid "Portuguese" +msgstr "Portuguès" + +#: paperless/settings.py:536 +msgid "Romanian" +msgstr "Romanès" + +#: paperless/settings.py:537 +msgid "Russian" +msgstr "Rus" + +#: paperless/settings.py:538 +msgid "Slovenian" +msgstr "Eslovè" + +#: paperless/settings.py:539 +msgid "Serbian" +msgstr "Serbi" + +#: paperless/settings.py:540 +msgid "Swedish" +msgstr "Suec" + +#: paperless/settings.py:541 +msgid "Turkish" +msgstr "Turc" + +#: paperless/settings.py:542 +msgid "Chinese Simplified" +msgstr "Xinès Simplificat" + +#: paperless/urls.py:169 +msgid "Paperless-ngx administration" +msgstr "Administració Paperless-ngx" + +#: paperless_mail/admin.py:30 +msgid "Authentication" +msgstr "Autentificació" + +#: paperless_mail/admin.py:31 +msgid "Advanced settings" +msgstr "Opcions avançades" + +#: paperless_mail/admin.py:48 +msgid "Filter" +msgstr "Filtre" + +#: paperless_mail/admin.py:51 +msgid "Paperless will only process mails that match ALL of the filters given below." +msgstr "Només es processaran els correus que coincideixin amb TOTS els filtres indicats." + +#: paperless_mail/admin.py:66 +msgid "Actions" +msgstr "Accions" + +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "Acció aplicada al correu. Aquesta acció només es realitza quan el cos del correu o els fitxers adjunts s'han consumit." + +#: paperless_mail/admin.py:77 +msgid "Metadata" +msgstr "Matadades" + +#: paperless_mail/admin.py:80 +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 "Assigna metadades als documents consumits d'aquesta regla automàticament. Si no assigneu etiquetes, tipus o corresponsals aquí, es processaran totes les regles de concordança que hàgiu definit." + +#: paperless_mail/apps.py:10 +msgid "Paperless mail" +msgstr "Paperless mail" + +#: paperless_mail/models.py:9 +msgid "mail account" +msgstr "compte correu" + +#: paperless_mail/models.py:10 +msgid "mail accounts" +msgstr "comptes correu" + +#: paperless_mail/models.py:13 +msgid "No encryption" +msgstr "Sense encriptació" + +#: paperless_mail/models.py:14 +msgid "Use SSL" +msgstr "SSL" + +#: paperless_mail/models.py:15 +msgid "Use STARTTLS" +msgstr "STARTTLS" + +#: paperless_mail/models.py:19 +msgid "IMAP server" +msgstr "Servidor IMAP" + +#: paperless_mail/models.py:22 +msgid "IMAP port" +msgstr "port IMAP" + +#: paperless_mail/models.py:26 +msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." +msgstr "Normalment 143 sense encriptació i STARTTLS i 993 per a SSL." + +#: paperless_mail/models.py:32 +msgid "IMAP security" +msgstr "Seguretat IMAP" + +#: paperless_mail/models.py:37 +msgid "username" +msgstr "nom usuari" + +#: paperless_mail/models.py:39 +msgid "password" +msgstr "contrasenya" + +#: paperless_mail/models.py:42 +msgid "character set" +msgstr "joc de caràcters" + +#: paperless_mail/models.py:46 +msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'." +msgstr "El joc de caràcters utilitzat per comunicar amb el servidor de correu, com 'UTF-8' or 'US-ASCII'." + +#: paperless_mail/models.py:57 +msgid "mail rule" +msgstr "norma e-mail" + +#: paperless_mail/models.py:58 +msgid "mail rules" +msgstr "normes e-mail" + +#: paperless_mail/models.py:61 paperless_mail/models.py:69 +msgid "Only process attachments." +msgstr "Només processa adjunts." + +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Processa el correu complet (amb fitxers adjunts incrustats al fitxer) com a .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Processa el correu complet (amb fitxers adjunts incrustats al fitxer) com a .eml + processa adjunts com a documents separats" + +#: paperless_mail/models.py:70 +msgid "Process all files, including 'inline' attachments." +msgstr "Processa tots els fitxers, inclosos els fitxers adjunts 'in line'." + +#: paperless_mail/models.py:73 +msgid "Delete" +msgstr "Esborra" + +#: paperless_mail/models.py:74 +msgid "Move to specified folder" +msgstr "Mou a carpeta especificada" + +#: paperless_mail/models.py:75 +msgid "Mark as read, don't process read mails" +msgstr "Marca com a llegit, no processeu els correus llegits" + +#: paperless_mail/models.py:76 +msgid "Flag the mail, don't process flagged mails" +msgstr "Marca el correu, no processeu els missatges marcats" + +#: paperless_mail/models.py:77 +msgid "Tag the mail with specified tag, don't process tagged mails" +msgstr "Etiqueta el correu amb l'etiqueta especificada, no processeu correus etiquetats" + +#: paperless_mail/models.py:80 +msgid "Use subject as title" +msgstr "Utilitza assumpte com a títol" + +#: paperless_mail/models.py:81 +msgid "Use attachment filename as title" +msgstr "Utilitzeu el nom del fitxer adjunt com a títol" + +#: paperless_mail/models.py:84 +msgid "Do not assign a correspondent" +msgstr "No assignar corresponsal" + +#: paperless_mail/models.py:85 +msgid "Use mail address" +msgstr "Utilitza adreça correu" + +#: paperless_mail/models.py:86 +msgid "Use name (or mail address if not available)" +msgstr "Utilitza nom (o adreça de correu si no disponible)" + +#: paperless_mail/models.py:87 +msgid "Use correspondent selected below" +msgstr "Utilitza el corresponsal seleccionat a continuació" + +#: paperless_mail/models.py:91 +msgid "order" +msgstr "ordena" + +#: paperless_mail/models.py:97 +msgid "account" +msgstr "compte" + +#: paperless_mail/models.py:101 paperless_mail/models.py:231 +msgid "folder" +msgstr "carpeta" + +#: paperless_mail/models.py:105 +msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." +msgstr "Subcarpetes han d'estar separades per un delimitador, sovint un punt ('.') o una barra inclinada ('/'), però varia segons el servidor de correu." + +#: paperless_mail/models.py:111 +msgid "filter from" +msgstr "filtra de" + +#: paperless_mail/models.py:117 +msgid "filter subject" +msgstr "filtra assumpte" + +#: paperless_mail/models.py:123 +msgid "filter body" +msgstr "filtra cos" + +#: paperless_mail/models.py:130 +msgid "filter attachment filename" +msgstr "filtra nom adjunt" + +#: paperless_mail/models.py:135 +msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." +msgstr "Consumiu només documents que coincideixin completament amb aquest nom de fitxer si s'especifica. Es permeten els comodins com ara *.pdf o *factura*. Cas insensitiu." + +#: paperless_mail/models.py:142 +msgid "maximum age" +msgstr "temps màxim" + +#: paperless_mail/models.py:144 +msgid "Specified in days." +msgstr "Especificat en dies." + +#: paperless_mail/models.py:148 +msgid "attachment type" +msgstr "tipus de fitxer adjunt" + +#: paperless_mail/models.py:152 +msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." +msgstr "Els fitxers adjunts inline inclouen imatges incrustades, per la qual cosa és millor combinar aquesta opció amb un filtre de nom de fitxer." + +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "àmbit de consum" + +#: paperless_mail/models.py:164 +msgid "action" +msgstr "acció" + +#: paperless_mail/models.py:170 +msgid "action parameter" +msgstr "paràmetre d'accío" + +#: paperless_mail/models.py:175 +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àmetre addicional per a l'acció seleccionada anteriorment, la carpeta de destinació de l'acció de moure a la carpeta. Les subcarpetes han d'estar separades per punts." + +#: paperless_mail/models.py:183 +msgid "assign title from" +msgstr "assignar títol desde" + +#: paperless_mail/models.py:191 +msgid "assign this tag" +msgstr "assigna aquesta etiqueta" + +#: paperless_mail/models.py:199 +msgid "assign this document type" +msgstr "assigna aquest tipus de document" + +#: paperless_mail/models.py:203 +msgid "assign correspondent from" +msgstr "assigna corresponsal des de" + +#: paperless_mail/models.py:213 +msgid "assign this correspondent" +msgstr "assigna aquest corresponsal" + +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "assumpte" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "rebut" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "processat" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "estat" + diff --git a/src/locale/cs_CZ/LC_MESSAGES/django.po b/src/locale/cs_CZ/LC_MESSAGES/django.po index 2acdedcb5..3ac6f5f91 100644 --- a/src/locale/cs_CZ/LC_MESSAGES/django.po +++ b/src/locale/cs_CZ/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-13 08:33\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenty" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Žádný" + +#: documents/models.py:37 msgid "Any word" msgstr "Jakékoliv slovo" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Všechna slova" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Přesná shoda" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regulární výraz" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Fuzzy slovo" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatický" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "název" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "shoda" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritmus pro shodu" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "je ignorováno" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "vlastník" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korespondenti" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "barva" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "tag přichozí" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" -msgstr "tagy" +msgstr "štítek" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "tagy" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "typ dokumentu" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "typy dokumentu" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "cesta" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "cesta k úložišti" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" -msgstr "cesta k úložišti" +msgstr "cesty k úložišti" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Nešifrované" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Šifrované pomocí GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titulek" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "obsah" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime typ" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrolní součet" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrolní součet původního dokumentu" -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "kontrolní součet archivu" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrolní součet archivovaného dokumentu." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "vytvořeno" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "upraveno" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "typ úložiště" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "přidáno" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "název souboru" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Aktuální název souboru v úložišti" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "Název archivovaného souboru" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Aktuální název souboru archivu v úložišti" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" -msgstr "" +msgstr "původní název souboru" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" -msgstr "" +msgstr "Původní název souboru při jeho nahrání" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "sériové číslo archivu" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Pozice dokumentu ve vašem archivu fyzických dokumentů" -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenty" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "ladění" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informace" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "varování" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "chyba" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritická" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "skupina" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "zpráva" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "úroveň" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "záznam" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "záznamy" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "uložený pohled" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "uložené pohledy" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "uživatel" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "zobrazit v dashboardu" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "zobrazit v postranním menu" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "pole na řazení" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "třídit opačně" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "titulek obsahuje" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "obsah obsahuje" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "korespondent je" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "typ dokumentu je" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "je v příchozích" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "má tag" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "má jakýkoliv tag" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "vytvořeno před" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "vytvořeno po" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "rok vytvoření je" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "měsíc vytvoření je" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "den vytvoření je" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "přidáno před" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "přidáno po" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "upraveno před" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "upraveno po" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "nemá tag" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "Nemá ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "Titulek nebo obsah obsahuje" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "Fulltextový dotaz" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "Podobné" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" -msgstr "má značky v" +msgstr "má štítky v" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" -msgstr "" +msgstr "ASN větší než" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" -msgstr "" +msgstr "ASN menší než" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "" +msgstr "cesta k úložišti je" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "typ pravidla" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "hodnota" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtrovací pravidlo" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtrovací pravidla" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" -msgstr "" - -#: documents/models.py:537 -msgid "Celery ID for the Task that was run" -msgstr "" - -#: documents/models.py:542 -msgid "Acknowledged" -msgstr "" - -#: documents/models.py:543 -msgid "If the task is acknowledged via the frontend or API" -msgstr "" - -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "" - -#: documents/models.py:550 -msgid "Name of the file which the Task was run for" -msgstr "" - -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" +msgstr "ID Úlohy" #: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" +msgid "Celery ID for the Task that was run" +msgstr "Celery ID pro úlohu, která byla spuštěna" #: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" +msgid "Acknowledged" +msgstr "Potvrzeno" -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" +#: documents/models.py:570 +msgid "If the task is acknowledged via the frontend or API" +msgstr "Pokud je úloha potvrzena prostřednictvím webu nebo API" -#: documents/models.py:578 -msgid "Task State" -msgstr "" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Název souboru úlohy" -#: documents/models.py:579 -msgid "Current state of the task being run" -msgstr "" +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Název souboru, pro který byla úloha spuštěna" + +#: documents/models.py:583 +msgid "Task Name" +msgstr "Název Úlohy" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" -msgstr "" +msgid "Name of the Task which was run" +msgstr "Název úlohy, která byla spuštěna" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" -msgstr "" +msgid "Task State" +msgstr "Stav úkolu" -#: documents/models.py:596 -msgid "Completed DateTime" -msgstr "" +#: documents/models.py:592 +msgid "Current state of the task being run" +msgstr "Aktuální stav spuštěného úkolu" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" -msgstr "" +msgid "Created DateTime" +msgstr "Datum a čas vytvoření" -#: documents/models.py:602 -msgid "Result Data" -msgstr "" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "Datum a čas, kdy byl výsledek úkolu vytvořen v UTC" + +#: documents/models.py:603 +msgid "Started DateTime" +msgstr "Datum a čas zahájení" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "Datum a čas, kdy byla úloha spuštěna v UTC" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "Datum a čas dokončení" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "Datum a čas, kdy byl úkol dokončen v UTC" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "Data výsledku" + +#: documents/models.py:617 msgid "The data returned by the task" -msgstr "" +msgstr "Data vrácena úlohou" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" -msgstr "" +msgstr "Komentář k dokumentu" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "uživatel" + +#: documents/models.py:655 msgid "comment" -msgstr "" +msgstr "komentář" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" -msgstr "" +msgstr "komentáře" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Neplatný regulární výraz: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Neplatná barva." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Typ souboru %(type)s není podporován" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Zjištěna neplatná proměnná." @@ -556,323 +552,363 @@ msgstr "Heslo" msgid "Sign in" msgstr "Přihlásit se" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Angličtina (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabština" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Běloruština" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Čeština" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dánština" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Němčina" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Angličtina (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Španělština" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francouzština" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italština" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Lucemburština" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Holandština" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polština" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugalština (Brazílie)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugalština" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumunština" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ruština" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovinština" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Srbština" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Švédština" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turečtina" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Čínština (zjednodušená)" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Správa Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentizace" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Pokročilá nastavení" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtr" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless zpracuje pouze emaily které odpovídají VŠEM níže zadaným filtrům." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Akce" -#: 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 "Akce provedena na emailu. Tato akce je provedena jen pokud byly dokumenty zkonzumovány z emailu. Emaily bez příloh zůstanou nedotčeny." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadata" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless pošta" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "emailový účet" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "emailové účty" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Žádné šifrování" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Používat SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Používat STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP bezpečnost" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "uživatelské jméno" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "heslo" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Znaková sada" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "mailové pravidlo" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "mailová pravidla" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Zpracovávat jen přílohy" -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Zpracovat všechny soubory, včetně vložených příloh" -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Odstranit" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Přesunout do specifikované složky" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 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 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Označit email, nezpracovávat označené emaily" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Označit e-mail zadaným štítkem, nezpracovávat označené e-maily" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Použít předmět jako titulek" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Použít název souboru u přílohy jako titulek" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Nepřiřazovat korespondenta" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Použít emailovou adresu" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Použít korespondenta vybraného níže" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "pořadí" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "účet" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "složka" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Podsložky musí být odděleny oddělovačem, nejčastěji tečkou ('.') nebo lomítkem ('/'), ale závisí to na e-mailovém serveru." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrovat z" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "název filtru" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "tělo filtru" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "název souboru u přílohy filtru" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "maximální stáří" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Specifikováno ve dnech." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "typ přílohy" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "rozsah spotřeby" + +#: paperless_mail/models.py:164 msgid "action" msgstr "akce" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametr akce" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "nastavit titulek z" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "přiřadit tento tag" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "přiřadit tento typ dokumentu" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "přiřadit korespondenta z" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "přiřadit tohoto korespondenta" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "předmět" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "přijato" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "zpracováno" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "stav" + diff --git a/src/locale/da_DK/LC_MESSAGES/django.po b/src/locale/da_DK/LC_MESSAGES/django.po index f7ccff0db..cc908a979 100644 --- a/src/locale/da_DK/LC_MESSAGES/django.po +++ b/src/locale/da_DK/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenter" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Ethvert ord" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Alle ord" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Præcis match" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regulær udtryk" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Tilnærmet ord" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "navn" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "match" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "matching algoritme" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "er usensitiv" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korrespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korrespondenter" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "farve" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "er indbakkeetiket" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etiket" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiketter" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "dokumenttype" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "dokumenttyper" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Ukrypteret" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Krypteret med GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "indhold" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "MIME-type" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrolsum" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrolsummen af det oprindelige dokument." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arkiv kontrolsum" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrolsummen af det arkiverede dokument." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "oprettet" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "ændret" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "lagringstype" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "tilføjet" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "filnavn" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nuværende filnavn lagret" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "arkiv filnavn" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nuværende arkivfilnavn lagret" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arkiv serienummer" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Placeringen af dette dokument i dit fysiske dokumentarkiv." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenter" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "fejlfinding" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "information" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "advarsel" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "fejl" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritisk" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "gruppe" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "besked" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "niveau" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "log" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logninger" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "gemt visning" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "gemte visninger" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "bruger" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "vis på betjeningspanel" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "vis i sidepanelet" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sortér felt" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "sortér omvendt" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "titel indeholder" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "indhold indeholder" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN er" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "korrespondent er" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "dokumenttype er" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "er i indbakke" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "har etiket" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "har en etiket" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "oprettet før" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "oprettet efter" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "oprettet år er" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "oprettet måned er" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "oprettet dag er" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "tilføjet før" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "tilføjet efter" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "ændret før" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "ændret efter" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "har ikke nogen etiket" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "har ikke ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "titel eller indhold indeholder" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "fuldtekst forespørgsel" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mere som dette" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "har etiketter i" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "regeltype" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "værdi" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtreringsregel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtreringsregler" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "bruger" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ugyldigt regulært udtryk: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ugyldig farve." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Filtype %(type)s understøttes ikke" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "" @@ -556,323 +552,363 @@ msgstr "Adgangskode" msgid "Sign in" msgstr "Log ind" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engelsk (USA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tjekkisk" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dansk" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Tysk" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engelsk (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spansk" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Fransk" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiensk" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburgsk" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Hollandsk" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polsk" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugisisk (Brasilien)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugisisk" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Romansk" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russisk" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Svensk" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administration" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentificering" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Avancerede indstillinger" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless vil kun behandle emails, der matcher ALLE filtre angivet nedenfor." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Handlinger" -#: 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 "Handlingen blev anvendt på emailen. Denne handling udføres kun når dokumenter blev bearbejdet fra emailen. Emails uden vedhæftede filer forbliver helt uberørte." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadata" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless email" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "email-konto" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "email-konti" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Ingen kryptering" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Benyt SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Benyt STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP sikkerhed" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "brugernavn" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "adgangskode" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "tegnsæt" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "email regel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "email regler" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Behandl kun vedhæftede filer." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Behandl alle filer, også indlejrede vedhæftede filer." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Slet" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Flyt til den angivne mappe" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 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 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Flag emailen, undlad at behandle flagede emails" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Brug emnet som titel" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Benyt vedhæftningsfilnavn som titel" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Tildel ikke en korrespondent" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Brug emailadresse" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Benyt navn (eller emailadresse hvis den ikke er tilgængelig)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Benyt korrespondent valgt nedenfor" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "rækkefølge" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "konto" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "mappe" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrér fra" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrér emne" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrér krop" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrér for vedhæftningens filnavn" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "maksimal alder" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Specificeret i dage." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "vedhæftningstype" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "handling" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parameter for handling" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "tildel titel fra" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "tildel denne etiket" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "tildel denne dokumenttype" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "tildel korrespondent fra" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "tildel denne korrespondent" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/de_DE/LC_MESSAGES/django.po b/src/locale/de_DE/LC_MESSAGES/django.po index 446ff9672..251dff2c6 100644 --- a/src/locale/de_DE/LC_MESSAGES/django.po +++ b/src/locale/de_DE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-26 20:28\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-20 06:59\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumente" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Nichts" + +#: documents/models.py:37 msgid "Any word" msgstr "Irgendein Wort" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Alle Wörter" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Exakte Übereinstimmung" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regulärer Ausdruck" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Ungenaues Wort" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatisch" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "Name" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "Zuweisungsmuster" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "Zuweisungsalgorithmus" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "Groß-/Kleinschreibung irrelevant" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "Besitzer" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "Korrespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "Korrespondenten" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "Farbe" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "Posteingangs-Tag" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "Tag" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "Tags" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "Dokumenttyp" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "Dokumenttypen" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "Pfad" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "Speicherpfad" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "Speicherpfade" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Nicht verschlüsselt" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Durch GNU Privacy Guard verschlüsselt" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "Titel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "Inhalt" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "MIME-Typ" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "Prüfsumme" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Die Prüfsumme des originalen Dokuments." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "Archiv-Prüfsumme" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Die Prüfsumme des archivierten Dokuments." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "Erstellt" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "Geändert" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "Speichertyp" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "Hinzugefügt" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "Dateiname" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Aktueller Dateiname im Datenspeicher" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "Archiv-Dateiname" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Aktueller Dateiname im Archiv" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" -msgstr "Original-Dateiname" +msgstr "Ursprünglicher Dateiname" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" -msgstr "Der Originalname der Datei beim Hochladen" +msgstr "Ursprünglicher Dateiname beim Hochladen" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "Archiv-Seriennummer" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Die Position dieses Dokuments in Ihrem physischen Dokumentenarchiv." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "Dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "Dokumente" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "Debug" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "Information" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "Warnung" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "Fehler" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "Kritisch" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "Gruppe" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "Nachricht" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "Level" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "Protokoll" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" -msgstr "Protokoll" +msgstr "Protokolle" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "Gespeicherte Ansicht" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "Gespeicherte Ansichten" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "Benutzer" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "Auf Startseite zeigen" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "In Seitenleiste zeigen" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "Sortierfeld" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "Umgekehrte Sortierung" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "Titel enthält" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "Inhalt enthält" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN ist" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "Korrespondent ist" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "Dokumenttyp ist" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "Ist im Posteingang" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "Hat Tag" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "Hat irgendein Tag" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "Ausgestellt vor" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "Ausgestellt nach" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "Ausgestellt im Jahr" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "Ausgestellt im Monat" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "Ausgestellt am Tag" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "Hinzugefügt vor" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "Hinzugefügt nach" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "Geändert vor" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "Geändert nach" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "Hat nicht folgendes Tag" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "Dokument hat keine ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "Titel oder Inhalt enthält" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "Volltextsuche" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "Ähnliche Dokumente" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "hat Tags in" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN größer als" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN kleiner als" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "Speicherpfad ist" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "Regeltyp" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "Wert" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "Filterregel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "Filterregeln" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" -msgstr "Aufgaben ID" +msgstr "Aufgaben-ID" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Celery-ID für die ausgeführte Aufgabe" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Bestätigt" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Wenn die Aufgabe über das Frontend oder die API bestätigt wird" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Aufgabenname" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Aufgaben-Dateiname" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Name der Datei, für die die Aufgabe ausgeführt wurde" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Aufgabenname" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Name der ausgeführten Aufgabe" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Aufgabe: Positionsargumente" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "JSON-Darstellung der Positionsargumente, die für die Aufgabe verwendet werden" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Aufgabe: Benannte Argumente" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "JSON-Darstellung der benannten Argumente, die für die Aufgabe verwendet werden" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Aufgabe: Status" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Aktueller Status der laufenden Aufgabe" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Erstellungsdatum/-zeit" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "Zeitpunkt, an dem das Ergebnis der Aufgabe erstellt wurde (in UTC)" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Startzeitpunk" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "Zeitpunkt, als die Aufgabe erstellt wurde (in UTC)" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" -msgstr "Abgeschlossen Zeitpunkt" +msgstr "Abschlusszeitpunkt" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "Zeitpunkt, an dem die Aufgabe abgeschlossen wurde (in UTC)" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "Ergebnisse" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Die von der Aufgabe zurückgegebenen Daten" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Kommentar zu diesem Dokument" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "Benutzer" + +#: documents/models.py:655 msgid "comment" msgstr "Kommentar" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "Kommentare" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ungültiger regulärer Ausdruck: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ungültige Farbe." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Dateityp %(type)s nicht unterstützt" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Ungültige Variable entdeckt." @@ -556,323 +552,363 @@ msgstr "Kennwort" msgid "Sign in" msgstr "Anmelden" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Englisch (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabisch" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Belarussisch" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tschechisch" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dänisch" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Deutsch" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Englisch (UK)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spanisch" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Französisch" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italienisch" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburgisch" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Niederländisch" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polnisch" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugiesisch (Brasilien)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugiesisch" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumänisch" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russisch" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slowenisch" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbisch" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Schwedisch" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Türkisch" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Vereinfachtes Chinesisch" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx Administration" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Authentifizierung" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Erweiterte Einstellungen" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless wird nur E-Mails verarbeiten, für die alle der hier angegebenen Filter zutreffen." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Aktionen" -#: 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 "Die Aktion, die auf E-Mails angewendet werden soll. Diese Aktion wird nur auf E-Mails angewendet, aus denen Anhänge verarbeitet wurden. E-Mails ohne Anhänge werden vollständig ignoriert." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "Die auf die E-Mail angewandte Aktion. Diese Aktion wird nur ausgeführt, wenn der Mailtext oder die Anhänge aus der Mail verwendet wurden." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadaten" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless E-Mail" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "E-Mail-Konto" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "E-Mail-Konten" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Keine Verschlüsselung" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "SSL benutzen" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "STARTTLS benutzen" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP-Server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP-Port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP-Sicherheit" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "Benutzername" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "Kennwort" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Zeichensatz" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "E-Mail-Regel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "E-Mail-Regeln" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Nur Anhänge verarbeiten." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Vollständige E-Mail (mit eingebetteten Anhängen in der Datei) als .eml verarbeiten" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Vollständige Mail (mit eingebetteten Anhängen in der Datei) als .eml verarbeiten + Anhänge als separate Dokumente verarbeiten" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Alle Dateien verarbeiten, auch 'inline'-Anhänge." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Löschen" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "In angegebenen Ordner verschieben" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Als gelesen markieren, gelesene E-Mails nicht verarbeiten" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Als wichtig markieren, markierte E-Mails nicht verarbeiten" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Markiere die Mail mit dem angegebenen Tag, verarbeite nicht markierte Mails" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Betreff als Titel verwenden" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Dateiname des Anhangs als Titel verwenden" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Keinen Korrespondenten zuweisen" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "E-Mail-Adresse benutzen" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Absendername benutzen (oder E-Mail-Adressen, wenn nicht verfügbar)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Nachfolgend ausgewählten Korrespondent verwenden" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "Reihenfolge" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "Konto" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "Ordner" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "Absender filtern" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "Betreff filtern" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "Nachrichteninhalt filtern" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "Anhang-Dateiname filtern" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "Maximales Alter" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Angegeben in Tagen." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "Dateianhangstyp" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "Verarbeitungsumfang" + +#: paperless_mail/models.py:164 msgid "action" msgstr "Aktion" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "Parameter für Aktion" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "Titel zuweisen von" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "Dieses Tag zuweisen" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "Diesen Dokumenttyp zuweisen" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "Korrespondent zuweisen von" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "Diesen Korrespondent zuweisen" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "UID" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "Betreff" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "Empfangen" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "Verarbeitet" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "Status" + diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po index 7eeb6ff55..7c0217bef 100644 --- a/src/locale/en_US/LC_MESSAGES/django.po +++ b/src/locale/en_US/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" "PO-Revision-Date: 2022-02-17 04:17\n" "Last-Translator: \n" "Language-Team: English\n" @@ -21,494 +21,490 @@ msgstr "" msgid "Documents" msgstr "" -#: documents/models.py:32 -msgid "Any word" -msgstr "" - -#: documents/models.py:33 -msgid "All words" -msgstr "" - -#: documents/models.py:34 -msgid "Exact match" -msgstr "" - -#: documents/models.py:35 -msgid "Regular expression" -msgstr "" - #: documents/models.py:36 -msgid "Fuzzy word" +msgid "None" msgstr "" #: documents/models.py:37 -msgid "Automatic" +msgid "Any word" msgstr "" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 -msgid "name" +#: documents/models.py:38 +msgid "All words" +msgstr "" + +#: documents/models.py:39 +msgid "Exact match" +msgstr "" + +#: documents/models.py:40 +msgid "Regular expression" +msgstr "" + +#: documents/models.py:41 +msgid "Fuzzy word" msgstr "" #: documents/models.py:42 +msgid "Automatic" +msgstr "" + +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 +msgid "name" +msgstr "" + +#: documents/models.py:47 msgid "match" msgstr "" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "" -#: documents/models.py:75 +#: documents/models.py:93 msgid "" "Marks this tag as an inbox tag: All newly consumed documents will be tagged " "with inbox tags." msgstr "" -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "" -#: documents/models.py:145 +#: documents/models.py:163 msgid "" "The raw, text-only data of the document. This field is primarily used for " "searching." msgstr "" -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "" -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "" -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "" -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "" @@ -560,341 +556,382 @@ msgstr "" msgid "Sign in" msgstr "" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "" "Paperless will only process mails that match ALL of the filters given below." msgstr "" -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "" -#: paperless_mail/admin.py:67 +#: paperless_mail/admin.py:69 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." +"The action applied to the mail. This action is only performed when the mail " +"body or attachments were consumed from the mail." msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "" "This is usually 143 for unencrypted and STARTTLS connections, and 993 for " "SSL connections." msgstr "" -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "" -#: paperless_mail/models.py:61 -msgid "Process all files, including 'inline' attachments." +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" msgstr "" #: paperless_mail/models.py:64 +msgid "" +"Process full Mail (with embedded attachments in file) as .eml + process " +"attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 +msgid "Process all files, including 'inline' attachments." +msgstr "" + +#: paperless_mail/models.py:73 msgid "Delete" msgstr "" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "" -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "" "Inline attachments include embedded images, so it's best to combine this " "option with a filename filter." msgstr "" -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "" + +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" diff --git a/src/locale/es_ES/LC_MESSAGES/django.po b/src/locale/es_ES/LC_MESSAGES/django.po index e0e7df5d1..0d3e0bc15 100644 --- a/src/locale/es_ES/LC_MESSAGES/django.po +++ b/src/locale/es_ES/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2023-01-05 22:57\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-05 00:21\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Documentos" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Nada" + +#: documents/models.py:37 msgid "Any word" msgstr "Cualquier palabra" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Todas las palabras" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Coincidencia exacta" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Expresión regular" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Palabra borrosa" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automático" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nombre" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "coincidencia" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "Algoritmo de coincidencia" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "es insensible" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "propietario" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "interlocutor" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "interlocutores" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "color" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "es etiqueta de bandeja" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etiqueta" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiquetas" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tipo de documento" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipos de documento" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "ruta" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "ruta de almacenamiento" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "rutas de almacenamiento" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Sin cifrar" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Cifrado con GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "título" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "contenido" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "tipo MIME" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "Cadena de verificación" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "La cadena de verificación del documento original." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "cadena de comprobación del archivo" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "La cadena de verificación del documento archivado." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "creado" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificado" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tipo de almacenamiento" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "añadido" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nombre del archivo" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nombre de archivo actual en disco" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nombre de archivo" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nombre de archivo actual en disco" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "nombre del archivo original" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "El nombre que tenía el archivo cuando fue cargado" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "número de serie del archivo" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "documento" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documentos" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "depuración" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "información" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "alerta" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "error" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "crítico" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupo" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "mensaje" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivel" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "log" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logs" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "vista guardada" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "vistas guardadas" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "usuario" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "mostrar en el panel de control" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "mostrar en barra lateral" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "campo de ordenación" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "ordenar al revés" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "el título contiene" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "el contenido contiene" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN es" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "interlocutor es" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "el tipo de documento es" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "está en la bandeja de entrada" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "tiene la etiqueta" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "tiene cualquier etiqueta" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "creado antes" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "creado después" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "el año de creación es" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "el mes de creación es" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "creado el día" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "agregado antes de" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "agregado después de" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificado después de" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificado antes de" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "no tiene la etiqueta" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "no tiene ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "el título o cuerpo contiene" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "consulta de texto completo" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "más contenido similar" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "tiene etiquetas en" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" -msgstr "" +msgstr "ASN mayor que" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" -msgstr "" +msgstr "ASN menor que" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "" +msgstr "la ruta de almacenamiento es" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tipo de regla" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valor" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "regla de filtrado" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "reglas de filtrado" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID de la tarea" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "ID de Celery de la tarea ejecutada" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" -msgstr "" +msgstr "Reconocido" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" -msgstr "" +msgstr "Si la tarea es reconocida a través del frontend o API" -#: documents/models.py:549 documents/models.py:556 +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nombre del archivo de tarea" + +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Nombre del archivo para el que se ejecutó la tarea" + +#: documents/models.py:583 msgid "Task Name" msgstr "Nombre de la tarea" -#: documents/models.py:550 -msgid "Name of the file which the Task was run for" -msgstr "" - -#: documents/models.py:557 +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Nombre de la tarea ejecutada" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Estado de la tarea" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Estado de la tarea actualmente en ejecución" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Fecha y hora de creación" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" -msgstr "" +msgstr "Campo de fecha cuando el resultado de la tarea fue creado en UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Fecha y hora de inicio" -#: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" -msgstr "" - -#: documents/models.py:596 -msgid "Completed DateTime" -msgstr "" - -#: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" -msgstr "" - -#: documents/models.py:602 -msgid "Result Data" -msgstr "" - #: documents/models.py:604 -msgid "The data returned by the task" -msgstr "" +msgid "Datetime field when the task was started in UTC" +msgstr "Campo de fecha cuando la tarea fue iniciada en UTC" -#: documents/models.py:613 +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "Fecha de finalización" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "Fecha-hora cuando la tarea se completó en UTC" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "Datos de resultado" + +#: documents/models.py:617 +msgid "The data returned by the task" +msgstr "Datos devueltos por la tarea" + +#: documents/models.py:626 msgid "Comment for the document" msgstr "Comentario para el documento" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "usuario" + +#: documents/models.py:655 msgid "comment" msgstr "comentario" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "comentarios" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Expresión irregular inválida: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Color inválido." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de fichero %(type)s no suportado" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Variable inválida." @@ -556,323 +552,363 @@ msgstr "Contraseña" msgid "Sign in" msgstr "Iniciar sesión" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Inglés (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Árabe" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Bielorruso" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Checo" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danés" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Alemán" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Inglés (Gran Bretaña)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Español" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francés" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiano" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburgués" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Alemán" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polaco" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugués (Brasil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugués" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumano" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ruso" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Esloveno" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbio" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Sueco" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turco" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chino simplificado" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administración de Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentificación" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Configuración avanzada" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtro" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless solo procesará los correos que coincidan con TODOS los filtros escritos abajo." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Acciones" -#: 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 "La acción se aplicó al correo. Esta acción sólo se realiza cuando los documentos se consumen desde el correo. Los correos sin archivos adjuntos permanecerán totalmente intactos." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "La acción aplicada al correo. Esta acción sólo se realiza cuando el cuerpo del correo o los archivos adjuntos fueron consumidos del correo." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadatos" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Correo Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "cuenta de correo" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "cuentas de correo" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Sin encriptar" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Usar SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Usar STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Servidor IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Puerto IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Seguridad IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "usuario" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "contraseña" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "conjunto de caracteres" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "regla de correo" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "reglas de correo" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Solo procesar ficheros adjuntos." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Procesar correo completo (con adjuntos en el archivo) como .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Procesar correo completo (con adjuntos incrustados en el archivo) como .eml + archivos adjuntos de proceso como documentos separados" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Procesar todos los ficheros, incluyendo ficheros 'incrustados'." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Borrar" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Mover a carpeta específica" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Marcar como leído, no procesar archivos leídos" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Marcar el correo, no procesar correos marcados" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "" +msgstr "Etiqueta el correo con la etiqueta especificada, no procesar correos etiquetados" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Usar asunto como título" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Usar nombre del fichero adjunto como título" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "No asignar interlocutor" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Usar dirección de correo" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Usar nombre (o dirección de correo sino está disponible)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Usar el interlocutor seleccionado a continuación" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "orden" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "cuenta" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "carpeta" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrar desde" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrar asunto" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrar cuerpo" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrar nombre del fichero adjunto" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "antigüedad máxima" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Especificado en días." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tipo de fichero adjunto" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "ámbito de consumo" + +#: paperless_mail/models.py:164 msgid "action" msgstr "acción" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parámetro de acción" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "asignar título desde" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "asignar esta etiqueta" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "asignar este tipo de documento" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "asignar interlocutor desde" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "asignar este interlocutor" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "asunto" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "recibido" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "procesado" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "estado" + diff --git a/src/locale/fi_FI/LC_MESSAGES/django.po b/src/locale/fi_FI/LC_MESSAGES/django.po index 0d9293cd4..284514cf9 100644 --- a/src/locale/fi_FI/LC_MESSAGES/django.po +++ b/src/locale/fi_FI/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-09 08:14\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -19,492 +19,488 @@ msgstr "" #: documents/apps.py:9 msgid "Documents" -msgstr "Dokumentit" +msgstr "Asiakirjat" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Ei mitään" + +#: documents/models.py:37 msgid "Any word" msgstr "Mikä tahansa sana" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Kaikki sanat" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Tarkka osuma" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Säännöllinen lauseke (regex)" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Sumea sana" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automaattinen" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nimi" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "osuma" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "tunnistusalgoritmi" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "ei ole herkkä" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "omistaja" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "yhteyshenkilö" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "yhteyshenkilöt" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "väri" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "on uusien tunniste" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "tunniste" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "tunnisteet" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "asiakirjatyyppi" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "asiakirjatyypit" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "polku" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "tallennustilan polku" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "tallennustilan polut" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Salaamaton" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "GNU Privacy Guard -salattu" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "otsikko" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "sisältö" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime-tyyppi" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "tarkistussumma" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Alkuperäisen dokumentin tarkistussumma." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arkistotarkastussumma" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Arkistoidun dokumentin tarkistussumma." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "luotu" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "muokattu" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tallennustilan tyyppi" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "lisätty" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "tiedostonimi" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Tiedostonimi tallennustilassa" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "arkistointitiedostonimi" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Tämänhetkinen arkistointitiedostoimi tallennustilassa" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" -msgstr "" +msgstr "alkuperäinen tiedostonimi" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" -msgstr "" +msgstr "Tiedoston alkuperäinen nimi, kun se oli ladattu" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arkistointisarjanumero" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." -msgstr "Dokumentin sijainti fyysisessa dokumenttiarkistossa." +msgstr "Asiakirjan sijainti fyysisessä arkistossa." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" -msgstr "dokumentti" +msgstr "asiakirja" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" -msgstr "dokumentit" +msgstr "asiakirjat" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "virheenjäljitys" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informaatio" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "varoitus" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "virhe" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kriittinen" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "ryhmä" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "viesti" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "taso" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "loki" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "lokit" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "tallennettu näkymä" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "tallennetut näkymät" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "käyttäjä" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "näytä etusivulla" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "näytä sivupaneelissa" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "lajittelukenttä" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "lajittele käänteisesti" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "otsikko sisältää" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "sisältö sisältää" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN on" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "yhteyshenkilö on" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" -msgstr "dokumenttityyppi on" +msgstr "asiakirjatyyppi on" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "on uusi" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "on tagattu" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "on mikä tahansa tagi" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "luotu ennen" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "luotu jälkeen" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "luotu vuonna" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "luotu kuukautena" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "luomispäivä on" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "lisätty ennen" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "lisätty jälkeen" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "muokattu ennen" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "muokattu jälkeen" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "ei ole tagia" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "ei ole ASN-numeroa" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "otsikko tai sisältö sisältää" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "fulltext-kysely" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "enemmän kuten tämä" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "sisältää tagit" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" -msgstr "" +msgstr "ASN suurempi kuin" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" -msgstr "" +msgstr "ASN pienempi kuin" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "" +msgstr "tallennustilan polku on" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "sääntötyyppi" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "arvo" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "suodatussääntö" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "suodatussäännöt" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" -msgstr "" - -#: documents/models.py:537 -msgid "Celery ID for the Task that was run" -msgstr "" - -#: documents/models.py:542 -msgid "Acknowledged" -msgstr "" - -#: documents/models.py:543 -msgid "If the task is acknowledged via the frontend or API" -msgstr "" - -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "" - -#: documents/models.py:550 -msgid "Name of the file which the Task was run for" -msgstr "" - -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" +msgstr "Tehtävä ID" #: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" +msgid "Celery ID for the Task that was run" +msgstr "Celery ID tehtävälle, joka oli käynnissä" #: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" +msgid "Acknowledged" +msgstr "Vahvistettu" -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" +#: documents/models.py:570 +msgid "If the task is acknowledged via the frontend or API" +msgstr "Jos tehtävä on vahvistettu frontendin tai API:n kautta" -#: documents/models.py:578 -msgid "Task State" -msgstr "" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Tehtävän tiedostonimi" -#: documents/models.py:579 -msgid "Current state of the task being run" -msgstr "" +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Tiedoston nimi, jolle tehtävä on suoritettu" + +#: documents/models.py:583 +msgid "Task Name" +msgstr "Tehtävänimi" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" -msgstr "" +msgid "Name of the Task which was run" +msgstr "Tehtävän nimi, joka oli ajettu" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" -msgstr "" +msgid "Task State" +msgstr "Tehtävän tila" -#: documents/models.py:596 -msgid "Completed DateTime" -msgstr "" +#: documents/models.py:592 +msgid "Current state of the task being run" +msgstr "Suoritettavan tehtävän tämänhetkinen tila" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" -msgstr "" +msgid "Created DateTime" +msgstr "Luotu" -#: documents/models.py:602 -msgid "Result Data" -msgstr "" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "Päivämäärä, kun tehtävä valmistui (UTC)" + +#: documents/models.py:603 +msgid "Started DateTime" +msgstr "Aloitettu" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "Päivämäärä, kun tehtävä käynnistyi (UTC)" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "Valmistui" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "Päivämäärä, kun tehtävä valmistui (UTC)" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "Tulokset" + +#: documents/models.py:617 msgid "The data returned by the task" -msgstr "" +msgstr "Tehtävän palauttamat tiedot" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" -msgstr "" +msgstr "Kommentti asiakirjalle" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "käyttäjä" + +#: documents/models.py:655 msgid "comment" -msgstr "" +msgstr "kommentti" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" -msgstr "" +msgstr "kommentit" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Virheellinen regex-lauseke: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Virheellinen väri." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Tiedostotyyppiä %(type)s ei tueta" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Virheellinen muuttuja havaittu." @@ -556,323 +552,363 @@ msgstr "Salasana" msgid "Sign in" msgstr "Kirjaudu sisään" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Englanti (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabialainen" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "valkovenäjä" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tšekki" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Tanska" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Saksa" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Englanti (US)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Espanja" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Ranska" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italia" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburg" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Hollanti" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "puola" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "portugali (Brasilia)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "portugali" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "romania" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "venäjä" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovenia" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbia" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "ruotsi" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turkki" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Kiina (yksinkertaistettu)" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx hallintapaneeli" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentikaatio" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Edistyneet asetukset" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Suodatin" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless prosessoi vain sähköpostit jotka sopivat KAIKKIIN annettuihin filttereihin." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" 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 "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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "Sähköpostiin suoritettava toiminto. Tämä toiminto suoritetaan vasta, kun sähköpostin sisältö tai liitteet on syötetty postin kautta." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metatiedot" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless-sähköposti" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "sähköpostitili" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "sähköpostitilit" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Ei salausta" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Käytä SSL-salausta" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Käytä STARTTLS-salausta" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP-palvelin" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP-portti" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP-suojaus" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "käyttäjänimi" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "salasana" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "merkistö" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "sähköpostisääntö" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "sähköpostisäännöt" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Prosessoi vain liitteet." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Käsittele koko sähköposti (johon on upotettu liitetiedostoja) kuten .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Käsittele koko sähköposti (johon on upotettu liitetiedostoja) kuten .eml ja käsittele liitteet erillisinä asiakirjoina" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Prosessoi kaikki tiedostot, sisältäen \"inline\"-liitteet." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Poista" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Siirrä määritettyyn kansioon" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Merkitse luetuksi, älä prosessoi luettuja sähköposteja" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Liputa sähköposti, älä käsittele liputettuja sähköposteja" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Merkitse viesti määrätyllä tagilla, älä käsittele tageja" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Käytä aihetta otsikkona" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Käytä liitteen tiedostonimeä otsikkona" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Älä määritä yhteyshenkilöä" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Käytä sähköpostiosoitetta" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Käytä nimeä (tai sähköpostiosoitetta, jos ei ole saatavilla)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Käytä alla valittua yhteyshenkilöä" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "järjestys" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "tili" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "kansio" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Alikansiot on erotettava erottimella, usein pisteellä ('.') tai kauttaviivalla ('/'), mutta se vaihtelee postipalvelimen mukaan." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "suodata lähettäjä-kenttä" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "suodata aihe" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "suodata runko" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "suodata liitteen tiedostonimi" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Tuo vain dokumentit jotka täsmäävät täysin tiedostonimen suhteen. Jokerimerkit kuten *.pdf tai *lasku* ovat sallittuja. Kirjainkoko ei merkitse." -#: paperless_mail/models.py:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "ikä enintään" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Määritetty päivinä." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "liitteen tyyppi" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "Sisäiset liitteet sisältävät upotettuja kuvia, joten on parasta yhdistää tämä vaihtoehto tiedostonimen suodattimeen." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "tuonnin laajuus" + +#: paperless_mail/models.py:164 msgid "action" msgstr "toiminto" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "toiminnon parametrit" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 "Yllä valitun toiminnon lisäparametri eli siirrä hakemistoon -toiminnon kohdehakemisto. Alikansiot on erotettava toisistaan pisteillä." -#: paperless_mail/models.py:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "aseta otsikko kohteesta" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "määritä tämä tunniste" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "määritä tämä asiakirjatyyppi" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "määritä kirjeenvaihtaja kohteesta" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "määritä tämä kirjeenvaihtaja" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "aihe" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "vastaanotettu" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "käsitelty" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "tila" + diff --git a/src/locale/fr_FR/LC_MESSAGES/django.po b/src/locale/fr_FR/LC_MESSAGES/django.po index b00143ec2..1dfe9ca86 100644 --- a/src/locale/fr_FR/LC_MESSAGES/django.po +++ b/src/locale/fr_FR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-12-25 12:32\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-17 05:24\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -21,492 +21,488 @@ msgstr "" msgid "Documents" msgstr "Documents" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Aucun élément" + +#: documents/models.py:37 msgid "Any word" msgstr "Un des mots" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Tous les mots" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Concordance exacte" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Expression régulière" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Mot approximatif" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatique" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nom" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "rapprochement" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algorithme de rapprochement" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "est insensible à la casse" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "propriétaire" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "correspondant" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "correspondants" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "couleur" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "est une étiquette de boîte de réception" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "étiquette" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "étiquettes" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "type de document" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "types de document" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "chemin" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "chemin de stockage" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "chemins de stockage" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Non chiffré" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Chiffré avec GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titre" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "contenu" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "type mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "somme de contrôle" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "La somme de contrôle du document original." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "somme de contrôle de l'archive" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "La somme de contrôle du document archivé." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "créé le" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modifié" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "forme d'enregistrement :" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "date d'ajout" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nom du fichier" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nom du fichier courant en base de données" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nom de fichier de l'archive" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nom du fichier d'archive courant en base de données" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "nom de fichier d'origine" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Le nom original du fichier quand il a été envoyé" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "numéro de série de l'archive" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "document" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documents" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "débogage" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informations" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "avertissement" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "erreur" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "critique" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "groupe" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "message" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "niveau" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "journal" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "journaux" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "vue enregistrée" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "vues enregistrées" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "utilisateur" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "montrer sur le tableau de bord" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "montrer dans la barre latérale" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "champ de tri" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "tri inverse" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "le titre contient" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "le contenu contient" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "le NSA est" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "le correspondant est" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "le type de document est" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "est dans la boîte de réception" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "porte l'étiquette" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "porte l'une des étiquettes" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "créé avant" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "créé après" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "l'année de création est" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "le mois de création est" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "le jour de création est" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "ajouté avant" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "ajouté après" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modifié avant" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modifié après" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "ne porte pas d'étiquette" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "ne porte pas de NSA" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "le titre ou le contenu contient" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "recherche en texte intégral" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "documents relatifs" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "porte une étiquette parmi" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" -msgstr "est supérieur à" +msgstr "ASN supérieur à" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" -msgstr "est inférieur à" +msgstr "ASN inférieur à" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "chemin d'accès au stockage" +msgstr "chemin de stockage est" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "type de règle" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valeur" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "règle de filtrage" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "règles de filtrage" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID de tâche" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Identifiant Celery pour la tâche qui a été exécutée" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" -msgstr "Prise en compte" +msgstr "Confirmer" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Si la tâche est prise en compte via l'interface utilisateur ou l'API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Nom de la tâche" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nom du fichier de tâche" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Nom du fichier pour lequel la tâche a été exécutée" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Nom de la tâche" + +#: documents/models.py:584 msgid "Name of the Task which was run" -msgstr "Nom de la tâche exécutée" +msgstr "Nom de la tâche qui a été exécuté" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Arguments positionnés de la tâche" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "Représentation JSON des arguments positionnés utilisés pour la tâche" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Arguments nommés de la tâche" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "Représentation JSON des arguments nommés utilisés pour la tâche" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "État de la tâche" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" -msgstr "Etat actuel de la tâche en cours d'exécution" +msgstr "État actuel de la tâche en cours d'exécution" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Date de création" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" -msgstr "Champ de date lorsque le résultat de la tâche a été créé (UTC)" +msgstr "Champ de date lorsque le résultat de la tâche a été créé en UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Date de début" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" -msgstr "Champ de date lorsque la tâche a été créé (UTC)" +msgstr "Champ de date lorsque le résultat de la tâche a été créé en UTC" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "Date de fin" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" -msgstr "Champ de date lorsque la tâche a été terminée (UTC)" +msgstr "Champ de date lorsque le résultat de la tâche a été créé en UTC" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" -msgstr "Données de résultat" +msgstr "Données du résultat" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Les données retournées par la tâche" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Commentaire pour ce document" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "utilisateur" + +#: documents/models.py:655 msgid "comment" msgstr "commentaire" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "commentaires" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Expression régulière incorrecte : %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Couleur incorrecte." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Type de fichier %(type)s non pris en charge" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." -msgstr "Variable non valide détectée." +msgstr "Variable invalide détectée." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -518,7 +514,7 @@ msgstr "Toujours ici ? Hum, quelque chose a dû mal se passer." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "Lien vers la documentation." +msgstr "Voici un lien vers la documentation." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" @@ -556,323 +552,363 @@ msgstr "Mot de passe" msgid "Sign in" msgstr "S'identifier" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Anglais (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabe" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Biélorusse" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tchèque" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danois" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Allemand" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Anglais (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Espagnol" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Français" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italien" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxembourgeois" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Néerlandais" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polonais" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugais (Brésil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugais" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Roumain" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russe" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovène" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbe" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Suédois" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turc" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chinois simplifié" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administration de Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Authentification" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Paramètres avancés" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtrage" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless-ng ne traitera que les courriers qui correspondent à TOUS les filtres ci-dessous." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Actions" -#: 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 "Action appliquée au courriel. Cette action n'est exécutée que lorsque les documents ont été traités depuis des courriels. Les courriels sans pièces jointes demeurent totalement inchangés." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "L'action appliquée au courrier. Cette action n'est effectuée que lorsque le corps du courrier ou les pièces jointes ont été consommés par le courrier." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Métadonnées" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless-ng pour le courriel" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "compte de messagerie" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "comptes de messagerie" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Pas de chiffrement" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Utiliser SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Utiliser STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Serveur IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Port IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Sécurité IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "nom d'utilisateur" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "mot de passe" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "jeu de caractères" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "règle de courriel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "règles de courriel" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Ne traiter que les pièces jointes." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Traiter le courrier complet (avec des pièces jointes intégrées dans le fichier) en tant que .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Traiter le courrier complet (avec des pièces jointes intégrées dans le fichier) en .eml + traiter les pièces jointes en tant que documents séparés" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Traiter tous les fichiers, y compris les pièces jointes \"en ligne\"." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Supprimer" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Déplacer vers le dossier spécifié" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Marquer comme lu, ne pas traiter les courriels lus" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" -msgstr "Affecter l’étiquette spécifée au courrier, ne pas traiter les courriels étiquetés" +msgstr "Affecter l’étiquette spécifiée au courrier, ne pas traiter les courriels étiquetés" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Utiliser le sujet en tant que titre" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Utiliser le nom de la pièce jointe en tant que titre" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Ne pas affecter de correspondant" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Utiliser l'adresse électronique" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Utiliser le correspondant sélectionné ci-dessous" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordre" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "compte" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "répertoire" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Les sous-dossiers doivent être séparés par un délimiteurs, souvent un point ('.') ou un slash ('/'), en fonction du serveur de messagerie." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrer l'expéditeur" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrer le sujet" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrer le corps du message" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrer le nom de fichier de la pièce jointe" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "âge maximum" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "En jours." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "type de pièce jointe" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "portée de la consommation" + +#: paperless_mail/models.py:164 msgid "action" msgstr "action" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "paramètre d'action" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "affecter le titre depuis" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "affecter cette étiquette" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "affecter ce type de document" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "affecter le correspondant depuis" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "affecter ce correspondant" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "sujet" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "reçu" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "traités" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "état" + diff --git a/src/locale/he_IL/LC_MESSAGES/django.po b/src/locale/he_IL/LC_MESSAGES/django.po index 8f23c554f..95aedcc40 100644 --- a/src/locale/he_IL/LC_MESSAGES/django.po +++ b/src/locale/he_IL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "מסמכים" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "מילה כלשהי" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "כל המילים" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "התאמה מדוייקת" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "ביטוי רגולרי" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "מילה מעורפלת" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "אוטומטי" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "שם" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "התאמה" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "אלגוריתם התאמה" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "אינו רגיש" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "מכותב" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "מכותבים" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "צבע" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "תגית דואר נכנס" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "מסמן תגית זו כתגית דואר נכנס: כל המסמכים החדשים שהתקבלו יתויגו עם תגית דואר נכנס." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "תגית" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "תגיות" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "סוג מסמך" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "סוגי מסמך" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "נתיב" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "נתיב אכסון" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "נתיבי אכסון" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "לא מוצפן" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "הוצפן באמצעות GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "כותרת" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "תוכן" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "הנתונים הגולמיים של המסמך, המכילים טקסט בלבד. שדה זה משמש בעיקר לצורך חיפוש." -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "סוג mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "מחרוזת בדיקה" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "מחרוזת בדיקה של המסמך המקורי." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "מחרוזת בדיקה לארכיון" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "מחרוזת הבדיקה למסמך בארכיון." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "נוצר" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "נערך לאחרונה" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "סוג אחסון" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "התווסף" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "שם קובץ" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "שם קובץ נוכחי באחסון" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "שם קובץ בארכיון" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "שם קובץ ארכיוני נוכחי באחסון" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "מספר סידורי בארכיון" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "מיקומו של מסמך זה בארכיון המסמכים הפיזי שלך." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "מסמך" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "מסמכים" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "ניפוי שגיאות" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "מידע" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "אזהרה" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "שגיאה" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "קריטי" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "קבוצה" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "הודעה" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "רמה" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "יומן רישום" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "יומני רישום" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "תצוגה שמורה" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "תצוגות שמורות" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "משתמש" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "הצג בדשבורד" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "הצג בסרגל צידי" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "שדה המיון" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "מיין הפוך" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "כותרת מכילה" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "תוכן מכיל" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "מס\"ד הוא" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "מכותב הוא" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "סוג מסמך הוא" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "בתיבה הנכנסת" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ישנו תיוג" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ישנו כל תיוג" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "נוצר לפני" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "נוצר לאחר" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "נוצר בשנת" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "נוצר בחודש" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "נוצר ביום" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "הוסף לפני" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "הוסף אחרי" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "נערך לפני" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "נערך אחרי" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "אינו כולל את התיוג" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "אינו בעל מס\"ד" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "כותרת או תוכן מכילים" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "שאילתת טקסט מלא" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "עוד כמו זה" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "מכיל תגים ב-" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "סוג כלל" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "ערך" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "חוק סינון" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "חוקי סינון" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "משתמש" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "ביטוי רגולרי בלתי חוקי: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "צבע לא חוקי." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "סוג קובץ %(type)s לא נתמך" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "משתנה לא חוקי זוהה." @@ -556,323 +552,363 @@ msgstr "סיסמה" msgid "Sign in" msgstr "התחבר" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "אנגלית (ארה\"ב)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "בלרוסית" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "צ'כית" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "דנית" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "גרמנית" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "אנגלית (בריטניה)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "ספרדית" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "צרפתית" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "איטלקית" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "לוקסמבורגית" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "הולנדית" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "פולנית" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "פורטוגזית (ברזיל)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "פורטוגזית" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "רומנית" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "רוסית" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "סלובנית" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "סרבית" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "שוודית" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "טורקית" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "סינית מופשטת" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "ניהול Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "אימות" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "הגדרות מתקדמות" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "סנן" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless יעבד רק מיילים התואמים את כל המסננים המפורטים להלן." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "מטא-נתונים" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "דואר Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "חשבון דואר" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "חשבונות דואר" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "ללא הצפנה" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "השתמש ב-SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "השתמש ב-STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "שרת IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "פורט IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "זה בדרך כלל 143 עבור חיבורי STARTTLS לא מוצפנים, ו-993 עבור חיבורי SSL." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "אבטחת IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "שם משתמש" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "סיסמה" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "ערכת תווים" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "כלל דואר אלקטרוני" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "כללי דואר אלקטרוני" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "עבד רק קבצים מצורפים." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "עבד את כל הקבצים, כולל קבצים מצורפים 'מוטבעים'." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "מחק" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "העבר לתיקיה שצוינה" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "סמן כנקרא, אל תעבד הודעות דואר שנקראו" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "סמן דואר, אל תעבד הודעות דואר שסומנו" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "השתמש בנושא ככותרת" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "השתמש בשם הקובץ המצורף ככותרת" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "אל תשייך מכותב" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "השתמש בכתובת הדואר" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "השתמש בשם (או בכתובת דואר אם אין שם)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "השתמש במכותב הנבחר להלן" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "סדר" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "חשבון" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "תיקייה" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "סנן 'מאת'" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "סנן 'נושא'" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "סנן 'גוף'" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "סנן 'שם קובץ מצורף'" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "גיל מקסימלי" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "נקוב בימים." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "סוג קובץ מצורף" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "קבצים מצורפים 'מוטבעים' עלולים לכלול תמונות מוטמעות, לכן האופציה הטובה ביותר היא לשלב אופציה זו עם סנן 'שם קובץ מצורף'." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "פעולה" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "פרמטר פעולה" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "שייך כותרת מ-" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "שייך תגית זו" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "שייך סוג מסמך זה" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "שייך מכותב מ-" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "שייך מכותב זה" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/hr_HR/LC_MESSAGES/django.po b/src/locale/hr_HR/LC_MESSAGES/django.po index 8e484555b..ba9459770 100644 --- a/src/locale/hr_HR/LC_MESSAGES/django.po +++ b/src/locale/hr_HR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:12\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Bilo koja riječ" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Sve riječi" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Točno podudaranje" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Uobičajeni izraz" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Nejasna riječ" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatski" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "ime" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "podudarati" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritam podudaranja" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "ne razlikuje velika i mala slova" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "dopisnik" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "dopisnici" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "boja" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "oznaka ulazne pošte (inbox)" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "oznaka" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "oznake" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "vrsta dokumenta" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "vrste dokumenta" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "putanja" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "putanja pohrane" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "putanje pohrane" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Nekriptirano" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Enkriptirano s GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "naslov" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "sadržaj" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "vrste mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrolni zbroj" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrolni zbroj originalnog dokumenta." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arhivski kontrolni zbroj" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrolni zbroj arhiviranog dokumenta." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "stvoreno" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificiran" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "vrsta pohrane" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "dodano" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "naziv datoteke" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Trenutni naziv pohranjene datoteke" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "naziv arhivirane datoteke" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Trenutni naziv arhivirane pohranjene datoteke" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arhivirani serijski broj" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenti" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "otklanjanje pogrešaka" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informacije" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "upozorenje" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "greška" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritično" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupa" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "poruka" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "razina" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "zapisnik" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "zapisnici" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "spremljen prikaz" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "spremljeni prikazi" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "korisnik" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "prikaži na nadzornoj ploči" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "prikaži u bočnoj traci" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sortiraj polje" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "obrnuto sortiranje" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "naslov sadrži" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "sadržaj sadrži" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "dopisnik je" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "vrsta dokumenta je" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "nalazi se u ulaznoj pošti" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ima oznaku" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ima bilo kakvu oznaku" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "stvoreni prije" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "stvoreno poslije" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "godina stvaranja je" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "mjesec stvaranja je" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dan stvaranja je" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "dodano prije" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "dodano poslije" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificirano prije" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificirano poslije" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "ne posjeduje oznaku" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "ne posjeduje ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "naziv ili sadržaj sadrži" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "upit za cijeli tekst" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "više poput ovog" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "sadrži oznake" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "vrsta pravila" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "vrijednost" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "pravilo filtera" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "pravila filtera" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "korisnik" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Nevažeći regularni izraz: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Nevažeća boja." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s nije podržana" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Otkrivena je nevaljana vrsta datoteke." @@ -556,323 +552,363 @@ msgstr "Lozinka" msgid "Sign in" msgstr "Prijava" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engleski (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Bjeloruski" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Češki" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danski" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Njemački" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engleski (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Španjolski" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francuski" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Talijanski" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Nizozemski" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Poljski" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumunjski" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ruski" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovenski" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Srpski" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Švedski" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turski" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Pojednostavljeni kineski" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentifikacija" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Napredne postavke" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 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 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metapodaci" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless-ngx e-pošta" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "korisnički račun e-pošte" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "korisnički računi e-pošte" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Nema enkripcije" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Koristi SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Koristi STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP zaštita" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "korisničko ime" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "lozinka" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "skup znakova enkodiranja" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "pravilo e-pošte" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "pravila e-pošte" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Obradi samo privitke." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Obradite sve datoteke, uključujući \"umetnute\" privitke." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Obriši" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Premjestiti u određenu mapu" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 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 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 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 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Koristi predmet kao naziv" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Koristi naziv datoteke priloga kao naziv" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Nemojte dodijeliti dopisnika" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Koristi adresu e-pošte" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Koristi dopisnika odabranog u nastavku" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "redoslijed" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "korisnički račun" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "mapa" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtriraj po pošiljatelju" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtriraj po predmetu" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtriraj po sadržaju" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtriraj po nazivu datoteke iz privitka" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "maksimalna dob" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Navedeno u danima." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "vrsta privitka" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "akcija" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametar akcije" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "dodijeliti naslov od" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "dodijeli oznaku" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "dodijeliti ovu vrstu dokumenta" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "dodijeli dopisnika od" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "dodijelite ovom dopisniku" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/id_ID/LC_MESSAGES/django.po b/src/locale/id_ID/LC_MESSAGES/django.po new file mode 100644 index 000000000..d29cb50c5 --- /dev/null +++ b/src/locale/id_ID/LC_MESSAGES/django.po @@ -0,0 +1,914 @@ +msgid "" +msgstr "" +"Project-Id-Version: paperless-ngx\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-20 13:20\n" +"Last-Translator: \n" +"Language-Team: Indonesian\n" +"Language: id_ID\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: id\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 "Dokumen" + +#: documents/models.py:36 +msgid "None" +msgstr "Tidak ada" + +#: documents/models.py:37 +msgid "Any word" +msgstr "Kata apapun" + +#: documents/models.py:38 +msgid "All words" +msgstr "Semua kata" + +#: documents/models.py:39 +msgid "Exact match" +msgstr "Sama persis" + +#: documents/models.py:40 +msgid "Regular expression" +msgstr "Ekspresi reguler" + +#: documents/models.py:41 +msgid "Fuzzy word" +msgstr "Kata samar" + +#: documents/models.py:42 +msgid "Automatic" +msgstr "Otomatis" + +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 +msgid "name" +msgstr "nama" + +#: documents/models.py:47 +msgid "match" +msgstr "cocok" + +#: documents/models.py:50 +msgid "matching algorithm" +msgstr "mencocokkan algoritma" + +#: documents/models.py:55 +msgid "is insensitive" +msgstr "tidak sensitif" + +#: documents/models.py:71 +msgid "owner" +msgstr "pemilik" + +#: documents/models.py:81 documents/models.py:136 +msgid "correspondent" +msgstr "koresponden" + +#: documents/models.py:82 +msgid "correspondents" +msgstr "koresponden" + +#: documents/models.py:87 +msgid "color" +msgstr "warna" + +#: documents/models.py:90 +msgid "is inbox tag" +msgstr "tag kotak masuk" + +#: documents/models.py:93 +msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." +msgstr "Tandai tag ini sebagai tag kotak masuk: Semua dokumen yang baru akan di tag dengan tag kotak masuk." + +#: documents/models.py:99 +msgid "tag" +msgstr "tag" + +#: documents/models.py:100 documents/models.py:174 +msgid "tags" +msgstr "tandai" + +#: documents/models.py:105 documents/models.py:156 +msgid "document type" +msgstr "jenis dokumen" + +#: documents/models.py:106 +msgid "document types" +msgstr "jenis dokumen" + +#: documents/models.py:111 +msgid "path" +msgstr "lokasi" + +#: documents/models.py:117 documents/models.py:145 +msgid "storage path" +msgstr "lokasi penyimpanan" + +#: documents/models.py:118 +msgid "storage paths" +msgstr "lokasi penyimpanan" + +#: documents/models.py:126 +msgid "Unencrypted" +msgstr "Tidak terenkripsi" + +#: documents/models.py:127 +msgid "Encrypted with GNU Privacy Guard" +msgstr "Terenkripsi dengan GNU Privacy Guard" + +#: documents/models.py:148 +msgid "title" +msgstr "judul" + +#: documents/models.py:160 documents/models.py:624 +msgid "content" +msgstr "konten" + +#: documents/models.py:163 +msgid "The raw, text-only data of the document. This field is primarily used for searching." +msgstr "Raw, hanya data text dari dokumen. Bagian ini adalah bagian utama yang di gunakan untuk pencarian." + +#: documents/models.py:168 +msgid "mime type" +msgstr "mime type" + +#: documents/models.py:178 +msgid "checksum" +msgstr "checksum" + +#: documents/models.py:182 +msgid "The checksum of the original document." +msgstr "Checksum dari dokumen yang asli." + +#: documents/models.py:186 +msgid "archive checksum" +msgstr "checksum arsip" + +#: documents/models.py:191 +msgid "The checksum of the archived document." +msgstr "Checksum dari dokumen yang di arsip." + +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 +msgid "created" +msgstr "dibuat" + +#: documents/models.py:197 +msgid "modified" +msgstr "dimodifikasi" + +#: documents/models.py:204 +msgid "storage type" +msgstr "jenis penyimpanan" + +#: documents/models.py:212 +msgid "added" +msgstr "menambahkan" + +#: documents/models.py:219 +msgid "filename" +msgstr "nama berkas" + +#: documents/models.py:225 +msgid "Current filename in storage" +msgstr "Nama file saat ini yang tersimpan" + +#: documents/models.py:229 +msgid "archive filename" +msgstr "nama file arsip" + +#: documents/models.py:235 +msgid "Current archive filename in storage" +msgstr "Nama file arsip saat ini yang tersimpan" + +#: documents/models.py:239 +msgid "original filename" +msgstr "nama file asli" + +#: documents/models.py:245 +msgid "The original name of the file when it was uploaded" +msgstr "Nama awal file pada saat diunggah" + +#: documents/models.py:252 +msgid "archive serial number" +msgstr "nomor serial arsip" + +#: documents/models.py:262 +msgid "The position of this document in your physical document archive." +msgstr "Posisi dokumen ini pada arsip fisik dokumen yang di binder." + +#: documents/models.py:268 documents/models.py:641 +msgid "document" +msgstr "dokumen" + +#: documents/models.py:269 +msgid "documents" +msgstr "" + +#: documents/models.py:359 +msgid "debug" +msgstr "" + +#: documents/models.py:360 +msgid "information" +msgstr "informasi" + +#: documents/models.py:361 +msgid "warning" +msgstr "" + +#: documents/models.py:362 paperless_mail/models.py:276 +msgid "error" +msgstr "kesalahan" + +#: documents/models.py:363 +msgid "critical" +msgstr "" + +#: documents/models.py:366 +msgid "group" +msgstr "grup" + +#: documents/models.py:368 +msgid "message" +msgstr "pesan" + +#: documents/models.py:371 +msgid "level" +msgstr "" + +#: documents/models.py:380 +msgid "log" +msgstr "" + +#: documents/models.py:381 +msgid "logs" +msgstr "" + +#: documents/models.py:391 documents/models.py:446 +msgid "saved view" +msgstr "" + +#: documents/models.py:392 +msgid "saved views" +msgstr "" + +#: documents/models.py:397 +msgid "show on dashboard" +msgstr "tampilkan di dasbor" + +#: documents/models.py:400 +msgid "show in sidebar" +msgstr "" + +#: documents/models.py:404 +msgid "sort field" +msgstr "" + +#: documents/models.py:409 +msgid "sort reverse" +msgstr "" + +#: documents/models.py:414 +msgid "title contains" +msgstr "" + +#: documents/models.py:415 +msgid "content contains" +msgstr "" + +#: documents/models.py:416 +msgid "ASN is" +msgstr "" + +#: documents/models.py:417 +msgid "correspondent is" +msgstr "" + +#: documents/models.py:418 +msgid "document type is" +msgstr "" + +#: documents/models.py:419 +msgid "is in inbox" +msgstr "" + +#: documents/models.py:420 +msgid "has tag" +msgstr "" + +#: documents/models.py:421 +msgid "has any tag" +msgstr "" + +#: documents/models.py:422 +msgid "created before" +msgstr "" + +#: documents/models.py:423 +msgid "created after" +msgstr "" + +#: documents/models.py:424 +msgid "created year is" +msgstr "" + +#: documents/models.py:425 +msgid "created month is" +msgstr "" + +#: documents/models.py:426 +msgid "created day is" +msgstr "" + +#: documents/models.py:427 +msgid "added before" +msgstr "" + +#: documents/models.py:428 +msgid "added after" +msgstr "" + +#: documents/models.py:429 +msgid "modified before" +msgstr "" + +#: documents/models.py:430 +msgid "modified after" +msgstr "" + +#: documents/models.py:431 +msgid "does not have tag" +msgstr "" + +#: documents/models.py:432 +msgid "does not have ASN" +msgstr "" + +#: documents/models.py:433 +msgid "title or content contains" +msgstr "" + +#: documents/models.py:434 +msgid "fulltext query" +msgstr "" + +#: documents/models.py:435 +msgid "more like this" +msgstr "lebih seperti ini" + +#: documents/models.py:436 +msgid "has tags in" +msgstr "" + +#: documents/models.py:437 +msgid "ASN greater than" +msgstr "" + +#: documents/models.py:438 +msgid "ASN less than" +msgstr "" + +#: documents/models.py:439 +msgid "storage path is" +msgstr "" + +#: documents/models.py:449 +msgid "rule type" +msgstr "" + +#: documents/models.py:451 +msgid "value" +msgstr "nilai" + +#: documents/models.py:454 +msgid "filter rule" +msgstr "" + +#: documents/models.py:455 +msgid "filter rules" +msgstr "" + +#: documents/models.py:563 +msgid "Task ID" +msgstr "" + +#: documents/models.py:564 +msgid "Celery ID for the Task that was run" +msgstr "" + +#: documents/models.py:569 +msgid "Acknowledged" +msgstr "" + +#: documents/models.py:570 +msgid "If the task is acknowledged via the frontend or API" +msgstr "" + +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nama File Tugas" + +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "" + +#: documents/models.py:583 +msgid "Task Name" +msgstr "Nama Tugas" + +#: documents/models.py:584 +msgid "Name of the Task which was run" +msgstr "" + +#: documents/models.py:591 +msgid "Task State" +msgstr "" + +#: documents/models.py:592 +msgid "Current state of the task being run" +msgstr "" + +#: documents/models.py:597 +msgid "Created DateTime" +msgstr "" + +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" +msgstr "" + +#: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 +msgid "The data returned by the task" +msgstr "" + +#: documents/models.py:626 +msgid "Comment for the document" +msgstr "" + +#: documents/models.py:650 +msgid "user" +msgstr "" + +#: documents/models.py:655 +msgid "comment" +msgstr "" + +#: documents/models.py:656 +msgid "comments" +msgstr "" + +#: documents/serialisers.py:80 +#, python-format +msgid "Invalid regular expression: %(error)s" +msgstr "" + +#: documents/serialisers.py:320 +msgid "Invalid color." +msgstr "" + +#: documents/serialisers.py:700 +#, python-format +msgid "File type %(type)s not supported" +msgstr "" + +#: documents/serialisers.py:794 +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/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 +msgid "English (US)" +msgstr "" + +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 +msgid "Belarusian" +msgstr "" + +#: paperless/settings.py:524 +msgid "Czech" +msgstr "" + +#: paperless/settings.py:525 +msgid "Danish" +msgstr "" + +#: paperless/settings.py:526 +msgid "German" +msgstr "" + +#: paperless/settings.py:527 +msgid "English (GB)" +msgstr "" + +#: paperless/settings.py:528 +msgid "Spanish" +msgstr "" + +#: paperless/settings.py:529 +msgid "French" +msgstr "" + +#: paperless/settings.py:530 +msgid "Italian" +msgstr "" + +#: paperless/settings.py:531 +msgid "Luxembourgish" +msgstr "" + +#: paperless/settings.py:532 +msgid "Dutch" +msgstr "" + +#: paperless/settings.py:533 +msgid "Polish" +msgstr "" + +#: paperless/settings.py:534 +msgid "Portuguese (Brazil)" +msgstr "" + +#: paperless/settings.py:535 +msgid "Portuguese" +msgstr "" + +#: paperless/settings.py:536 +msgid "Romanian" +msgstr "" + +#: paperless/settings.py:537 +msgid "Russian" +msgstr "" + +#: paperless/settings.py:538 +msgid "Slovenian" +msgstr "" + +#: paperless/settings.py:539 +msgid "Serbian" +msgstr "" + +#: paperless/settings.py:540 +msgid "Swedish" +msgstr "" + +#: paperless/settings.py:541 +msgid "Turkish" +msgstr "" + +#: paperless/settings.py:542 +msgid "Chinese Simplified" +msgstr "" + +#: paperless/urls.py:169 +msgid "Paperless-ngx administration" +msgstr "" + +#: paperless_mail/admin.py:30 +msgid "Authentication" +msgstr "" + +#: paperless_mail/admin.py:31 +msgid "Advanced settings" +msgstr "" + +#: paperless_mail/admin.py:48 +msgid "Filter" +msgstr "" + +#: paperless_mail/admin.py:51 +msgid "Paperless will only process mails that match ALL of the filters given below." +msgstr "" + +#: paperless_mail/admin.py:66 +msgid "Actions" +msgstr "" + +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" + +#: paperless_mail/admin.py:77 +msgid "Metadata" +msgstr "" + +#: paperless_mail/admin.py:80 +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:10 +msgid "Paperless mail" +msgstr "" + +#: paperless_mail/models.py:9 +msgid "mail account" +msgstr "" + +#: paperless_mail/models.py:10 +msgid "mail accounts" +msgstr "" + +#: paperless_mail/models.py:13 +msgid "No encryption" +msgstr "" + +#: paperless_mail/models.py:14 +msgid "Use SSL" +msgstr "" + +#: paperless_mail/models.py:15 +msgid "Use STARTTLS" +msgstr "" + +#: paperless_mail/models.py:19 +msgid "IMAP server" +msgstr "" + +#: paperless_mail/models.py:22 +msgid "IMAP port" +msgstr "" + +#: paperless_mail/models.py:26 +msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." +msgstr "" + +#: paperless_mail/models.py:32 +msgid "IMAP security" +msgstr "" + +#: paperless_mail/models.py:37 +msgid "username" +msgstr "" + +#: paperless_mail/models.py:39 +msgid "password" +msgstr "" + +#: paperless_mail/models.py:42 +msgid "character set" +msgstr "" + +#: paperless_mail/models.py:46 +msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'." +msgstr "" + +#: paperless_mail/models.py:57 +msgid "mail rule" +msgstr "" + +#: paperless_mail/models.py:58 +msgid "mail rules" +msgstr "" + +#: paperless_mail/models.py:61 paperless_mail/models.py:69 +msgid "Only process attachments." +msgstr "" + +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 +msgid "Process all files, including 'inline' attachments." +msgstr "" + +#: paperless_mail/models.py:73 +msgid "Delete" +msgstr "" + +#: paperless_mail/models.py:74 +msgid "Move to specified folder" +msgstr "" + +#: paperless_mail/models.py:75 +msgid "Mark as read, don't process read mails" +msgstr "" + +#: paperless_mail/models.py:76 +msgid "Flag the mail, don't process flagged mails" +msgstr "" + +#: paperless_mail/models.py:77 +msgid "Tag the mail with specified tag, don't process tagged mails" +msgstr "" + +#: paperless_mail/models.py:80 +msgid "Use subject as title" +msgstr "" + +#: paperless_mail/models.py:81 +msgid "Use attachment filename as title" +msgstr "" + +#: paperless_mail/models.py:84 +msgid "Do not assign a correspondent" +msgstr "" + +#: paperless_mail/models.py:85 +msgid "Use mail address" +msgstr "" + +#: paperless_mail/models.py:86 +msgid "Use name (or mail address if not available)" +msgstr "" + +#: paperless_mail/models.py:87 +msgid "Use correspondent selected below" +msgstr "" + +#: paperless_mail/models.py:91 +msgid "order" +msgstr "" + +#: paperless_mail/models.py:97 +msgid "account" +msgstr "" + +#: paperless_mail/models.py:101 paperless_mail/models.py:231 +msgid "folder" +msgstr "" + +#: paperless_mail/models.py:105 +msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." +msgstr "" + +#: paperless_mail/models.py:111 +msgid "filter from" +msgstr "" + +#: paperless_mail/models.py:117 +msgid "filter subject" +msgstr "" + +#: paperless_mail/models.py:123 +msgid "filter body" +msgstr "" + +#: paperless_mail/models.py:130 +msgid "filter attachment filename" +msgstr "" + +#: paperless_mail/models.py:135 +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:142 +msgid "maximum age" +msgstr "" + +#: paperless_mail/models.py:144 +msgid "Specified in days." +msgstr "" + +#: paperless_mail/models.py:148 +msgid "attachment type" +msgstr "" + +#: paperless_mail/models.py:152 +msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." +msgstr "" + +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 +msgid "action" +msgstr "" + +#: paperless_mail/models.py:170 +msgid "action parameter" +msgstr "" + +#: paperless_mail/models.py:175 +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:183 +msgid "assign title from" +msgstr "" + +#: paperless_mail/models.py:191 +msgid "assign this tag" +msgstr "" + +#: paperless_mail/models.py:199 +msgid "assign this document type" +msgstr "" + +#: paperless_mail/models.py:203 +msgid "assign correspondent from" +msgstr "" + +#: paperless_mail/models.py:213 +msgid "assign this correspondent" +msgstr "" + +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/it_IT/LC_MESSAGES/django.po b/src/locale/it_IT/LC_MESSAGES/django.po index 91691bf1c..3f83988a0 100644 --- a/src/locale/it_IT/LC_MESSAGES/django.po +++ b/src/locale/it_IT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-12-05 11:26\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-17 09:11\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Documenti" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Niente" + +#: documents/models.py:37 msgid "Any word" msgstr "Qualsiasi parola" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Tutte le parole" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Corrispondenza esatta" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Espressione regolare" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Parole fuzzy" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatico" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nome" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "corrispondenza" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritmo di corrispondenza" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "non distingue maiuscole e minuscole" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "proprietario" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "corrispondente" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "corrispondenti" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "colore" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "è tag di arrivo" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "tag" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "tag" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tipo di documento" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipi di documento" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "percorso" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "percorso di archiviazione" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "percorsi di archiviazione" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Non criptato" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Criptato con GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titolo" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "contenuto" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "tipo mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "checksum" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Il checksum del documento originale." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "checksum dell'archivio" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Il checksum del documento archiviato." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "creato il" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificato il" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tipo di storage" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "aggiunto il" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nome del file" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nome del file corrente nello storage" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "Nome file in archivio" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Il nome del file nell'archiviazione" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "nome file originale" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Il nome originale del file quando è stato caricato" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "numero seriale dell'archivio" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Posizione di questo documento all'interno dell'archivio fisico." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "documento" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documenti" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "debug" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informazione" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "avvertimento" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "errore" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "critico" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "gruppo" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "messaggio" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "livello" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "logs" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "log" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "vista salvata" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "viste salvate" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "utente" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "mostra sul cruscotto" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "mostra nella barra laterale" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "campo di ordinamento" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "ordine invertito" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "il titolo contiene" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "il contenuto contiene" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN è" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "la corrispondenza è" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "il tipo di documento è" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "è in arrivo" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ha etichetta" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ha qualsiasi etichetta" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "creato prima del" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "creato dopo il" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "l'anno di creazione è" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "il mese di creazione è" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "il giorno di creazione è" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "aggiunto prima del" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "aggiunto dopo il" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificato prima del" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificato dopo" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "non ha tag" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "non ha ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "il titolo o il contenuto contiene" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "query fulltext" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "altro come questo" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "ha tag in" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN maggiore di" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN minore di" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "il percorso di archiviazione è" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tipo di regola" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valore" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "regola filtro" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "regole filtro" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID Attività" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Celery ID per l'attività che è stata eseguita" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Accettato" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Se l'attività è accettata tramite il frontend o API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Nome attività" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nome file attività" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Nome del file per il quale è stata eseguita l'attività" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Nome attività" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Nome dell'attività che è stata eseguita" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Positional Arguments dell'attività" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "Rappresentazione JSON dei named arguments utilizzati con l'attività" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Named Arguments dell'attività" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "Rappresentazione JSON dei named arguments utilizzati con l'attività" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Stato attività" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Stato attuale dell'attività in esecuzione" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" -msgstr "" +msgstr "Data di creazione" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" -msgstr "" +msgstr "Data di inizio" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" -msgstr "" +msgstr "Data completamento" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "Dati Risultanti" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "I dati restituiti dall'attività" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Commento per il documento" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "utente" + +#: documents/models.py:655 msgid "comment" msgstr "commento" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "commenti" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Espressione regolare non valida: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Colore non valido." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Il tipo di file %(type)s non è supportato" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Variabile non valida." @@ -556,323 +552,363 @@ msgstr "Password" msgid "Sign in" msgstr "Accedi" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Inglese (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabo" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Bielorusso" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Ceco" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danese" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Tedesco" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Inglese (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spagnolo" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francese" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiano" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Lussemburghese" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Olandese" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polacco" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portoghese (Brasile)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portoghese" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumeno" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russo" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Sloveno" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbo" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Svedese" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turco" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Cinese semplificato" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Amministrazione di Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autenticazione" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Impostazioni avanzate" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtro" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless-ng processerà solo la posta che rientra in TUTTI i filtri impostati." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Azioni" -#: 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 "L'azione che viene applicata alla email. Questa azione viene eseguita solo quando dei documenti vengono elaborati dalla email. Le email senza allegati vengono ignorate." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadati" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Email Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "account email" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "account email" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Nessuna crittografia" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Usa SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Usa STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Server IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Porta IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Sicurezza IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "nome utente" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "password" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "set di caratteri" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "regola email" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "regole email" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Elabora solo gli allegati." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Elabora tutti i file, inclusi gli allegati nel corpo." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Elimina" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Sposta in una cartella" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Segna come letto, non elaborare le email lette" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Contrassegna la email, non elaborare le email elaborate." -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Etichetta la posta con il tag specificato, non processare le email etichettate" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Usa oggetto come titolo" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Usa il nome dell'allegato come titolo" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Non assegnare un corrispondente" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Usa indirizzo email" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Usa nome (o indirizzo email se non disponibile)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Usa il corrispondente selezionato qui sotto" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "priorità" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "account" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "cartella" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtra da" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtra oggetto" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtra corpo" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtra nome allegato" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "età massima" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Definito in giorni." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tipo di allegato" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "ambito di applicazione" + +#: paperless_mail/models.py:164 msgid "action" msgstr "azione" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametro azione" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "assegna tittolo da" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "assegna questo tag" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "assegna questo tipo di documento" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "assegna corrispondente da" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "assegna questo corrispondente" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "oggetto" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "ricevuto" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "elaborato" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "stato" + diff --git a/src/locale/lb_LU/LC_MESSAGES/django.po b/src/locale/lb_LU/LC_MESSAGES/django.po index e7c1b2234..8e6b57995 100644 --- a/src/locale/lb_LU/LC_MESSAGES/django.po +++ b/src/locale/lb_LU/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:12\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Luxembourgish\n" "Language: lb_LU\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenter" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Iergendee Wuert" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "All d'Wierder" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Exakten Treffer" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regulären Ausdrock" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Ongenaut Wuert" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatesch" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "Numm" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "Zouweisungsmuster" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "Zouweisungsalgorithmus" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "Grouss-/Klengschreiwung ignoréieren" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "Korrespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "Korrespondenten" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "Faarf" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "Postaganks-Etikett" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "Etikett" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "Etiketten" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "Dokumententyp" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "Dokumententypen" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "Pfad" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "Späicherpfad" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "Späicherpfaden" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Onverschlësselt" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Verschlësselt mat GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "Titel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "Inhalt" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "MIME-Typ" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "Préifzomm" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "D'Préifzomm vum Original-Dokument." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "Archiv-Préifzomm" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "D'Préifzomm vum archivéierten Dokument." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "erstallt" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "verännert" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "Späichertyp" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "derbäigesat" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "Fichiersnumm" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Aktuellen Dateinumm am Späicher" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "Archiv-Dateinumm" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Aktuellen Dateinumm am Archiv" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "Archiv-Seriennummer" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "D'Positioun vun dësem Dokument am physeschen Dokumentenarchiv." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "Dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "Dokumenter" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "Fehlersiich" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "Informatioun" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "Warnung" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "Feeler" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritesch" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "Grupp" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "Message" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "Niveau" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "Protokoll" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "Protokoller" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "Gespäichert Usiicht" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "Gespäichert Usiichten" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "Benotzer" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "Op der Startsäit uweisen" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "An der Säiteleescht uweisen" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "Zortéierfeld" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "ëmgedréint zortéieren" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "Titel enthält" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "Inhalt enthält" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN ass" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "Korrespondent ass" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "Dokumententyp ass" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "ass am Postagank" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "huet Etikett" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "huet iergendeng Etikett" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "erstallt virun" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "erstallt no" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "Erstellungsjoer ass" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "Erstellungsmount ass" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "Erstellungsdag ass" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "dobäigesat virun" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "dobäigesat no" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "verännert virun" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "verännert no" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "huet dës Etikett net" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "huet keng ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "Titel oder Inhalt enthalen" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "Volltextsich" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "ähnlech Dokumenter" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "huet Etiketten an" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "Reegeltyp" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "Wäert" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "Filterreegel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "Filterreegelen" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "Benotzer" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ongëltege regulären Ausdrock: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ongëlteg Faarf." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Fichierstyp %(type)s net ënnerstëtzt" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Ongëlteg Zeechen detektéiert." @@ -556,323 +552,363 @@ msgstr "Passwuert" msgid "Sign in" msgstr "Umellen" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Englesch (USA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Belarusesch" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tschechesch" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dänesch" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Däitsch" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Englesch (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spuenesch" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Franséisch" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italienesch" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Lëtzebuergesch" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Hollännesch" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polnesch" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugisesch (Brasilien)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugisesch" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumänesch" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russesch" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slowenesch" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbesch" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Schwedesch" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Tierkesch" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chinesesch (Vereinfacht)" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx-Administratioun" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Authentifizéierung" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Erweidert Astellungen" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless wäert nëmmen E-Maile veraarbechten, fir déi all déi hei definéiert Filteren zoutreffen." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Aktiounen" -#: 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 "D'Aktioun, déi op E-Mailen applizéiert sill ginn. Dës Aktioun gëtt just ausgefouert, wann Dokumenter aus der E-Mail veraarbecht goufen. E-Mailen ouni Unhank bleiwe komplett onberéiert." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadaten" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless E-Mail" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "Mailkont" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "Mailkonten" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Keng Verschlësselung" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "SSL benotzen" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "STARTTLS benotzen" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP-Server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP-Port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP-Sécherheet" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "Benotzernumm" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "Passwuert" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Zeechesaz" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "E-Mail-Reegel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "E-Mail-Reegelen" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Just Unhäng veraarbechten." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "All d'Fichiere veraarbechten, inklusiv \"inline\"-Unhäng." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Läschen" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "An e virdefinéierten Dossier réckelen" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Als gelies markéieren, gelies Mailen net traitéieren" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Sujet als TItel notzen" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Numm vum Dateiunhank als Titel benotzen" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Kee Korrespondent zouweisen" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "E-Mail-Adress benotzen" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Korrespondent benotzen deen hei drënner ausgewielt ass" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "Reiefolleg" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "Kont" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "Dossier" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "Ofsenderfilter" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "Sujets-Filter" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "Contenu-Filter" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "Filter fir den Numm vum Unhank" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "Maximalen Alter" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "An Deeg." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "Fichierstyp vum Unhank" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "Aktioun" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "Parameter fir Aktioun" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "Titel zouweisen aus" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "dës Etikett zouweisen" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "Dësen Dokumententyp zouweisen" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "Korrespondent zouweisen aus" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "Dëse Korrespondent zouweisen" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/nl_NL/LC_MESSAGES/django.po b/src/locale/nl_NL/LC_MESSAGES/django.po index aa2b20fdd..71e2b8493 100644 --- a/src/locale/nl_NL/LC_MESSAGES/django.po +++ b/src/locale/nl_NL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2023-01-27 19:22\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-05 23:45\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Documenten" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Geen" + +#: documents/models.py:37 msgid "Any word" msgstr "Elk woord" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Alle woorden" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Exacte overeenkomst" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Reguliere expressie" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Gelijkaardig woord" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatisch" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "naam" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "Overeenkomst" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "Algoritme voor het bepalen van de overeenkomst" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "is niet hoofdlettergevoelig" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "eigenaar" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "correspondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "correspondenten" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "Kleur" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "is \"Postvak in\"-label" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "label" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "labels" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "documenttype" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "documenttypen" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "pad" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "opslag pad" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "opslag paden" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Niet versleuteld" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Versleuteld met GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "inhoud" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mimetype" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "checksum" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "De checksum van het oorspronkelijke document." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "archief checksum" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "De checksum van het gearchiveerde document." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "aangemaakt" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "gewijzigd" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "type opslag" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "toegevoegd" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "bestandsnaam" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Huidige bestandsnaam in opslag" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "Bestandsnaam in archief" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Huidige bestandsnaam in archief" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "originele bestandsnaam" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "De originele naam van het bestand wanneer het werd geüpload" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "serienummer in archief" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "De positie van dit document in je fysieke documentenarchief." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "document" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documenten" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "debug" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informatie" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "waarschuwing" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "fout" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritisch" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "groep" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "bericht" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "niveau" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "bericht" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "berichten" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "opgeslagen view" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "opgeslagen views" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "gebruiker" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "weergeven op dashboard" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "weergeven in zijbalk" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sorteerveld" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "omgekeerd sorteren" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "titel bevat" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "inhoud bevat" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN is" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "correspondent is" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "documenttype is" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "zit in \"Postvak in\"" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "heeft label" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "heeft één van de labels" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "aangemaakt voor" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "aangemaakt na" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "aangemaakt jaar is" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "aangemaakte maand is" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "aangemaakte dag is" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "toegevoegd voor" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "toegevoegd na" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "gewijzigd voor" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "gewijzigd na" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "heeft geen label" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "heeft geen ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "titel of inhoud bevat" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "inhoud doorzoeken" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "meer zoals dit" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "heeft tags in" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN groter dan" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN kleiner dan" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "opslagpad is" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "type regel" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "waarde" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filterregel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filterregels" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "Taak ID" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Celery ID voor de taak die werd uitgevoerd" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Bevestigd" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Of de taak is bevestigd via de frontend of de API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Taaknaam" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Bestandsnaam taak " -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Naam van het bestand waarvoor de taak werd uitgevoerd" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Taaknaam" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Naam van de uitgevoerde taak" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Positionele argumenten voor taak" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "JSON weergave van de positionele argumenten die gebruikt worden voor de taak" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Argumenten met naam voor taak" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "JSON weergave van de argumenten met naam die gebruikt worden voor de taak" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Taakstatus" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Huidige status van de taak die wordt uitgevoerd" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Aangemaakt DateTime" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "Datetime veld wanneer het resultaat van de taak werd aangemaakt in UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Gestart DateTime" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "Datetime veld wanneer de taak werd gestart in UTC" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "Voltooid DateTime" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "Datetime veld wanneer de taak werd voltooid in UTC" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "Resultaatgegevens" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Gegevens geretourneerd door de taak" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Commentaar op het document" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "gebruiker" + +#: documents/models.py:655 msgid "comment" msgstr "opmerking" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "opmerkingen" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ongeldige reguliere expressie: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ongeldig kleur." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Bestandstype %(type)s niet ondersteund" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Ongeldige variabele ontdekt." @@ -556,323 +552,363 @@ msgstr "Wachtwoord" msgid "Sign in" msgstr "Aanmelden" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engels (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabisch" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Wit-Russisch" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tsjechisch" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Deens" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Duits" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engels (Brits)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spaans" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Frans" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiaans" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburgs" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Nederlands" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Pools" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugees (Brazilië)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugees" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Roemeens" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russisch" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Sloveens" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Servisch" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Zweeds" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turks" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chinees (vereenvoudigd)" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administratie" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Authenticatie" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Geavanceerde instellingen" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless verwerkt alleen e-mails die voldoen aan ALLE onderstaande filters." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Acties" -#: 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 "De actie die wordt toegepast op de mail. Deze actie wordt alleen uitgevoerd wanneer documenten verwerkt werden uit de mail. Mails zonder bijlage blijven onaangeroerd." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadata" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless email" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "email account" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "email accounts" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Geen versleuteling" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Gebruik SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Gebruik STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP-server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP-poort" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP-beveiliging" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "gebruikersnaam" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "wachtwoord" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Tekenset" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "email-regel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "email-regels" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Alleen bijlagen verwerken" -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Verwerk alle bestanden, inclusief 'inline' bijlagen." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Verwijder" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Verplaats naar gegeven map" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Markeer als gelezen, verwerk geen gelezen mails" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Markeer de mail, verwerk geen mails met markering" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Tag de mail met de opgegeven tag, verwerk geen getagde mails" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Gebruik onderwerp als titel" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Gebruik naam van bijlage als titel" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Wijs geen correspondent toe" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Gebruik het email-adres" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Gebruik de naam, en anders het email-adres" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Gebruik de hieronder aangeduide correspondent" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "volgorde" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "account" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "map" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Submappen moeten gescheiden worden door een scheidingsteken, vaak een punt ('.') of slash ('/'), maar het varieert per mailserver." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filter afzender" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filter onderwerp" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filter inhoud" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "Filter bestandsnaam van bijlage" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "Maximale leeftijd" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Aangegeven in dagen" -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "Type bijlage" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "actie" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "actie parameters" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "wijs titel toe van" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "wijs dit etiket toe" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "wijs dit documenttype toe" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "wijs correspondent toe van" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "wijs deze correspondent toe" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "onderwerp" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "ontvangen" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "verwerkt" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "status" + diff --git a/src/locale/no_NO/LC_MESSAGES/django.po b/src/locale/no_NO/LC_MESSAGES/django.po index edd2901c2..7b976009d 100644 --- a/src/locale/no_NO/LC_MESSAGES/django.po +++ b/src/locale/no_NO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-29 08:29\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-09 17:42\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenter" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Hvilket som helst ord" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Alle ord" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Eksakt match" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regulære uttrykk" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Fuzzy word" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "navn" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "treff" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "samsvarende algoritme" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "er insensitiv" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "eier" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korrespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korrespondenter" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "farge" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "er innboks tag" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "Markerer dette merket som en innboks-tag: Alle nybrukte dokumenter vil bli merket med innboks-tagger." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "tagg" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "tagger" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "dokument type" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "dokumenttyper" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "sti" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "lagringssti" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "lagringsveier" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Ukryptert" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Kryptert med GNU Personvernvakt" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "tittel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "innhold" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "Raw, tekstbare data fra dokumentet. Dette feltet brukes primært for søking." -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime type" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "sjekksum" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Sjekksummen av det opprinnelige dokumentet." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arkiv sjekksum" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Sjekksummen av det arkiverte dokumentet." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "opprettet" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "endret" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "lagringstype" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "lagt til" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "filnavn" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Gjeldende filnavn i lagring" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "arkiver filnavn" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Gjeldende arkiv filnavn i lagring" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "opprinnelig filnavn" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Det opprinnelige filnavnet da den ble lastet opp" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arkiver serienummer" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Dokumentets posisjon i ditt fysiske dokumentarkiv." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenter" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "feilsøk" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informasjon" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "advarsel" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "feil" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritisk" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "gruppe" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "melding" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivå" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "Logg" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logger" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "lagret visning" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "lagrede visninger" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "bruker" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "vis på dashbordet" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "vis i sidestolpen" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sorter felt" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "sorter på baksiden" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "tittelen inneholder" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "innholdet inneholder" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN er" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "tilsvarendet er" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "dokumenttype er" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "er i innboksen" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "har tagg" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "har en tag" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "opprettet før" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "opprettet etter" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "opprettet år er" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "opprettet måned er" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "opprettet dag er" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "lagt til før" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "lagt til etter" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "endret før" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "endret etter" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "har ikke tagg" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "har ikke ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "tittel eller innhold inneholder" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "full tekst spørring" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mer som dette" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "har tags i" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN større enn" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN mindre enn" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "lagringssti er" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "Type regel" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "verdi" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtrer regel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtrer regler" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "Oppgave ID" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Celery ID for oppgaven som ble kjørt" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Bekreftet" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Hvis oppgaven bekreftes via frontend eller API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Oppgavenavn" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Navn på filen som oppgaven ble kjørt for" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Oppgavenavn" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Navn på Oppgaven som ble kjørt" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" -msgstr "" +msgstr "Opprettet DatoTid" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" -msgstr "" +msgstr "Startet DatoTid" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "bruker" + +#: documents/models.py:655 msgid "comment" -msgstr "" +msgstr "kommentar" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" -msgstr "" +msgstr "kommentarer" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ugyldig regulært uttrykk: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ugyldig farge." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Filtype %(type)s støttes ikke" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Ugyldig variabel oppdaget." @@ -556,323 +552,363 @@ msgstr "Passord" msgid "Sign in" msgstr "Logg inn" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engelsk (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Arabisk" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Hviterussisk" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tsjekkisk" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dansk" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Tysk" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engelsk (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spansk" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Fransk" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiensk" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxembourgsk" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Nederlandsk" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polsk" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugisisk (Brasil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugisisk" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumensk" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russisk" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovenian" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbisk" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Svensk" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Tyrkisk" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Kinesisk forenklet" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx-administrasjon" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentisering" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Avanserte innstillinger" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtrer" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless vil kun behandle e-poster som samsvarer med ALLE filtrene som er gitt nedenfor." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Handlinger" -#: 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 "Handlingen som brukes på e-posten. Denne handlingen blir bare utført når dokumenter blir forbrukt av e-posten. Mailer uten vedlegg forblir helt urørte." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Nøkkeldata" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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 "Tilordne metadata til dokumenter som brukes fra denne regelen automatisk. Hvis du ikke tilordner etiketter, typer eller korrespondenter her, vil papirløs fremdeles behandle alle matchende regler som du har definert." -#: paperless_mail/apps.py:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperløst e-post" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "e-post konto" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "e-post kontoer" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Ingen datakryptering" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Bruk SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Bruk STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP tjener" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "Dette er vanligvis 143 for ukrypterte og STARTTLS-tilkoblinger, og 993 for SSL-tilkoblinger." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP sikkerhet" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "brukernavn" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "passord" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "tegnsett" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'." msgstr "Tegnet som skal brukes ved kommunikasjon med e-posttjeneren, som for eksempel 'UTF-8' eller 'US-ASCII'." -#: paperless_mail/models.py:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "e-post regel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "Epost regler" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Bare behandle vedlegg." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Behandle alle filer, inkludert \"inline\"-vedlegg." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Slett" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Flytt til angitt mappe" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Merk som lest og ikke behandle e-post" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Marker posten, ikke behandle flaggede meldinger" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Merk e-post med angitte tag, ikke bruk merkede meldinger" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Bruk emne som tittel" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Bruk vedlagte filnavn som tittel" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Ikke tildel en korrespondent" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Bruk e-postadresse" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Bruk navn (eller e-postadresse hvis det ikke er tilgjengelig)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Bruk tilsvarende valgt nedenfor" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordre" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "konto" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "mappe" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Undermapper må være atskilt av en skilletegn, ofte en punktum ('.') eller skråstrek ('/'), men den varierer fra e-postserver." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrer fra" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrer emne" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrer innhold" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrer vedlagte filnavn" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Bare bruke dokumenter som samsvarer med dette filnavnet hvis angitt. Jokertegn som *.pdf eller *faktura* er tillatt. Saksfortegnet." -#: paperless_mail/models.py:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "maksimal alder" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Spesifisert i dager" -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "vedlegg type" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "Innebygde vedlegg inkluderer innebygde bilder, så det er best å kombinere dette alternativet med et filter." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "handling" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parameter for handling" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 "Ytterligere parameter for handlingen valgt ovenfor, dvs. målmappen for flytting til mappehandling. Undermapper må separeres med punkter." -#: paperless_mail/models.py:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "tilordne tittel fra" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "tilordne denne taggen" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "tilordne denne dokumenttypen" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "Tildel korrespondent fra" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "Tildel denne korrespondenten" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "emne" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "mottatt" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "behandlet" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "status" + diff --git a/src/locale/pl_PL/LC_MESSAGES/django.po b/src/locale/pl_PL/LC_MESSAGES/django.po index 4167a48ec..73aea2eff 100644 --- a/src/locale/pl_PL/LC_MESSAGES/django.po +++ b/src/locale/pl_PL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-28 16:30\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-04-13 23:41\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenty" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Brak" + +#: documents/models.py:37 msgid "Any word" msgstr "Dowolne słowo" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Wszystkie słowa" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Dokładne dopasowanie" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Wyrażenie regularne" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Dopasowanie rozmyte" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatyczny" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nazwa" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "dopasowanie" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algorytm dopasowania" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "bez rozróżniania wielkości znaków" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "właściciel" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korespondenci" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "kolor" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "jest tagiem skrzynki odbiorczej" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "znacznik" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "tagi" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "typ dokumentu" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "typy dokumentów" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "ścieżka" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "ścieżka przechowywania" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "ścieżki składowania" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Niezaszyfrowane" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Zaszyfrowane przy użyciu GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "tytuł" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "zawartość" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime type" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "suma kontrolna" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Suma kontrolna oryginalnego dokumentu." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "suma kontrolna archiwum" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Suma kontrolna zarchiwizowanego dokumentu." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "utworzono" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "zmodyfikowano" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "typ przechowywania" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "dodano" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nazwa pliku" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Aktualna nazwa pliku w pamięci" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nazwa pliku archiwum" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Aktualna nazwa pliku archiwum w pamięci" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "oryginalna nazwa pliku" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Oryginalna nazwa pliku, gdy został przesłany" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "numer seryjny archiwum" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Pozycja tego dokumentu w archiwum dokumentów fizycznych." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenty" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "debugowanie" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informacja" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "ostrzeżenie" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "błąd" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "krytyczne" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupa" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "wiadomość" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "poziom" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "log" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logi" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "zapisany widok" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "zapisane widoki" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "użytkownik" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "pokaż na stronie głównej" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "pokaż na pasku bocznym" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "pole sortowania" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "sortuj malejąco" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "tytuł zawiera" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "zawartość zawiera" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "numer archiwum jest" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "korespondentem jest" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "typ dokumentu jest" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "jest w skrzynce odbiorczej" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ma tag" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ma dowolny tag" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "utworzony przed" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "utworzony po" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "rok utworzenia to" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "miesiąc utworzenia to" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dzień utworzenia to" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "dodany przed" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "dodany po" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "zmodyfikowany przed" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "zmodyfikowany po" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "nie ma tagu" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "nie ma numeru archiwum" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "tytuł lub zawartość zawiera" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "zapytanie pełnotekstowe" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "podobne dokumenty" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "ma znaczniki w" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN większy niż" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN mniejszy niż" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "ścieżką przechowywania jest" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "typ reguły" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "wartość" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "reguła filtrowania" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "reguły filtrowania" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID zadania" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "ID Celery dla zadania, które zostało uruchomione" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Potwierdzono" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Jeśli zadanie jest potwierdzone przez frontend lub API" -#: documents/models.py:549 documents/models.py:556 +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Nazwa Pliku Zadania" + +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Nazwa pliku, na którym zostało wykonane Zadanie" + +#: documents/models.py:583 msgid "Task Name" msgstr "Nazwa zadania" -#: documents/models.py:550 -msgid "Name of the file which the Task was run for" -msgstr "" - -#: documents/models.py:557 +#: documents/models.py:584 msgid "Name of the Task which was run" -msgstr "" +msgstr "Nazwa uruchomionego Zadania" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Stan zadania" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" -msgstr "" +msgstr "Aktualny stan zadania" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" -msgstr "" +msgstr "Data i czas utworzenia" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Dane zwrócone przez zadanie" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Komentarz do dokumentu" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "użytkownik" + +#: documents/models.py:655 msgid "comment" msgstr "komentarz" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "komentarze" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Nieprawidłowe wyrażenie regularne: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Nieprawidłowy kolor." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Typ pliku %(type)s nie jest obsługiwany" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Wykryto nieprawidłową zmienną." @@ -556,323 +552,363 @@ msgstr "Hasło" msgid "Sign in" msgstr "Zaloguj się" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Angielski (USA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "arabski" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Białoruski" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Czeski" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Duński" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Niemiecki" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Angielski (Wielka Brytania)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Hiszpański" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francuski" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Włoski" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luksemburski" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Holenderski" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polski" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazylia)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumuński" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Rosyjski" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Słoweński" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Serbski" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Szwedzki" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turecki" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chiński uproszczony" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administracja Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Uwierzytelnianie" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Ustawienia zaawansowane" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtry" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless przetworzy tylko wiadomości pasujące do WSZYSTKICH filtrów podanych poniżej." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Akcje" -#: 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 "Akcja zastosowana do wiadomości. Ta akcja jest wykonywana tylko wtedy, gdy dokumenty zostały przetworzone z wiadomości. Poczta bez załączników pozostanie całkowicie niezmieniona." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadane" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Poczta Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "konto pocztowe" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "konta pocztowe" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Brak szyfrowania" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Użyj SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Użyj STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Serwer IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Port IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Zabezpieczenia IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "nazwa użytkownika" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "hasło" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Kodowanie" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "reguła wiadomości" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "reguły wiadomości" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Przetwarzaj tylko załączniki." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Przetwarzaj wszystkie pliki, łącznie z załącznikami „inline”." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Usuń" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Przenieś do określonego folderu" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Oznacz jako przeczytane, nie przetwarzaj przeczytanych wiadomości" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Oznacz wiadomość, nie przetwarzaj oznaczonych wiadomości" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Oznacz pocztę z podanym tagiem, nie przetwarzaj otagowanych wiadomości" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Użyj tematu jako tytułu" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Użyj nazwy pliku załącznika jako tytułu" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Nie przypisuj korespondenta" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Użyj adresu e-mail" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Użyj korespondenta wybranego poniżej" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "kolejność" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "konto" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "katalog" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtruj po nadawcy" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtruj po temacie" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtruj po treści" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtruj po nazwie pliku załącznika" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "nie starsze niż" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "dni." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "typ załącznika" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "akcja" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametr akcji" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "przypisz tytuł" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "przypisz ten tag" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "przypisz ten typ dokumentu" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "przypisz korespondenta z" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "przypisz tego korespondenta" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "temat" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "otrzymano" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "przetworzono" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "status" + diff --git a/src/locale/pt_BR/LC_MESSAGES/django.po b/src/locale/pt_BR/LC_MESSAGES/django.po index 1be9d6460..bf025c510 100644 --- a/src/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-04 19:07\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -21,492 +21,488 @@ msgstr "" msgid "Documents" msgstr "Documentos" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Nenhum" + +#: documents/models.py:37 msgid "Any word" msgstr "Qualquer palavra" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Todas as palavras" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Detecção exata" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Expressão regular" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Palavra difusa (fuzzy)" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automático" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nome" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "detecção" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritmo de detecção" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "diferencia maiúsculas de minúsculas" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "proprietário" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "correspondente" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "correspondentes" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "cor" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "é etiqueta caixa de entrada" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etiqueta" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiquetas" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tipo de documento" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipos de documento" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" -msgstr "" +msgstr "caminho" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" -msgstr "" +msgstr "caminho de armazenamento" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" -msgstr "" +msgstr "caminhos de armazenamento" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Não encriptado" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Encriptado com GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "título" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "conteúdo" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "tipo mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "some de verificação" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "A soma de verificação original do documento." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "Soma de verificação de arquivamento." -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "A soma de verificação do documento arquivado." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "criado" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificado" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tipo de armazenamento" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "adicionado" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nome do arquivo" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nome do arquivo atual armazenado" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nome do arquivo para arquivamento" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nome do arquivo para arquivamento armazenado" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" -msgstr "" +msgstr "nome do arquivo original" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" -msgstr "" +msgstr "O nome original do arquivo quando ele foi carregado" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "número de sério de arquivamento" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "documento" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documentos" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "debug" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informação" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "aviso" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "erro" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "crítico" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupo" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "mensagem" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nível" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "log" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logs" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "visualização" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "visualizações" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "usuário" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "exibir no painel de controle" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "exibir no painel lateral" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "ordenar campo" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "odernar reverso" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "título contém" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "conteúdo contém" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "NSA é" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "correspondente é" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "tipo de documento é" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "é caixa de entrada" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "contém etiqueta" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "contém qualquer etiqueta" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "criado antes de" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "criado depois de" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "ano de criação é" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "mês de criação é" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dia de criação é" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "adicionado antes de" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "adicionado depois de" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificado antes de" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificado depois de" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "não tem etiqueta" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "não tem NSA" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "título ou conteúdo contém" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "pesquisa de texto completo" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mais como este" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "contém etiqueta em" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "" +msgstr "caminho de armazenamento é" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tipo de regra" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valor" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "regra de filtragem" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "regras de filtragem" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "usuário" + +#: documents/models.py:655 msgid "comment" -msgstr "" +msgstr "comentário" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" -msgstr "" +msgstr "comentários" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Expressão regular inválida: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Cor inválida." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de arquivo %(type)s não suportado" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." -msgstr "" +msgstr "Variável inválida detectada." #: documents/templates/index.html:78 msgid "Paperless-ngx is loading..." @@ -514,11 +510,11 @@ msgstr "Paperless-ngx está carregando..." #: documents/templates/index.html:79 msgid "Still here?! Hmm, something might be wrong." -msgstr "" +msgstr "Ainda aqui?! Hmm, algo pode estar errado." #: documents/templates/index.html:79 msgid "Here's a link to the docs." -msgstr "" +msgstr "Aqui está um link para a documentação." #: documents/templates/registration/logged_out.html:14 msgid "Paperless-ngx signed out" @@ -556,324 +552,364 @@ msgstr "Senha" msgid "Sign in" msgstr "Entrar" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Inglês (EUA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Tcheco" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dinamarquês" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Alemão" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Inglês (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Espanhol" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francês" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiano" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburguês" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Holandês" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polonês" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Português (Brasil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Português" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Romeno" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russo" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Sueco" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administração do Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autenticação" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Configurações avançadas" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtro" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless processará somente e-mails que se encaixam em TODOS os filtros abaixo." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Ações" -#: 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 "A ação se aplica ao e-mail. Essa ação só é executada quando documentos foram consumidos do e-mail. E-mails sem anexos permanecerão intactos." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadados" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "conta de e-mail" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "contas de e-mail" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Sem encriptação" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Usar SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Usar STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Servidor IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Porta IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "segurança IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "usuário" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "senha" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Conjunto de caracteres" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "regra de e-mail" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "regras de e-mail" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Processar somente anexos." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Processar todos os arquivos, incluindo anexos 'inline'." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Excluir" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Mover para pasta especificada" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Marcar como lido, não processar e-mails lidos" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Usar assunto como título" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Usar nome do arquivo anexo como título" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Não atribuir um correspondente" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Usar endereço de e-mail" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Usar correspondente selecionado abaixo" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordem" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "conta" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "pasta" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrar de" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrar assunto" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrar corpo" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrar nome do arquivo anexo" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "idade máxima" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Especificada em dias." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tipo de anexo" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "ação" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parâmetro da ação" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "atribuir título de" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "atribuir esta etiqueta" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "atribuir este tipo de documento" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "atribuir correspondente de" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "atribuir este correspondente" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "assunto" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "recebido" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "processado" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "status" + diff --git a/src/locale/pt_PT/LC_MESSAGES/django.po b/src/locale/pt_PT/LC_MESSAGES/django.po index 03a3486e5..38489365f 100644 --- a/src/locale/pt_PT/LC_MESSAGES/django.po +++ b/src/locale/pt_PT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-12-30 15:36\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Documentos" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Qualquer palavra" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Todas as palavras" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Detecção exata" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Expressão regular" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Palavra difusa (fuzzy)" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automático" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nome" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "correspondência" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritmo correspondente" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "é insensível" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "correspondente" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "correspondentes" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "cor" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "é etiqueta de novo" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etiqueta" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiquetas" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tipo de documento" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipos de documento" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "caminho" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Não encriptado" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Encriptado com GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "título" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "conteúdo" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "tipo mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "soma de verificação" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "A soma de verificação do documento original." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arquivar soma de verificação" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "A soma de verificação do documento arquivado." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "criado" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificado" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tipo de armazenamento" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "adicionado" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nome de ficheiro" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nome do arquivo atual no armazenamento" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nome do ficheiro de arquivo" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nome do arquivo atual em no armazenamento" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "numero de série de arquivo" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "documento" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documentos" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "depurar" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informação" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "aviso" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "erro" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "crítico" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupo" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "mensagem" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nível" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "registo" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "registos" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "vista guardada" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "vistas guardadas" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "utilizador" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "exibir no painel de controlo" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "mostrar na navegação lateral" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "ordenar campo" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "ordenar inversamente" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "o título contém" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "o conteúdo contém" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "O NSA é" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "o correspondente é" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "o tipo de documento é" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "está na entrada" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "tem etiqueta" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "tem qualquer etiqueta" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "criado antes" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "criado depois" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "ano criada é" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "mês criado é" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dia criado é" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "adicionada antes" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "adicionado depois de" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificado antes de" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificado depois de" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "não tem etiqueta" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "não possui um NSA" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "título ou conteúdo contém" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "consulta de texto completo" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mais como este" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "tem etiquetas em" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tipo de regra" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valor" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "regra de filtragem" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "regras de filtragem" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID da tarefa" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Nome da Tarefa" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Nome da Tarefa" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "utilizador" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Expressão regular inválida: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Cor invalida." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de arquivo %(type)s não suportado" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "" @@ -556,323 +552,363 @@ msgstr "Palavra-passe" msgid "Sign in" msgstr "Iniciar sessão" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Inglês (EUA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Checo" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Dinamarquês" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Deutsch" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Inglês (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Espanhol" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Français" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiano" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburguês" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Nederlandse" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polaco" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Português (Brasil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Português" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Romeno" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Russo" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Sérvio" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Sueco" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turco" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Chinês Simplificado" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administração do Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autenticação" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Definições avançadas" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtro" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "O Paperless apenas irá processar emails que coincidem com TODOS os filtros dados abaixo." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Ações" -#: 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 "A ação aplicada a correio. Esta ação apenas será efetuada com documentos que tenham sido consumidos através do correio. E-mails sem anexos permanecerão intactos." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadados" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Correio Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "conta de email" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "contas de email" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Sem encriptação" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Utilizar SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Utilizar STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Servidor IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Porto IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Segurança IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "nome de utilizador" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "palavra-passe" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "conjunto de caracteres" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "regra de correio" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "regras de correio" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Processar anexos apenas." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Processar todos os ficheiros, incluindo ficheiros 'embutidos (inline)'." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Excluir" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Mover para uma diretoria específica" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Marcar como lido, não processar emails lidos" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Marcar o email, não processar emails marcados" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Utilizar o assunto como título" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Utilizar o nome do anexo como título" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Não atribuir um correspondente" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Utilizar o endereço de email" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Utilizar o correspondente selecionado abaixo" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordem" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "conta" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "directoria" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrar de" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrar assunto" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrar corpo" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrar nome do arquivo anexo" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "idade máxima" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Especificado em dias." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tipo de anexo" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "ação" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parâmetro de ação" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "atribuir titulo de" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "atribuir esta etiqueta" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "atribuir este tipo de documento" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "atribuir correspondente de" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "atribuir este correspondente" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/ro_RO/LC_MESSAGES/django.po b/src/locale/ro_RO/LC_MESSAGES/django.po index 017ac9144..41815c2cc 100644 --- a/src/locale/ro_RO/LC_MESSAGES/django.po +++ b/src/locale/ro_RO/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:12\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Documente" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Orice cuvânt" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Toate cuvintele" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Potrivire exactă" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Expresie regulată" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Mod neatent" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automat" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "nume" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "potrivire" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritm de potrivire" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "nu ține cont de majuscule" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "corespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "corespondenți" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "culoare" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "este etichetă inbox" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etichetă" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etichete" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tip de document" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipuri de document" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Necriptat" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Criptat cu GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titlu" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "conținut" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "tip MIME" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "sumă de control" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Suma de control a documentului original." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "suma de control a arhivei" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Suma de control a documentului arhivat." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "creat" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "modificat" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tip de stocare" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "adăugat" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "nume fișier" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Numele curent al fișierului stocat" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "nume fișier arhiva" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Numele curent al arhivei stocate" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "număr serial in arhiva" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Poziția acestui document in arhiva fizica." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "document" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "documente" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "depanare" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informații" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "avertizare" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "eroare" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "critic" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grup" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "mesaj" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivel" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "jurnal" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "jurnale" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "vizualizare" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "vizualizări" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "utilizator" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "afișează pe tabloul de bord" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "afișează in bara laterala" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sortează camp" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "sortează invers" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "titlul conține" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "conținutul conține" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "Avizul prealabil de expediție este" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "corespondentul este" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "tipul documentului este" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "este în inbox" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "are eticheta" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "are orice eticheta" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "creat înainte de" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "creat după" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "anul creării este" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "luna creării este" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "ziua creării este" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "adăugat înainte de" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "adăugat după" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "modificat înainte de" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "modificat după" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "nu are etichetă" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "nu are aviz prealabil de expediție" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "titlul sau conținutul conține" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "query fulltext" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mai multe ca aceasta" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "are etichete în" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tip de regula" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "valoare" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "regulă de filtrare" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "reguli de filtrare" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "utilizator" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Expresie regulată invalida: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Culoare invalidă." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Tip de fișier %(type)s nesuportat" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "" @@ -556,323 +552,363 @@ msgstr "Parolă" msgid "Sign in" msgstr "Conectare" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engleză (Americană)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Cehă" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Daneză" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Germană" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engleză (Britanică)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spaniolă" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Franceză" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italiană" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luxemburgheză" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Olandeză" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Poloneză" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugheză (Brazilia)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugheză" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Română" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Rusă" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Suedeză" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Administrare Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentificare" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Setări avansate" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtru" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless va procesa doar mail-urile care corespund TUTUROR filtrelor date mai jos." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Acțiuni" -#: 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 "Acțiunea aplicată tuturor email-urilor. Aceasta este realizată doar când sunt consumate documente din email. Cele fara atașamente nu vor fi procesate." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metadate" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Email Paperless" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "cont de email" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "conturi de email" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Fără criptare" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Folosește SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Folosește STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "server IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "port IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "securitate IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "nume" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "parolă" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Set de caractere" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "regulă email" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "reguli email" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Procesează doar atașamentele." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Procesează toate fișierele, inclusiv atașamentele „inline”." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Șterge" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Mută în directorul specificat" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Marchează ca citit, nu procesa email-uri citite" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Marchează, nu procesa email-uri marcate" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Utilizează subiectul ca titlu" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Utilizează numele fișierului atașat ca titlu" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Nu atribui un corespondent" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Folosește adresa de email" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Folosește corespondentul selectat mai jos" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordonează" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "cont" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "director" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrează de la" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrează subiect" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrează corpul email-ului" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrează numele fișierului atașat" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "vârsta maximă" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Specificată in zile." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tip atașament" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "acţiune" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametru acțiune" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "atribuie titlu din" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "atribuie această etichetă" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "atribuie acest tip" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "atribuie corespondent din" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "atribuie acest corespondent" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/ru_RU/LC_MESSAGES/django.po b/src/locale/ru_RU/LC_MESSAGES/django.po index a9c7d3d39..3fc24bee5 100644 --- a/src/locale/ru_RU/LC_MESSAGES/django.po +++ b/src/locale/ru_RU/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-12-21 11:37\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-22 22:41\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Документы" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "Ничего" + +#: documents/models.py:37 msgid "Any word" msgstr "Любые слова" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Все слова" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Точное соответствие" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Регулярное выражение" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "\"Нечёткий\" режим" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Автоматически" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "имя" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "соответствие" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "алгоритм сопоставления" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "без учёта регистра" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "владелец" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "корреспондент" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "корреспонденты" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "цвет" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "это входящий тег" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "Отметить этот тег как «Входящий»: все вновь добавленные документы будут помечены тегами «Входящие»." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "тег" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "теги" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "тип документа" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "типы документов" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "путь" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "путь к хранилищу" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "пути хранения" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "не зашифровано" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Зашифровано с помощью GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "заголовок" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "содержимое" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "Это поле используется в основном для поиска." -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "тип Mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "контрольная сумма" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Контрольная сумма оригинального документа." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "контрольная сумма архива" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Контрольная сумма архивного документа." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "создано" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "изменено" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "тип хранилища" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "добавлено" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "имя файла" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Текущее имя файла в хранилище" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "имя файла архива" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Текущее имя файла архива в хранилище" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "исходное имя файла" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Исходное имя файла при его загрузке" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "архивный номер (АН)" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Позиция этого документа в вашем физическом архиве документов." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "документ" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "документы" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "отладка" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "информация" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "предупреждение" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "ошибка" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "критическая" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "группа" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "сообщение" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "уровень" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "журнал" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "логи" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "сохранённое представление" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "сохраненные представления" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "пользователь" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "показать на панели" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "показать в боковой панели" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "Поле сортировки" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "обратная сортировка" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "заголовок содержит" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "содержимое содержит" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "АН" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "корреспондент" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "тип документа" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "во входящих" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "есть тег" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "есть любой тег" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "создан до" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "создан после" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "год создания" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "месяц создания" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "день создания" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "добавлен до" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "добавлен после" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "изменен до" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "изменен после" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "не имеет тега" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "не имеет архивного номера" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "Название или содержимое включает" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "полнотекстовый запрос" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "больше похожих" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "имеет теги в" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN больше чем" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN меньше чем" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" -msgstr "" +msgstr "путь хранения является" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "Тип правила" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "значение" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "Правило фильтрации" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "правила фильтрации" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" -msgstr "" - -#: documents/models.py:537 -msgid "Celery ID for the Task that was run" -msgstr "" - -#: documents/models.py:542 -msgid "Acknowledged" -msgstr "" - -#: documents/models.py:543 -msgid "If the task is acknowledged via the frontend or API" -msgstr "" - -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "" - -#: documents/models.py:550 -msgid "Name of the file which the Task was run for" -msgstr "" - -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" +msgstr "ИД задачи" #: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" +msgid "Celery ID for the Task that was run" +msgstr "ИД Celery для задачи, которая была выполнена" #: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" +msgid "Acknowledged" +msgstr "Подтверждено" -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" +#: documents/models.py:570 +msgid "If the task is acknowledged via the frontend or API" +msgstr "Если задание подтверждено через интерфейс сайта или API" -#: documents/models.py:578 -msgid "Task State" -msgstr "" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "Имя файла задачи" -#: documents/models.py:579 -msgid "Current state of the task being run" -msgstr "" +#: documents/models.py:577 +msgid "Name of the file which the Task was run for" +msgstr "Имя файла, для которого была запущена задача" + +#: documents/models.py:583 +msgid "Task Name" +msgstr "Название Задачи" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" -msgstr "" +msgid "Name of the Task which was run" +msgstr "Название задачи, которая была запущена" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" -msgstr "" +msgid "Task State" +msgstr "Состояние задачи" -#: documents/models.py:596 -msgid "Completed DateTime" -msgstr "" +#: documents/models.py:592 +msgid "Current state of the task being run" +msgstr "Текущее состояние выполняемой задачи" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" -msgstr "" +msgid "Created DateTime" +msgstr "Дата и время создания" -#: documents/models.py:602 +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "Поле времени даты, когда результат задачи был создан в формате UTC" + +#: documents/models.py:603 +msgid "Started DateTime" +msgstr "Дата и время начала" + +#: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "Поле времени и даты начала выполнения задачи в формате UTC" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "Дата и время завершения" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "Поле времени и даты, когда задание было выполнено в формате UTC" + +#: documents/models.py:615 msgid "Result Data" msgstr "Данные результата" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Данные, возвращаемые задачей" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Комментарий к документу" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "пользователь" + +#: documents/models.py:655 msgid "comment" msgstr "комментарий" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "комментарии" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "неверное регулярное выражение: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Неверный цвет." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Тип файла %(type)s не поддерживается" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Обнаружена неверная переменная." @@ -556,323 +552,363 @@ msgstr "Пароль" msgid "Sign in" msgstr "Вход" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "Paperless" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Английский (США)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "Арабский" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Белорусский" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Чешский" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Датский" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Немецкий" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Английский (Великобритании)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Испанский" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Французский" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Итальянский" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Люксембургский" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Датский" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Польский" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Португальский (Бразилия)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Португальский" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Румынский" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Русский" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Словенский" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Сербский" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Шведский" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Турецкий" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Китайский упрощенный" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Администрирование Paperless-ngx" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Аутентификация" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Продвинутые настройки" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Фильтр" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless будет обрабатывать только те письма, которые соответствуют всем фильтрам, указанным ниже." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "Действие, примененное к письму. Это действие выполняется только в том случае, если содержимое или вложения были извлечены из письма." -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Метаданные" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Безбумажная почта" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "почтовый ящик" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "Почтовые ящики" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Без шифрования" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Использовать SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Использовать STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "Сервер IMAP" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "Порт IMAP" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "Обычно это 143 для нешифрованных и STARTTLS соединений и 993 для SSL-соединений." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Безопасность IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "Имя пользователя" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "пароль" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Кодировка" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "правило почты" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "правила почты" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Обрабатывать только вложения." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "Обработка всей почты (со вложенными файлами) как .eml" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "Обработка всей почты (со вложенными файлами) как .eml + обрабатывать вложения как отдельные документы" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Обрабатывать все файлы, включая 'встроенные' вложения." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Удалить" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Переместить в указанную папку" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Пометить как прочитанное, не обрабатывать прочитанные письма" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Пометить почту, не обрабатывать помеченные письма" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Отметить почту указанным тегом, не обрабатывать помеченные письма" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Тема в качестве заголовка" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Использовать имя вложенного файла как заголовок" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Не назначать корреспондента" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Использовать email адрес" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Использовать имя (или адрес электронной почты, если недоступно)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Использовать корреспондента, выбранного ниже" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "порядок" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "Учётная запись" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "каталог" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "фильтр по отправителю" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "фильтр по теме" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "фильтр по тексту сообщения" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "фильтр по имени вложения" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "Максимальный возраст" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Указывается в днях." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "Тип вложения" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "Вложенные вложения включая встраиваемые изображения. Лучше совместить эту опцию с фильтром по имени вложения." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "рамки потребления" + +#: paperless_mail/models.py:164 msgid "action" msgstr "действие" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "параметр действия" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "назначить заголовок из" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "назначить этот тег" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "назначить этот тип документа" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "назначить корреспондента из" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "назначить этого корреспондента" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "uid" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "предмет" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "получено" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "обработано" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "статус" + diff --git a/src/locale/sl_SI/LC_MESSAGES/django.po b/src/locale/sl_SI/LC_MESSAGES/django.po index 2320afcd0..9a3e6ec49 100644 --- a/src/locale/sl_SI/LC_MESSAGES/django.po +++ b/src/locale/sl_SI/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Katerakoli beseda" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Vse besede" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Točno ujemanje" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regularni izraz" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Fuzzy beseda" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Samodejno" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "ime" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "ujemanje" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritem ujemanja" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "brez razlikovanje velikosti črk" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "dopisnik" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "dopisniki" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "barva" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "je vhodna oznaka" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "oznaka" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "oznake" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "vrsta dokumenta" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "vrste dokumentov" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "pot" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "pot do shrambe" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "poti do shrambe" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Nešifrirano" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Šifrirano z GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "naslov" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "vsebina" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "vrsta mime" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrolna vsota" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrolna vsota izvirnega dokumenta." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arhivska kontrolna vsota" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrolna vsota arhiviranega dokumenta." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "ustvarjeno" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "spremenjeno" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "vrsta shrambe" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "dodano" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "ime datoteke" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Trenutno ime dokumenta v shrambi" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "ime arhivske datoteke" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Trenutno ime arhivske datoteke v shrambi" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arhivska serijska številka" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenti" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "razhroščevanje" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informacija" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "opozorilo" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "napaka" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritično" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "skupina" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "sporočilo" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivo" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "dnevnik" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "dnevniki" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "shranjeni pogled" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "shranjeni pogledi" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "uporabnik" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "prikaži na pregledni plošči" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "prikaži v stranski vrstici" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "polje za razvrščanje" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "razvrsti obratno" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "naslov vsebuje" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "vsebina vsebuje" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "dopisnik je" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "vrsta dokumenta je" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "je v prejetem" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ima oznako" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ima katero koli oznako" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "ustvarjeno pred" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "ustvarjeno po" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "leto nastanka" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "mesec nastanka" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dan nastanka" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "dodano pred" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "dodano po" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "spremenjeno pred" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "spremenjeno po" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "nima oznake" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "nima ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "naslov ali vsebina vsebujeta" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "polnobesedilna poizvedba" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "več takih" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "ima oznake" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "vrsta pravila" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "vrednost" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtriraj pravilo" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtriraj pravila" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "uporabnik" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Neveljaven splošen izraz: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Napačna barva." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s ni podprta" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Zaznani neveljavni znaki." @@ -556,323 +552,363 @@ msgstr "Geslo" msgid "Sign in" msgstr "Prijava" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Angleščina (ZDA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Beloruščina" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Češčina" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danščina" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Nemščina" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Angleščina (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Španščina" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francoščina" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italijanščina" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Nizozemščina" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Poljščina" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugalščina (Brazilija)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugalščina" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Romunščina" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ruščina" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovenščina" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Srbščina" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Švedščina" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turščina" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Poenostavljena kitajščina" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Avtentifikacija" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Napredne nastavitve" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtriraj" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless bo obdelal samo e-poštna sporočila, ki se ujemajo z VSEMI spodaj navedenimi filtri." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Dejanja" -#: 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 "Dejanje je veljalo za pošto. To dejanje se izvede samo, če so bili dokumenti uvoženi iz pošte. E-pošta brez prilog bo ostala v celoti nedotaknjena." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metapodatki" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless pošta" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "poštni račun" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "poštni računi" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Brez šifriranja" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Uporaba SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Uporabi STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP strežnik" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP vrata" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "Varnost IMAP" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "uporabniško ime" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "geslo" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "nabor znakov" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "poštno pravilo" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "poštna pravila" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Obdelujte samo priloge." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Obdelajte vse datoteke, vključno z \"vgrajenimi\" prilogami." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Izbriši" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Premakni v določeno mapo" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Označi kot prebrano, ne obdelujte prebrane pošte" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "Označi pošto s določeno oznako, ne procesiraj označene pošte" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Uporabite zadevo kot naslov" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Uporabite ime datoteke priloge kot naslov" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Ne dodelite dopisnika" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Uporabite poštni naslov" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 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:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Uporabite dopisnika, izbranega spodaj" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "vrstni red" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "račun" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "mapa" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Podmape morajo biti ločene s znakom, običajno je to pika (.) ali slash ('/'), je pa odvisno od poštnega strežnika." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtriraj prejeto" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtriraj zadevo" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtriraj vsebino" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtriraj ime datoteke priloge" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "najvišja starost" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Določeno v dnevih." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "vrsta priponke" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "dejanja" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parameter delovanja" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "dodeli naslov iz" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "dodeli to oznako" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "dodeli to vrsto dokumenta" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "dodeli dopisnika iz" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "dodeli tega dopisnika" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/sr_CS/LC_MESSAGES/django.po b/src/locale/sr_CS/LC_MESSAGES/django.po index c7c5415de..a7427992d 100644 --- a/src/locale/sr_CS/LC_MESSAGES/django.po +++ b/src/locale/sr_CS/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-12 13:08\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokumenta" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Bilo koja reč" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Sve reči" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Tačno podudaranje" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Regularni izraz" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Fuzzy reč" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatski" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "naziv" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "poklapanje" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "algoritam podudaranja" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "bez razlike veliko/malo slovo" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korespodent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korespodenti" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "boja" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "je oznaka prijemnog sandučeta" -#: documents/models.py:75 +#: documents/models.py:93 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 prijemnog sandučeta (inbox): Svi novoobrađeni dokumenti će biti označeni oznakama prijemnog sandučeta (inbox)." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "oznaka" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "oznake" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "tip dokumenta" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "tipovi dokumenta" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "putanja" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "putanja skladišta" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "putanja skladišta" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Nešifrovano" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Šifrovano pomoću GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "naslov" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "sadržaj" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime tip" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrolna suma" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrolna suma originalnog dokumenta." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arhivni checksum" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrolna suma arhivnog dokumenta." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "kreirano" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "izmenjeno" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "tip skladišta" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "dodato" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "naziv fajla" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Trenutni naziv sačuvane datoteke" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "naziv fajla arhive" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Trenutni naziv arhivirane sačuvane datoteke" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "originalno ime fajla" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Originalni naziv fajla kada je otpremljen" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arhivski serijski broj" -#: documents/models.py:237 +#: documents/models.py:262 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:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokumenta" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "okloni greške" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "informacija" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "upozorenje" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "grеška" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritično" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupa" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "poruka" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivo" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "log" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "logovi" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "sačuvani prikaz" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "sačuvani prikazi" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "korisnik" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "prikaži na kontrolnoj tabli" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "prikaži u bočnoj traci" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "polje za sortiranje" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "obrnuto sortiranje" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "naslov sadrži" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "sadržaj sadrži" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "korespodent je" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "tip dokumenta je" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "je u prijemnog sandučetu" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "ima oznaku" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "ima bilo koju oznaku" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "kreiran pre" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "kreiran posle" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "godina kreiranja je" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "mesec kreiranja je" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "dan kreiranja je" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "dodat pre" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "dodat posle" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "izmenjen pre" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "izmenjen posle" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "nema oznaku" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "nema ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "naslov i sadržaj sadrži" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "upit za ceo tekst" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "više ovakvih" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "ima oznake u" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN veći od" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN manji od" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "putanja skladišta je" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "tip pravila" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "vrednost" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filter pravilo" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filter pravila" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "ID Zadatka" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "Celery ID za zadatak koji je pokrenut" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Potvrđeno" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Ako je zadatak potvrđen preko frontenda ili API-ja" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Ime zadatka" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Naziv fajla za koji je zadatak pokrenut" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Ime zadatka" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Naziv zadatka koji je bio pokrenut" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Pozicioni argumenti zadatka" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "JSON prikaz pozicionih argumenata koji se koriste sa zadatkom" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Argumenti zadatka" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "JSON prikaz imenovanih argumenata koji se koriste sa zadatkom" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Stanje zadatka" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Trenutno stanje zadatka koji se izvršava" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Datum i vreme kreiranja" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "Polje datuma i vremena kada je rezultat zadatka kreiran u UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Datum i vreme početka" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "Polje datuma i vremena kada je zadatak pokrenut u UTC" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "Datum i vreme završetka" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "Polje datuma i vremena kada je zadatak završen u UTC" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "Podaci o rezultatu" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "Podaci koje vraća zadatak" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "Komentar za dokument" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "korisnik" + +#: documents/models.py:655 msgid "comment" msgstr "komentar" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "komentari" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Nevažeći regularni izraz: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Nevažeća boja." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s nije podržana" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Otkrivena je nevažeća promenljiva." @@ -556,323 +552,363 @@ msgstr "Lozinka" msgid "Sign in" msgstr "Prijavite se" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engleski (US)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Beloruski" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Češki" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danski" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Nemački" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engleski (UK)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Španski" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Francuski" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italijanski" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Holandski" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Poljski" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazil)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumunski" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ruski" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovenački" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Srpski" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Švedski" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Turski" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Kineski pojednostavljen" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentifikacija" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Napredna podešavanja" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filter" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 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 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Radnje" -#: 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 priloga ostat će u potpunosti netaknuta." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metapodaci" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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 dodelite metapodatke dokumentima koji se koriste iz ovog pravila. Ako ne dodelite oznaku, vrstu ili korespodenta, Paperless-ngx će i dalje obraditi sva pravila podudaranja koja ste definisali." -#: paperless_mail/apps.py:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless mejl" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "mejl nalog" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "mejl nalozi" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Nema enkripcije" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Koristi SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Koristi STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "Uobičajno 143 za nešifrovane i STARTTLS veze, a 993 za SSL veze." -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP bezbednost" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "korisničko ime" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "lozinka" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "karakter set" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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 sa mejl serverom, poput 'UTF-8' ili 'US-ASCII'." -#: paperless_mail/models.py:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "pravilo e-pošte" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "pravila e-pošte" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Obradi samo priloge." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Obradite sve datoteke, uključujući \"umetnute\" priloge." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Obriši" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Premesti u određen folder" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 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 +#: paperless_mail/models.py:76 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 +#: paperless_mail/models.py:77 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 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Koristi predmet kao naziv" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Koristi naziv datoteke priloga kao naziv" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Ne dodeljuj korespodenta" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Koristi mejl adresu" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Koristi naziv (ili mejl adresu ako nije dostupno)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Koristi koreespodenta ispod" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "raspored" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "nalog" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "folder" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." msgstr "Podfolderi moraju biti odvojeni separatorom, često tačkom ('.') ili kosom crtom ('/'), ali to se razlikuje zavisno od servera e-pošte." -#: paperless_mail/models.py:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filter od" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filter naslov" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filter telo poruke" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filter naziv fajla priloga" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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 zamenski znakovi kao što su *.pdf ili *faktura*. Neosetljivo je na mala i mala slova." -#: paperless_mail/models.py:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "maksimalna starost" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Navedeno u danima." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "tip priloga" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "Ugrađeni prilozi uključuju ugrađene slike, pa je najbolje kombinovati ovu opciju s filterom naziva datoteke." -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "radnja" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "parametar akcije" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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. ciljani folder za premeštanje u folder akcije. Podfolderi moraju biti odvojeni tačkama." -#: paperless_mail/models.py:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "dodeli naziv iz" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "dodeli ovu oznaku" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "dodeli ovaj tip dokumenta" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "dodeli korespodenta iz" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "dodeli ovog korspodenta" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/sv_SE/LC_MESSAGES/django.po b/src/locale/sv_SE/LC_MESSAGES/django.po index c6ed766b7..a56738148 100644 --- a/src/locale/sv_SE/LC_MESSAGES/django.po +++ b/src/locale/sv_SE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2023-01-10 22:57\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-24 15:12\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Dokument" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Valfritt ord" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Alla ord" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Exakt matchning" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Reguljära uttryck" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Ungefärligt ord" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "namn" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "träff" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "matchande algoritm" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "är ej skiftlägeskänsligt" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "korrespondent" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "korrespondenter" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "färg" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "är inkorgsetikett" -#: documents/models.py:75 +#: documents/models.py:93 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:81 +#: documents/models.py:99 msgid "tag" msgstr "etikett" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiketter" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "dokumenttyp" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "dokumenttyper" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "sökväg" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "sökväg till lagring" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "sökvägar för lagring" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Okrypterad" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "Krypterad med GNU Privacy Guard" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "titel" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "innehåll" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "MIME-typ" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "kontrollsumma" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Kontrollsumman för originaldokumentet." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arkivera kontrollsumma" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Kontrollsumman för det arkiverade dokumentet." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "skapad" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "ändrad" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "lagringstyp" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "tillagd" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "filnamn" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Nuvarande filnamn i lagringsutrymmet" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "arkivfilnamn" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Nuvarande arkivfilnamn i lagringsutrymmet" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "ursprungligt filnamn" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "Det ursprungliga namnet på filen när den laddades upp" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "serienummer (arkivering)" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Placeringen av detta dokument i ditt fysiska dokumentarkiv." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "dokument" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "dokument" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "felsök" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "information" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "varning" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "fel" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritisk" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grupp" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "meddelande" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "nivå" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "logg" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "loggar" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "sparad vy" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "sparade vyer" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "användare" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "visa på kontrollpanelen" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "visa i sidofältet" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "sortera fält" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "sortera omvänt" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "titel innehåller" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "innehåll innehåller" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN är" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "korrespondent är" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "dokumenttyp är" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "är i inkorgen" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "har etikett" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "har någon etikett" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "skapad före" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "skapad efter" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "skapat år är" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "skapad månad är" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "skapad dag är" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "tillagd före" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "tillagd efter" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "ändrad före" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "ändrad efter" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "har inte etikett" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "har inte ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "titel eller innehåll innehåller" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "fulltextfråga" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "mer som detta" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "har taggar i" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "ASN större än" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "ASN mindre än" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "sökväg till lagring är" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "regeltyp" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "värde" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtrera regel" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtrera regler" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "Uppgifts-ID" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "Bekräftad" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "Om uppgiften bekräftas via frontend eller API" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" -msgstr "Uppgiftens namn" +#: documents/models.py:576 +msgid "Task Filename" +msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "Namn på filen som aktiviteten kördes för" -#: documents/models.py:557 +#: documents/models.py:583 +msgid "Task Name" +msgstr "Uppgiftens namn" + +#: documents/models.py:584 msgid "Name of the Task which was run" msgstr "Namn på uppgiften som kördes" -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "Uppgiftspositionellt Argument" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "JSON representation av positionsargumenten som användes med uppgiften" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "Uppgiftens namngivna argument" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "JSON representation av de namngivna argument som används med uppgiften" - -#: documents/models.py:578 +#: documents/models.py:591 msgid "Task State" msgstr "Uppgiftsstatus" -#: documents/models.py:579 +#: documents/models.py:592 msgid "Current state of the task being run" msgstr "Nuvarande tillstånd för uppgiften som körs" -#: documents/models.py:584 +#: documents/models.py:597 msgid "Created DateTime" msgstr "Skapad Datumtid" -#: documents/models.py:585 +#: documents/models.py:598 msgid "Datetime field when the task result was created in UTC" msgstr "Datumtidsfält när aktivitetsresultatet skapades i UTC" -#: documents/models.py:590 +#: documents/models.py:603 msgid "Started DateTime" msgstr "Startad datumtid" -#: documents/models.py:591 +#: documents/models.py:604 msgid "Datetime field when the task was started in UTC" msgstr "Datumfält när uppgiften startades i UTC" -#: documents/models.py:596 +#: documents/models.py:609 msgid "Completed DateTime" msgstr "Slutförd datumtid" -#: documents/models.py:597 +#: documents/models.py:610 msgid "Datetime field when the task was completed in UTC" msgstr "Datumtidsfält när uppgiften slutfördes i UTC" -#: documents/models.py:602 +#: documents/models.py:615 msgid "Result Data" msgstr "Resultatdata" -#: documents/models.py:604 +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" -msgstr "" +msgstr "Kommentar för dokumentet" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "användare" + +#: documents/models.py:655 msgid "comment" -msgstr "" +msgstr "kommentar" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" -msgstr "" +msgstr "kommentarer" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Ogiltigt reguljärt uttryck: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Ogiltig färg." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Filtypen %(type)s stöds inte" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "" @@ -556,323 +552,363 @@ msgstr "Lösenord" msgid "Sign in" msgstr "Logga in" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "Engelska (USA)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Tyska" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "Engelska (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "Spanska" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Franska" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "Italienska" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Holländska" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polska" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portugisiska (Brasilien)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portugisiska" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Rumänska" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Ryska" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "Svenska" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Autentisering" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Avancerade inställningar" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless kommer endast att behandla e-postmeddelanden som matchar ALLA filter som anges nedan." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Åtgärder" -#: 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 "Åtgärden tillämpas på e-postmeddelandet. Denna åtgärd utförs endast när dokument konsumerades från e-postmeddelandet. E-post utan bilagor kommer att förbli helt orörda." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless e-post" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "e-postkonto" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "e-postkonton" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Ingen kryptering" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "Använd SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "Använd STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP-server" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP-port" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP-säkerhet" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "användarnamn" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "lösenord" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "Teckenuppsättning" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "e-postregel" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "e-postregler" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Behandla endast bilagor." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Behandla alla filer, inklusive infogade bilagor." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Radera" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Flytta till angiven mapp" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Markera som läst, bearbeta inte lästa meddelanden" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "Flagga meddelandet, bearbeta inte flaggade meddelanden" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Använd ämne som titel" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Använd bilagans filnamn som titel" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Tilldela inte en korrespondent" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "Använd e-postadress" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "Använd namn (eller e-postadress om inte tillgängligt)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Använd korrespondent som valts nedan" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "ordning" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "konto" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "mapp" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "filtrera från" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "filtrera ämne" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "filtrera kropp" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "filtrera filnamn för bilaga" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "högsta ålder" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Anges i dagar." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "typ av bilaga" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "åtgärd" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "åtgärdsparameter" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "tilldela titel från" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "tilldela denna etikett" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "tilldela den här dokumenttypen" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "tilldela korrespondent från" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "tilldela denna korrespondent" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/tr_TR/LC_MESSAGES/django.po b/src/locale/tr_TR/LC_MESSAGES/django.po index 5ff9d15ba..004f431e4 100644 --- a/src/locale/tr_TR/LC_MESSAGES/django.po +++ b/src/locale/tr_TR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2023-01-17 12:46\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "Belgeler" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "Herhangi bir kelime" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "Tüm Kelimeler" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "Tam eşleşme" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "Düzenli ifade" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "Fuzzy Kelime" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "Otomatik" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "ad" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "eşleme" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "eşleştirme algoritması" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "duyarsızdır" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "kâtip" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "kâtipler" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "renk" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "gelen kutu etiketidir" -#: documents/models.py:75 +#: documents/models.py:93 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: Yeni aktarılan tüm dokümanlar gelen kutusu etiketi ile etiketlendirileceklerdir." -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "etiket" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "etiketler" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "belge türü" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "belge türleri" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "dizin" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "depolama dizini" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "Şifresiz" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "GNU Gizlilik Koruması ile şifrelendirilmiştir" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "başlık" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "içerik" -#: documents/models.py:145 +#: documents/models.py:163 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:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime türü" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "sağlama toplamı" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "Orjinal belgenin sağlama toplamı." -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "arşiv sağlama toplamı" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "Arşivlenen belgenin sağlama toplamı." -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "oluşturuldu" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "değiştirilmiş" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "depolama türü" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "eklendi" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "dosya adı" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "Depolamadaki geçerli dosya adı" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "arşiv dosya adı" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "Depolamadaki geçerli arşiv dosya adı" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "arşiv seri numarası" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "Bu belgenin fiziksel belge arşivinizdeki posizyonu." -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "belge" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "belgeler" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "hata ayıklama" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "bilgi" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "uyarı" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "hata" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "kritik" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "grup" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "mesaj" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "seviye" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "günlük" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "günlükler" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "kaydedilen görünüm" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "kaydedilen görünümler" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "kullanıcı" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "kontrol paneli'nde göster" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "kenar çubuğunda göster" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "alanı sıralama" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "tersine sırala" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "başlık içerir" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "içerik içerir" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN ise" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "muhabir ise" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "belge türü ise" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "gelen kutusunun içerisindedir" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "etiketine sahip" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "herhangi bir etiketine sahip" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "bu tarihten önce oluşturuldu" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "bu tarihten sonra oluşturuldu" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "oluşturma yili ise" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "oluşturma ayı ise" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "oluşturma günü ise" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "bu tarihten önce eklendi" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "bu tarihten sonra eklendi" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "bu tarihten önce değiştirldi" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "bu tarihten sonra değiştirldi" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "etikete sahip değil" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "ASN'e sahip değil" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "başlik veya içerik içerir" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "tam metin sorgulama" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "buna benzer daha" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "içerisinde etiketine sahip" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "kural türü" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "değer" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "filtreleme kuralı" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "filtreleme kuralları" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "kullanıcı" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "Hatalı Düzenli İfade: %(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "Geçersiz renk." -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "Dosya türü %(type)s desteklenmiyor" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "Geçersiz değişken algılandı." @@ -556,323 +552,363 @@ msgstr "Parola" msgid "Sign in" msgstr "Oturum aç" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "İngilizce (Birleşik Devletler)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "Belarusça" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "Çekçe" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "Danca" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "Almanca" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "İngilizce (GB)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "İspanyolca" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "Fransızca" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "İtalyanca" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "Lüksemburgca" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "Hollandaca" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "Polonyaca" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "Portekizce (Brezilya)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "Portekizce" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "Romence" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "Rusça" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "Slovakça" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "Sırpça" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "İsveççe" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "Türkçe" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "Basitleştirilmiş Çince" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx yönetimi" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "Kimlik Doğrulaması" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "Gelişmiş ayarlar" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "Filtre" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless yalnızca aşağıda verilen TÜM filtrelerle eşleşen e-postalari işler." -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 msgid "Actions" msgstr "Eylemler" -#: 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 "Eylem e-postaya uygulandı. Bu eylem yalnızca belgeler e-postadan tüketildiğinde gerçekleştirilir. Eki olmayan e-postalarına tamamen dokunulmayacaktır." +#: paperless_mail/admin.py:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "Metaveri" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless e-posta" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "e-posta hesabı" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "e-posta hesapları" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "Şifreleme yok" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "SSL kullan" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "STARTTLS kullan" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP sunucusu" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP portu" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 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:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP güvenliği" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "kullanıcı adı" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "şifre" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "karakter seti" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "e-posta kuralı" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "e-posta kuralları" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "Sadece ekleri işle." -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "Tüm dosyaları işle, 'satır içi' ekletiler dahil." -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "Sil" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "Belirtilen klasöre taşı" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "Okunmuş olarak işaretle, okunmuş e-postaları işleme" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "E-Postayi etiketlendir, etiketlendirilmiş e-postaları işleme" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "Konuyu başlık olarak kullan" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "Eklenti dosyanın ismini başlık olarak kullan" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "Muhabir atanma" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "E-posta adresi kullan" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "İsim kullan (veya yoksa e-posta adresini)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "Aşağıdaki seçili olan muhabiri kullan" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "sıra" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "hesap" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "klasör" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "den filtrele" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "konuyu filtrele" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "içerik filtrele" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "eklenti ismini filtrele" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "yaş sınırı" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "Gün olarak belirtilmiş." -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "eklenti türü" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 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:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "eylem" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "eylem parametreleri" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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:168 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "başlik atan" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "bu etiketi atan" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "bu dosya türünü atan" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "muhabiri atan" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "bu muhabiri atan" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/locale/zh_CN/LC_MESSAGES/django.po b/src/locale/zh_CN/LC_MESSAGES/django.po index 67fc56899..c31590a51 100644 --- a/src/locale/zh_CN/LC_MESSAGES/django.po +++ b/src/locale/zh_CN/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-11-09 21:50+0000\n" -"PO-Revision-Date: 2022-11-09 23:11\n" +"POT-Creation-Date: 2023-03-03 19:15+0000\n" +"PO-Revision-Date: 2023-03-03 20:41\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -21,490 +21,486 @@ msgstr "" msgid "Documents" msgstr "文档" -#: documents/models.py:32 +#: documents/models.py:36 +msgid "None" +msgstr "" + +#: documents/models.py:37 msgid "Any word" msgstr "任意单词" -#: documents/models.py:33 +#: documents/models.py:38 msgid "All words" msgstr "所有单词" -#: documents/models.py:34 +#: documents/models.py:39 msgid "Exact match" msgstr "精确匹配" -#: documents/models.py:35 +#: documents/models.py:40 msgid "Regular expression" msgstr "正则表达式" -#: documents/models.py:36 +#: documents/models.py:41 msgid "Fuzzy word" msgstr "模糊单词" -#: documents/models.py:37 +#: documents/models.py:42 msgid "Automatic" msgstr "自动" -#: documents/models.py:40 documents/models.py:367 paperless_mail/models.py:16 -#: paperless_mail/models.py:80 +#: documents/models.py:45 documents/models.py:394 paperless_mail/models.py:17 +#: paperless_mail/models.py:89 msgid "name" msgstr "名称" -#: documents/models.py:42 +#: documents/models.py:47 msgid "match" msgstr "匹配" -#: documents/models.py:45 +#: documents/models.py:50 msgid "matching algorithm" msgstr "匹配算法" -#: documents/models.py:50 +#: documents/models.py:55 msgid "is insensitive" msgstr "忽略大小写" -#: documents/models.py:63 documents/models.py:118 +#: documents/models.py:71 +msgid "owner" +msgstr "" + +#: documents/models.py:81 documents/models.py:136 msgid "correspondent" msgstr "联系人" -#: documents/models.py:64 +#: documents/models.py:82 msgid "correspondents" msgstr "联系人" -#: documents/models.py:69 +#: documents/models.py:87 msgid "color" msgstr "颜色" -#: documents/models.py:72 +#: documents/models.py:90 msgid "is inbox tag" msgstr "收件箱标签" -#: documents/models.py:75 +#: documents/models.py:93 msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags." msgstr "将此标签标记为收件箱标签:所有新处理的文档将被标记为收件箱标签。" -#: documents/models.py:81 +#: documents/models.py:99 msgid "tag" msgstr "标签" -#: documents/models.py:82 documents/models.py:156 +#: documents/models.py:100 documents/models.py:174 msgid "tags" msgstr "标签" -#: documents/models.py:87 documents/models.py:138 +#: documents/models.py:105 documents/models.py:156 msgid "document type" msgstr "文档类型" -#: documents/models.py:88 +#: documents/models.py:106 msgid "document types" msgstr "文档类型" -#: documents/models.py:93 +#: documents/models.py:111 msgid "path" msgstr "路径" -#: documents/models.py:99 documents/models.py:127 +#: documents/models.py:117 documents/models.py:145 msgid "storage path" msgstr "保存路径" -#: documents/models.py:100 +#: documents/models.py:118 msgid "storage paths" msgstr "保存路径" -#: documents/models.py:108 +#: documents/models.py:126 msgid "Unencrypted" msgstr "未加密" -#: documents/models.py:109 +#: documents/models.py:127 msgid "Encrypted with GNU Privacy Guard" msgstr "使用 GNU 隐私防护(GPG)加密" -#: documents/models.py:130 +#: documents/models.py:148 msgid "title" msgstr "标题" -#: documents/models.py:142 documents/models.py:611 +#: documents/models.py:160 documents/models.py:624 msgid "content" msgstr "内容" -#: documents/models.py:145 +#: documents/models.py:163 msgid "The raw, text-only data of the document. This field is primarily used for searching." msgstr "文档的原始、纯文本的数据。这个字段主要用于搜索。" -#: documents/models.py:150 +#: documents/models.py:168 msgid "mime type" msgstr "mime 类型" -#: documents/models.py:160 +#: documents/models.py:178 msgid "checksum" msgstr "校验和" -#: documents/models.py:164 +#: documents/models.py:182 msgid "The checksum of the original document." msgstr "原始文档的校验和。" -#: documents/models.py:168 +#: documents/models.py:186 msgid "archive checksum" msgstr "存档校验和" -#: documents/models.py:173 +#: documents/models.py:191 msgid "The checksum of the archived document." msgstr "已归档文档的校验和。" -#: documents/models.py:176 documents/models.py:348 documents/models.py:617 +#: documents/models.py:194 documents/models.py:376 documents/models.py:630 msgid "created" msgstr "已创建" -#: documents/models.py:179 +#: documents/models.py:197 msgid "modified" msgstr "已修改" -#: documents/models.py:186 +#: documents/models.py:204 msgid "storage type" msgstr "存储类型" -#: documents/models.py:194 +#: documents/models.py:212 msgid "added" msgstr "已添加" -#: documents/models.py:201 +#: documents/models.py:219 msgid "filename" msgstr "文件名" -#: documents/models.py:207 +#: documents/models.py:225 msgid "Current filename in storage" msgstr "当前存储中的文件名" -#: documents/models.py:211 +#: documents/models.py:229 msgid "archive filename" msgstr "归档文件名" -#: documents/models.py:217 +#: documents/models.py:235 msgid "Current archive filename in storage" msgstr "当前存储中的归档文件名" -#: documents/models.py:221 +#: documents/models.py:239 msgid "original filename" msgstr "" -#: documents/models.py:227 +#: documents/models.py:245 msgid "The original name of the file when it was uploaded" msgstr "" -#: documents/models.py:231 +#: documents/models.py:252 msgid "archive serial number" msgstr "归档序列号" -#: documents/models.py:237 +#: documents/models.py:262 msgid "The position of this document in your physical document archive." msgstr "此文档在您的物理文档归档中的位置。" -#: documents/models.py:243 documents/models.py:628 +#: documents/models.py:268 documents/models.py:641 msgid "document" msgstr "文档" -#: documents/models.py:244 +#: documents/models.py:269 msgid "documents" msgstr "文档" -#: documents/models.py:331 +#: documents/models.py:359 msgid "debug" msgstr "调试" -#: documents/models.py:332 +#: documents/models.py:360 msgid "information" msgstr "信息" -#: documents/models.py:333 +#: documents/models.py:361 msgid "warning" msgstr "警告" -#: documents/models.py:334 +#: documents/models.py:362 paperless_mail/models.py:276 msgid "error" msgstr "错误" -#: documents/models.py:335 +#: documents/models.py:363 msgid "critical" msgstr "严重" -#: documents/models.py:338 +#: documents/models.py:366 msgid "group" msgstr "用户组" -#: documents/models.py:340 +#: documents/models.py:368 msgid "message" msgstr "消息" -#: documents/models.py:343 +#: documents/models.py:371 msgid "level" msgstr "等级" -#: documents/models.py:352 +#: documents/models.py:380 msgid "log" msgstr "日志" -#: documents/models.py:353 +#: documents/models.py:381 msgid "logs" msgstr "日志" -#: documents/models.py:363 documents/models.py:419 +#: documents/models.py:391 documents/models.py:446 msgid "saved view" msgstr "保存的视图" -#: documents/models.py:364 +#: documents/models.py:392 msgid "saved views" msgstr "保存的视图" -#: documents/models.py:366 documents/models.py:637 -msgid "user" -msgstr "用户" - -#: documents/models.py:370 +#: documents/models.py:397 msgid "show on dashboard" msgstr "在仪表盘显示" -#: documents/models.py:373 +#: documents/models.py:400 msgid "show in sidebar" msgstr "在侧边栏显示" -#: documents/models.py:377 +#: documents/models.py:404 msgid "sort field" msgstr "排序字段" -#: documents/models.py:382 +#: documents/models.py:409 msgid "sort reverse" msgstr "反向排序" -#: documents/models.py:387 +#: documents/models.py:414 msgid "title contains" msgstr "标题包含" -#: documents/models.py:388 +#: documents/models.py:415 msgid "content contains" msgstr "内容包含" -#: documents/models.py:389 +#: documents/models.py:416 msgid "ASN is" msgstr "ASN 为" -#: documents/models.py:390 +#: documents/models.py:417 msgid "correspondent is" msgstr "联系人是" -#: documents/models.py:391 +#: documents/models.py:418 msgid "document type is" msgstr "文档类型是" -#: documents/models.py:392 +#: documents/models.py:419 msgid "is in inbox" msgstr "在收件箱中" -#: documents/models.py:393 +#: documents/models.py:420 msgid "has tag" msgstr "有标签" -#: documents/models.py:394 +#: documents/models.py:421 msgid "has any tag" msgstr "有任意标签" -#: documents/models.py:395 +#: documents/models.py:422 msgid "created before" msgstr "在此时间之前创建" -#: documents/models.py:396 +#: documents/models.py:423 msgid "created after" msgstr "在此时间之后创建" -#: documents/models.py:397 +#: documents/models.py:424 msgid "created year is" msgstr "创建年份是" -#: documents/models.py:398 +#: documents/models.py:425 msgid "created month is" msgstr "创建月份是" -#: documents/models.py:399 +#: documents/models.py:426 msgid "created day is" msgstr "创建日期是" -#: documents/models.py:400 +#: documents/models.py:427 msgid "added before" msgstr "添加早于" -#: documents/models.py:401 +#: documents/models.py:428 msgid "added after" msgstr "添加晚于" -#: documents/models.py:402 +#: documents/models.py:429 msgid "modified before" msgstr "修改早于" -#: documents/models.py:403 +#: documents/models.py:430 msgid "modified after" msgstr "修改晚于" -#: documents/models.py:404 +#: documents/models.py:431 msgid "does not have tag" msgstr "没有标签" -#: documents/models.py:405 +#: documents/models.py:432 msgid "does not have ASN" msgstr "没有 ASN" -#: documents/models.py:406 +#: documents/models.py:433 msgid "title or content contains" msgstr "标题或内容包含" -#: documents/models.py:407 +#: documents/models.py:434 msgid "fulltext query" msgstr "全文检索" -#: documents/models.py:408 +#: documents/models.py:435 msgid "more like this" msgstr "更多类似内容" -#: documents/models.py:409 +#: documents/models.py:436 msgid "has tags in" msgstr "有标签包含于" -#: documents/models.py:410 +#: documents/models.py:437 msgid "ASN greater than" msgstr "" -#: documents/models.py:411 +#: documents/models.py:438 msgid "ASN less than" msgstr "" -#: documents/models.py:412 +#: documents/models.py:439 msgid "storage path is" msgstr "" -#: documents/models.py:422 +#: documents/models.py:449 msgid "rule type" msgstr "规则类型" -#: documents/models.py:424 +#: documents/models.py:451 msgid "value" msgstr "值" -#: documents/models.py:427 +#: documents/models.py:454 msgid "filter rule" msgstr "过滤规则" -#: documents/models.py:428 +#: documents/models.py:455 msgid "filter rules" msgstr "过滤规则" -#: documents/models.py:536 +#: documents/models.py:563 msgid "Task ID" msgstr "" -#: documents/models.py:537 +#: documents/models.py:564 msgid "Celery ID for the Task that was run" msgstr "" -#: documents/models.py:542 +#: documents/models.py:569 msgid "Acknowledged" msgstr "" -#: documents/models.py:543 +#: documents/models.py:570 msgid "If the task is acknowledged via the frontend or API" msgstr "" -#: documents/models.py:549 documents/models.py:556 -msgid "Task Name" +#: documents/models.py:576 +msgid "Task Filename" msgstr "" -#: documents/models.py:550 +#: documents/models.py:577 msgid "Name of the file which the Task was run for" msgstr "" -#: documents/models.py:557 -msgid "Name of the Task which was run" -msgstr "" - -#: documents/models.py:562 -msgid "Task Positional Arguments" -msgstr "" - -#: documents/models.py:564 -msgid "JSON representation of the positional arguments used with the task" -msgstr "" - -#: documents/models.py:569 -msgid "Task Named Arguments" -msgstr "" - -#: documents/models.py:571 -msgid "JSON representation of the named arguments used with the task" -msgstr "" - -#: documents/models.py:578 -msgid "Task State" -msgstr "" - -#: documents/models.py:579 -msgid "Current state of the task being run" +#: documents/models.py:583 +msgid "Task Name" msgstr "" #: documents/models.py:584 -msgid "Created DateTime" -msgstr "" - -#: documents/models.py:585 -msgid "Datetime field when the task result was created in UTC" -msgstr "" - -#: documents/models.py:590 -msgid "Started DateTime" +msgid "Name of the Task which was run" msgstr "" #: documents/models.py:591 -msgid "Datetime field when the task was started in UTC" +msgid "Task State" msgstr "" -#: documents/models.py:596 -msgid "Completed DateTime" +#: documents/models.py:592 +msgid "Current state of the task being run" msgstr "" #: documents/models.py:597 -msgid "Datetime field when the task was completed in UTC" +msgid "Created DateTime" msgstr "" -#: documents/models.py:602 -msgid "Result Data" +#: documents/models.py:598 +msgid "Datetime field when the task result was created in UTC" +msgstr "" + +#: documents/models.py:603 +msgid "Started DateTime" msgstr "" #: documents/models.py:604 +msgid "Datetime field when the task was started in UTC" +msgstr "" + +#: documents/models.py:609 +msgid "Completed DateTime" +msgstr "" + +#: documents/models.py:610 +msgid "Datetime field when the task was completed in UTC" +msgstr "" + +#: documents/models.py:615 +msgid "Result Data" +msgstr "" + +#: documents/models.py:617 msgid "The data returned by the task" msgstr "" -#: documents/models.py:613 +#: documents/models.py:626 msgid "Comment for the document" msgstr "" -#: documents/models.py:642 +#: documents/models.py:650 +msgid "user" +msgstr "用户" + +#: documents/models.py:655 msgid "comment" msgstr "" -#: documents/models.py:643 +#: documents/models.py:656 msgid "comments" msgstr "" -#: documents/serialisers.py:72 +#: documents/serialisers.py:80 #, python-format msgid "Invalid regular expression: %(error)s" msgstr "无效的正则表达式:%(error)s" -#: documents/serialisers.py:193 +#: documents/serialisers.py:320 msgid "Invalid color." msgstr "无效的颜色" -#: documents/serialisers.py:518 +#: documents/serialisers.py:700 #, python-format msgid "File type %(type)s not supported" msgstr "不支持文件类型 %(type)s" -#: documents/serialisers.py:599 +#: documents/serialisers.py:794 msgid "Invalid variable detected." msgstr "检测到无效变量。" @@ -556,323 +552,363 @@ msgstr "密码" msgid "Sign in" msgstr "登录" -#: paperless/settings.py:378 +#: paperless/apps.py:9 +msgid "Paperless" +msgstr "" + +#: paperless/settings.py:521 msgid "English (US)" msgstr "英语(美国)" -#: paperless/settings.py:379 +#: paperless/settings.py:522 +msgid "Arabic" +msgstr "" + +#: paperless/settings.py:523 msgid "Belarusian" msgstr "白俄罗斯语" -#: paperless/settings.py:380 +#: paperless/settings.py:524 msgid "Czech" msgstr "捷克语" -#: paperless/settings.py:381 +#: paperless/settings.py:525 msgid "Danish" msgstr "丹麦语" -#: paperless/settings.py:382 +#: paperless/settings.py:526 msgid "German" msgstr "德语" -#: paperless/settings.py:383 +#: paperless/settings.py:527 msgid "English (GB)" msgstr "英语(英国)" -#: paperless/settings.py:384 +#: paperless/settings.py:528 msgid "Spanish" msgstr "西班牙语" -#: paperless/settings.py:385 +#: paperless/settings.py:529 msgid "French" msgstr "法语" -#: paperless/settings.py:386 +#: paperless/settings.py:530 msgid "Italian" msgstr "意大利语" -#: paperless/settings.py:387 +#: paperless/settings.py:531 msgid "Luxembourgish" msgstr "卢森堡语" -#: paperless/settings.py:388 +#: paperless/settings.py:532 msgid "Dutch" msgstr "荷兰语" -#: paperless/settings.py:389 +#: paperless/settings.py:533 msgid "Polish" msgstr "波兰语" -#: paperless/settings.py:390 +#: paperless/settings.py:534 msgid "Portuguese (Brazil)" msgstr "葡萄牙语 (巴西)" -#: paperless/settings.py:391 +#: paperless/settings.py:535 msgid "Portuguese" msgstr "葡萄牙语" -#: paperless/settings.py:392 +#: paperless/settings.py:536 msgid "Romanian" msgstr "罗马尼亚语" -#: paperless/settings.py:393 +#: paperless/settings.py:537 msgid "Russian" msgstr "俄语" -#: paperless/settings.py:394 +#: paperless/settings.py:538 msgid "Slovenian" msgstr "斯洛语尼亚语" -#: paperless/settings.py:395 +#: paperless/settings.py:539 msgid "Serbian" msgstr "塞尔维亚语" -#: paperless/settings.py:396 +#: paperless/settings.py:540 msgid "Swedish" msgstr "瑞典语" -#: paperless/settings.py:397 +#: paperless/settings.py:541 msgid "Turkish" msgstr "土耳其语" -#: paperless/settings.py:398 +#: paperless/settings.py:542 msgid "Chinese Simplified" msgstr "简体中文" -#: paperless/urls.py:161 +#: paperless/urls.py:169 msgid "Paperless-ngx administration" msgstr "Paperless-ngx 管理" -#: paperless_mail/admin.py:29 +#: paperless_mail/admin.py:30 msgid "Authentication" msgstr "身份验证" -#: paperless_mail/admin.py:30 +#: paperless_mail/admin.py:31 msgid "Advanced settings" msgstr "高级设置" -#: paperless_mail/admin.py:47 +#: paperless_mail/admin.py:48 msgid "Filter" msgstr "过滤器" -#: paperless_mail/admin.py:50 +#: paperless_mail/admin.py:51 msgid "Paperless will only process mails that match ALL of the filters given below." msgstr "Paperless-ngx 只会处理符合以下所有过滤规则的邮件。" -#: paperless_mail/admin.py:64 +#: paperless_mail/admin.py:66 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:69 +msgid "The action applied to the mail. This action is only performed when the mail body or attachments were consumed from the mail." +msgstr "" -#: paperless_mail/admin.py:75 +#: paperless_mail/admin.py:77 msgid "Metadata" msgstr "元数据" -#: paperless_mail/admin.py:78 +#: paperless_mail/admin.py:80 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:8 +#: paperless_mail/apps.py:10 msgid "Paperless mail" msgstr "Paperless-ngx 邮件" -#: paperless_mail/models.py:8 +#: paperless_mail/models.py:9 msgid "mail account" msgstr "邮件账号" -#: paperless_mail/models.py:9 +#: paperless_mail/models.py:10 msgid "mail accounts" msgstr "邮件账户" -#: paperless_mail/models.py:12 +#: paperless_mail/models.py:13 msgid "No encryption" msgstr "无加密" -#: paperless_mail/models.py:13 +#: paperless_mail/models.py:14 msgid "Use SSL" msgstr "使用 SSL" -#: paperless_mail/models.py:14 +#: paperless_mail/models.py:15 msgid "Use STARTTLS" msgstr "使用 STARTTLS" -#: paperless_mail/models.py:18 +#: paperless_mail/models.py:19 msgid "IMAP server" msgstr "IMAP 服务器" -#: paperless_mail/models.py:21 +#: paperless_mail/models.py:22 msgid "IMAP port" msgstr "IMAP 端口" -#: paperless_mail/models.py:25 +#: paperless_mail/models.py:26 msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections." msgstr "对于未加密的连接和STARTTLS连接,通常为143端口,SSL连接为993端口。" -#: paperless_mail/models.py:31 +#: paperless_mail/models.py:32 msgid "IMAP security" msgstr "IMAP 安全" -#: paperless_mail/models.py:36 +#: paperless_mail/models.py:37 msgid "username" msgstr "用户名" -#: paperless_mail/models.py:38 +#: paperless_mail/models.py:39 msgid "password" msgstr "密码" -#: paperless_mail/models.py:41 +#: paperless_mail/models.py:42 msgid "character set" msgstr "字符集" -#: paperless_mail/models.py:45 +#: paperless_mail/models.py:46 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:56 +#: paperless_mail/models.py:57 msgid "mail rule" msgstr "邮件规则" -#: paperless_mail/models.py:57 +#: paperless_mail/models.py:58 msgid "mail rules" msgstr "邮件规则" -#: paperless_mail/models.py:60 +#: paperless_mail/models.py:61 paperless_mail/models.py:69 msgid "Only process attachments." msgstr "只处理附件。" -#: paperless_mail/models.py:61 +#: paperless_mail/models.py:62 +msgid "Process full Mail (with embedded attachments in file) as .eml" +msgstr "" + +#: paperless_mail/models.py:64 +msgid "Process full Mail (with embedded attachments in file) as .eml + process attachments as separate documents" +msgstr "" + +#: paperless_mail/models.py:70 msgid "Process all files, including 'inline' attachments." msgstr "处理所有文件,包括“内嵌”附件。" -#: paperless_mail/models.py:64 +#: paperless_mail/models.py:73 msgid "Delete" msgstr "删除" -#: paperless_mail/models.py:65 +#: paperless_mail/models.py:74 msgid "Move to specified folder" msgstr "移动到指定文件夹" -#: paperless_mail/models.py:66 +#: paperless_mail/models.py:75 msgid "Mark as read, don't process read mails" msgstr "标记为已读,不处理已读邮件" -#: paperless_mail/models.py:67 +#: paperless_mail/models.py:76 msgid "Flag the mail, don't process flagged mails" msgstr "标记邮件,不处理已标记的邮件" -#: paperless_mail/models.py:68 +#: paperless_mail/models.py:77 msgid "Tag the mail with specified tag, don't process tagged mails" msgstr "用指定标签标记邮件,不要处理已标记的邮件" -#: paperless_mail/models.py:71 +#: paperless_mail/models.py:80 msgid "Use subject as title" msgstr "使用主题作为标题" -#: paperless_mail/models.py:72 +#: paperless_mail/models.py:81 msgid "Use attachment filename as title" msgstr "使用附件名作为标题" -#: paperless_mail/models.py:75 +#: paperless_mail/models.py:84 msgid "Do not assign a correspondent" msgstr "不分配联系人" -#: paperless_mail/models.py:76 +#: paperless_mail/models.py:85 msgid "Use mail address" msgstr "使用邮件地址" -#: paperless_mail/models.py:77 +#: paperless_mail/models.py:86 msgid "Use name (or mail address if not available)" msgstr "使用名称 (如果不可用则使用邮箱地址)" -#: paperless_mail/models.py:78 +#: paperless_mail/models.py:87 msgid "Use correspondent selected below" msgstr "使用下面选择的联系人" -#: paperless_mail/models.py:82 +#: paperless_mail/models.py:91 msgid "order" msgstr "排序" -#: paperless_mail/models.py:88 +#: paperless_mail/models.py:97 msgid "account" msgstr "账户" -#: paperless_mail/models.py:92 +#: paperless_mail/models.py:101 paperless_mail/models.py:231 msgid "folder" msgstr "文件夹" -#: paperless_mail/models.py:96 +#: paperless_mail/models.py:105 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:102 +#: paperless_mail/models.py:111 msgid "filter from" msgstr "过滤来自" -#: paperless_mail/models.py:108 +#: paperless_mail/models.py:117 msgid "filter subject" msgstr "过滤主题" -#: paperless_mail/models.py:114 +#: paperless_mail/models.py:123 msgid "filter body" msgstr "过滤内容" -#: paperless_mail/models.py:121 +#: paperless_mail/models.py:130 msgid "filter attachment filename" msgstr "过滤附件文件名" -#: paperless_mail/models.py:126 +#: paperless_mail/models.py:135 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:133 +#: paperless_mail/models.py:142 msgid "maximum age" msgstr "存活期" -#: paperless_mail/models.py:135 +#: paperless_mail/models.py:144 msgid "Specified in days." msgstr "指定日期。" -#: paperless_mail/models.py:139 +#: paperless_mail/models.py:148 msgid "attachment type" msgstr "附件类型" -#: paperless_mail/models.py:143 +#: paperless_mail/models.py:152 msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter." msgstr "内嵌附件包含嵌入图像,所以最好将此选项与文件名过滤器结合起来。" -#: paperless_mail/models.py:149 +#: paperless_mail/models.py:158 +msgid "consumption scope" +msgstr "" + +#: paperless_mail/models.py:164 msgid "action" msgstr "操作" -#: paperless_mail/models.py:155 +#: paperless_mail/models.py:170 msgid "action parameter" msgstr "操作参数" -#: paperless_mail/models.py:160 +#: paperless_mail/models.py:175 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 +#: paperless_mail/models.py:183 msgid "assign title from" msgstr "分配标题来自" -#: paperless_mail/models.py:176 +#: paperless_mail/models.py:191 msgid "assign this tag" msgstr "分配此标签" -#: paperless_mail/models.py:184 +#: paperless_mail/models.py:199 msgid "assign this document type" msgstr "分配此文档类型" -#: paperless_mail/models.py:188 +#: paperless_mail/models.py:203 msgid "assign correspondent from" msgstr "分配联系人来自" -#: paperless_mail/models.py:198 +#: paperless_mail/models.py:213 msgid "assign this correspondent" msgstr "分配此联系人" +#: paperless_mail/models.py:239 +msgid "uid" +msgstr "" + +#: paperless_mail/models.py:247 +msgid "subject" +msgstr "" + +#: paperless_mail/models.py:255 +msgid "received" +msgstr "" + +#: paperless_mail/models.py:262 +msgid "processed" +msgstr "" + +#: paperless_mail/models.py:268 +msgid "status" +msgstr "" + diff --git a/src/manage.py b/src/manage.py old mode 100644 new mode 100755 diff --git a/src/paperless/apps.py b/src/paperless/apps.py new file mode 100644 index 000000000..323099745 --- /dev/null +++ b/src/paperless/apps.py @@ -0,0 +1,15 @@ +from django.apps import AppConfig +from django.utils.translation import gettext_lazy as _ +from paperless.signals import handle_failed_login + + +class PaperlessConfig(AppConfig): + name = "paperless" + + verbose_name = _("Paperless") + + def ready(self): + from django.contrib.auth.signals import user_login_failed + + user_login_failed.connect(handle_failed_login) + AppConfig.ready(self) diff --git a/src/paperless/checks.py b/src/paperless/checks.py index 845ff2d0b..b6a931ecc 100644 --- a/src/paperless/checks.py +++ b/src/paperless/checks.py @@ -42,7 +42,7 @@ def path_check(var, directory): Error( writeable_message.format(var), writeable_hint.format( - f"\n{dir_mode} {dir_owner} {dir_group} " f"{directory}\n", + f"\n{dir_mode} {dir_owner} {dir_group} {directory}\n", ), ), ) @@ -130,6 +130,23 @@ def settings_values_check(app_configs, **kwargs): if settings.OCR_MODE not in {"force", "skip", "redo", "skip_noarchive"}: msgs.append(Error(f'OCR output mode "{settings.OCR_MODE}" is not valid')) + if settings.OCR_MODE == "skip_noarchive": + msgs.append( + Warning( + 'OCR output mode "skip_noarchive" is deprecated and will be ' + "removed in a future version. Please use " + "PAPERLESS_OCR_SKIP_ARCHIVE_FILE instead.", + ), + ) + + if settings.OCR_SKIP_ARCHIVE_FILE not in {"never", "with_text", "always"}: + msgs.append( + Error( + "OCR_SKIP_ARCHIVE_FILE setting " + f'"{settings.OCR_SKIP_ARCHIVE_FILE}" is not valid', + ), + ) + if settings.OCR_CLEAN not in {"clean", "clean-final", "none"}: msgs.append(Error(f'OCR clean mode "{settings.OCR_CLEAN}" is not valid')) return msgs @@ -141,7 +158,7 @@ def settings_values_check(app_configs, **kwargs): try: import zoneinfo except ImportError: # pragma: nocover - import backports.zoneinfo as zoneinfo + from backports import zoneinfo msgs = [] if settings.TIME_ZONE not in zoneinfo.available_timezones(): msgs.append( @@ -149,4 +166,17 @@ def settings_values_check(app_configs, **kwargs): ) return msgs - return _ocrmypdf_settings_check() + _timezone_validate() + def _barcode_scanner_validate(): + """ + Validates the barcode scanner type + """ + msgs = [] + if settings.CONSUMER_BARCODE_SCANNER not in ["PYZBAR", "ZXING"]: + msgs.append( + Error(f'Invalid Barcode Scanner "{settings.CONSUMER_BARCODE_SCANNER}"'), + ) + return msgs + + return ( + _ocrmypdf_settings_check() + _timezone_validate() + _barcode_scanner_validate() + ) diff --git a/src/paperless/consumers.py b/src/paperless/consumers.py index 7013a8e79..7c34c8c39 100644 --- a/src/paperless/consumers.py +++ b/src/paperless/consumers.py @@ -12,13 +12,13 @@ class StatusConsumer(WebsocketConsumer): def connect(self): if not self._authenticated(): - raise DenyConnection() + raise DenyConnection else: async_to_sync(self.channel_layer.group_add)( "status_updates", self.channel_name, ) - raise AcceptConnection() + raise AcceptConnection def disconnect(self, close_code): async_to_sync(self.channel_layer.group_discard)( diff --git a/src/paperless/filters.py b/src/paperless/filters.py new file mode 100644 index 000000000..5be7cc2f7 --- /dev/null +++ b/src/paperless/filters.py @@ -0,0 +1,16 @@ +from django.contrib.auth.models import Group +from django.contrib.auth.models import User +from django_filters.rest_framework import FilterSet +from documents.filters import CHAR_KWARGS + + +class UserFilterSet(FilterSet): + class Meta: + model = User + fields = {"username": CHAR_KWARGS} + + +class GroupFilterSet(FilterSet): + class Meta: + model = Group + fields = {"name": CHAR_KWARGS} diff --git a/src/paperless/serialisers.py b/src/paperless/serialisers.py new file mode 100644 index 000000000..54bc2b353 --- /dev/null +++ b/src/paperless/serialisers.py @@ -0,0 +1,101 @@ +from django.contrib.auth.models import Group +from django.contrib.auth.models import Permission +from django.contrib.auth.models import User +from rest_framework import serializers + + +class ObfuscatedUserPasswordField(serializers.Field): + """ + Sends *** string instead of password in the clear + """ + + def to_representation(self, value): + return "**********" if len(value) > 0 else "" + + def to_internal_value(self, data): + return data + + +class UserSerializer(serializers.ModelSerializer): + + password = ObfuscatedUserPasswordField(required=False) + user_permissions = serializers.SlugRelatedField( + many=True, + queryset=Permission.objects.all(), + slug_field="codename", + required=False, + ) + inherited_permissions = serializers.SerializerMethodField() + + class Meta: + model = User + fields = ( + "id", + "username", + "email", + "password", + "first_name", + "last_name", + "date_joined", + "is_staff", + "is_active", + "is_superuser", + "groups", + "user_permissions", + "inherited_permissions", + ) + + def get_inherited_permissions(self, obj): + return obj.get_group_permissions() + + def update(self, instance, validated_data): + if "password" in validated_data: + if len(validated_data.get("password").replace("*", "")) > 0: + instance.set_password(validated_data.get("password")) + instance.save() + validated_data.pop("password") + super().update(instance, validated_data) + return instance + + def create(self, validated_data): + groups = None + if "groups" in validated_data: + groups = validated_data.pop("groups") + user_permissions = None + if "user_permissions" in validated_data: + user_permissions = validated_data.pop("user_permissions") + password = None + if ( + "password" in validated_data + and len(validated_data.get("password").replace("*", "")) > 0 + ): + password = validated_data.pop("password") + user = User.objects.create(**validated_data) + # set groups + if groups: + user.groups.set(groups) + # set permissions + if user_permissions: + user.user_permissions.set(user_permissions) + # set password + if password: + user.set_password(password) + user.save() + return user + + +class GroupSerializer(serializers.ModelSerializer): + + permissions = serializers.SlugRelatedField( + many=True, + queryset=Permission.objects.all(), + slug_field="codename", + ) + + class Meta: + model = Group + fields = ( + "id", + "name", + "permissions", + ) diff --git a/src/paperless/settings.py b/src/paperless/settings.py index 409579bda..4930a168c 100644 --- a/src/paperless/settings.py +++ b/src/paperless/settings.py @@ -5,11 +5,15 @@ import multiprocessing import os import re import tempfile +from os import PathLike +from pathlib import Path from typing import Dict from typing import Final +from typing import List from typing import Optional from typing import Set from typing import Tuple +from typing import Union from urllib.parse import urlparse from celery.schedules import crontab @@ -63,11 +67,28 @@ def __get_float(key: str, default: float) -> float: return float(os.getenv(key, default)) -def __get_path(key: str, default: str) -> str: +def __get_path(key: str, default: Union[PathLike, str]) -> Path: """ Return a normalized, absolute path based on the environment variable or a default """ - return os.path.abspath(os.path.normpath(os.environ.get(key, default))) + return Path(os.environ.get(key, default)).resolve() + + +def __get_list( + key: str, + default: Optional[List[str]] = None, + sep: str = ",", +) -> List[str]: + """ + Return a list of elements from the environment, as separated by the given + string, or the default if the key does not exist + """ + if key in os.environ: + return list(filter(None, os.environ[key].split(sep))) + elif default is not None: + return default + else: + return [] def _parse_redis_url(env_redis: Optional[str]) -> Tuple[str]: @@ -201,16 +222,16 @@ DEBUG = __get_boolean("PAPERLESS_DEBUG", "NO") # Directories # ############################################################################### -BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +BASE_DIR: Path = Path(__file__).resolve().parent.parent -STATIC_ROOT = __get_path("PAPERLESS_STATICDIR", os.path.join(BASE_DIR, "..", "static")) +STATIC_ROOT = __get_path("PAPERLESS_STATICDIR", BASE_DIR.parent / "static") -MEDIA_ROOT = __get_path("PAPERLESS_MEDIA_ROOT", os.path.join(BASE_DIR, "..", "media")) -ORIGINALS_DIR = os.path.join(MEDIA_ROOT, "documents", "originals") -ARCHIVE_DIR = os.path.join(MEDIA_ROOT, "documents", "archive") -THUMBNAIL_DIR = os.path.join(MEDIA_ROOT, "documents", "thumbnails") +MEDIA_ROOT = __get_path("PAPERLESS_MEDIA_ROOT", BASE_DIR.parent / "media") +ORIGINALS_DIR = MEDIA_ROOT / "documents" / "originals" +ARCHIVE_DIR = MEDIA_ROOT / "documents" / "archive" +THUMBNAIL_DIR = MEDIA_ROOT / "documents" / "thumbnails" -DATA_DIR = __get_path("PAPERLESS_DATA_DIR", os.path.join(BASE_DIR, "..", "data")) +DATA_DIR = __get_path("PAPERLESS_DATA_DIR", BASE_DIR.parent / "data") NLTK_DIR = __get_path("PAPERLESS_NLTK_DIR", "/usr/share/nltk_data") @@ -218,28 +239,28 @@ TRASH_DIR = os.getenv("PAPERLESS_TRASH_DIR") # Lock file for synchronizing changes to the MEDIA directory across multiple # threads. -MEDIA_LOCK = os.path.join(MEDIA_ROOT, "media.lock") -INDEX_DIR = os.path.join(DATA_DIR, "index") -MODEL_FILE = os.path.join(DATA_DIR, "classification_model.pickle") +MEDIA_LOCK = MEDIA_ROOT / "media.lock" +INDEX_DIR = DATA_DIR / "index" +MODEL_FILE = DATA_DIR / "classification_model.pickle" -LOGGING_DIR = __get_path("PAPERLESS_LOGGING_DIR", os.path.join(DATA_DIR, "log")) +LOGGING_DIR = __get_path("PAPERLESS_LOGGING_DIR", DATA_DIR / "log") CONSUMPTION_DIR = __get_path( "PAPERLESS_CONSUMPTION_DIR", - os.path.join(BASE_DIR, "..", "consume"), + BASE_DIR.parent / "consume", ) # This will be created if it doesn't exist SCRATCH_DIR = __get_path( "PAPERLESS_SCRATCH_DIR", - os.path.join(tempfile.gettempdir(), "paperless"), + Path(tempfile.gettempdir()) / "paperless", ) ############################################################################### # Application Definition # ############################################################################### -env_apps = os.getenv("PAPERLESS_APPS").split(",") if os.getenv("PAPERLESS_APPS") else [] +env_apps = __get_list("PAPERLESS_APPS") INSTALLED_APPS = [ "whitenoise.runserver_nostatic", @@ -260,7 +281,9 @@ INSTALLED_APPS = [ "rest_framework.authtoken", "django_filters", "django_celery_results", -] + env_apps + "guardian", + *env_apps, +] if DEBUG: INSTALLED_APPS.append("channels") @@ -336,7 +359,7 @@ TEMPLATES = [ CHANNEL_LAYERS = { "default": { - "BACKEND": "channels_redis.core.RedisChannelLayer", + "BACKEND": "channels_redis.pubsub.RedisPubSubChannelLayer", "CONFIG": { "hosts": [_CHANNELS_REDIS_URL], "capacity": 2000, # default 100 @@ -349,6 +372,11 @@ CHANNEL_LAYERS = { # Security # ############################################################################### +AUTHENTICATION_BACKENDS = [ + "guardian.backends.ObjectPermissionBackend", + "django.contrib.auth.backends.ModelBackend", +] + AUTO_LOGIN_USERNAME = os.getenv("PAPERLESS_AUTO_LOGIN_USERNAME") if AUTO_LOGIN_USERNAME: @@ -365,54 +393,52 @@ HTTP_REMOTE_USER_HEADER_NAME = os.getenv( if ENABLE_HTTP_REMOTE_USER: MIDDLEWARE.append("paperless.auth.HttpRemoteUserMiddleware") - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.RemoteUserBackend", - "django.contrib.auth.backends.ModelBackend", - ] + AUTHENTICATION_BACKENDS.insert(0, "django.contrib.auth.backends.RemoteUserBackend") REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"].append( "rest_framework.authentication.RemoteUserAuthentication", ) # X-Frame options for embedded PDF display: -if DEBUG: - X_FRAME_OPTIONS = "ANY" -else: - X_FRAME_OPTIONS = "SAMEORIGIN" +X_FRAME_OPTIONS = "ANY" if DEBUG else "SAMEORIGIN" # The next 3 settings can also be set using just PAPERLESS_URL -_csrf_origins = os.getenv("PAPERLESS_CSRF_TRUSTED_ORIGINS") -if _csrf_origins: - CSRF_TRUSTED_ORIGINS = _csrf_origins.split(",") -else: - CSRF_TRUSTED_ORIGINS = [] +CSRF_TRUSTED_ORIGINS = __get_list("PAPERLESS_CSRF_TRUSTED_ORIGINS") # We allow CORS from localhost:8000 -CORS_ALLOWED_ORIGINS = tuple( - os.getenv("PAPERLESS_CORS_ALLOWED_HOSTS", "http://localhost:8000").split(","), +CORS_ALLOWED_ORIGINS = __get_list( + "PAPERLESS_CORS_ALLOWED_HOSTS", + ["http://localhost:8000"], ) if DEBUG: # Allow access from the angular development server during debugging - CORS_ALLOWED_ORIGINS += ("http://localhost:4200",) + CORS_ALLOWED_ORIGINS.append("http://localhost:4200") -_allowed_hosts = os.getenv("PAPERLESS_ALLOWED_HOSTS") -if _allowed_hosts: - ALLOWED_HOSTS = _allowed_hosts.split(",") -else: - ALLOWED_HOSTS = ["*"] +ALLOWED_HOSTS = __get_list("PAPERLESS_ALLOWED_HOSTS", ["*"]) _paperless_url = os.getenv("PAPERLESS_URL") if _paperless_url: _paperless_uri = urlparse(_paperless_url) CSRF_TRUSTED_ORIGINS.append(_paperless_url) - CORS_ALLOWED_ORIGINS += (_paperless_url,) - if _allowed_hosts: + CORS_ALLOWED_ORIGINS.append(_paperless_url) + if ["*"] != ALLOWED_HOSTS: ALLOWED_HOSTS.append(_paperless_uri.hostname) else: # always allow localhost. Necessary e.g. for healthcheck in docker. ALLOWED_HOSTS = [_paperless_uri.hostname] + ["localhost"] +# For use with trusted proxies +TRUSTED_PROXIES = __get_list("PAPERLESS_TRUSTED_PROXIES") + +USE_X_FORWARDED_HOST = __get_boolean("PAPERLESS_USE_X_FORWARD_HOST", "false") +USE_X_FORWARDED_PORT = __get_boolean("PAPERLESS_USE_X_FORWARD_PORT", "false") +SECURE_PROXY_SSL_HEADER = ( + tuple(json.loads(os.environ["PAPERLESS_PROXY_SSL_HEADER"])) + if "PAPERLESS_PROXY_SSL_HEADER" in os.environ + else None +) + # The secret key has a default that should be fine so long as you're hosting # Paperless on a closed network. However, if you're putting this anywhere # public, you should change the key to something unique and verbose. @@ -489,7 +515,12 @@ if os.getenv("PAPERLESS_DBHOST"): else: # Default to PostgresDB engine = "django.db.backends.postgresql_psycopg2" - options = {"sslmode": os.getenv("PAPERLESS_DBSSLMODE", "prefer")} + options = { + "sslmode": os.getenv("PAPERLESS_DBSSLMODE", "prefer"), + "sslrootcert": os.getenv("PAPERLESS_DBSSLROOTCERT", None), + "sslcert": os.getenv("PAPERLESS_DBSSLCERT", None), + "sslkey": os.getenv("PAPERLESS_DBSSLKEY", None), + } DATABASES["default"]["ENGINE"] = engine DATABASES["default"]["OPTIONS"].update(options) @@ -511,6 +542,7 @@ LANGUAGES = [ ("en-us", _("English (US)")), # needs to be first to act as fallback language ("ar-ar", _("Arabic")), ("be-by", _("Belarusian")), + ("ca-es", _("Catalan")), ("cs-cz", _("Czech")), ("da-dk", _("Danish")), ("de-de", _("German")), @@ -586,11 +618,20 @@ LOGGING = { "maxBytes": LOGROTATE_MAX_SIZE, "backupCount": LOGROTATE_MAX_BACKUPS, }, + "file_celery": { + "class": "concurrent_log_handler.ConcurrentRotatingFileHandler", + "formatter": "verbose", + "filename": os.path.join(LOGGING_DIR, "celery.log"), + "maxBytes": LOGROTATE_MAX_SIZE, + "backupCount": LOGROTATE_MAX_BACKUPS, + }, }, "root": {"handlers": ["console"]}, "loggers": { "paperless": {"handlers": ["file_paperless"], "level": "DEBUG"}, "paperless_mail": {"handlers": ["file_mail"], "level": "DEBUG"}, + "celery": {"handlers": ["file_celery"], "level": "DEBUG"}, + "kombu": {"handlers": ["file_celery"], "level": "DEBUG"}, }, } @@ -618,6 +659,11 @@ CELERY_RESULT_EXTENDED = True CELERY_RESULT_BACKEND = "django-db" CELERY_CACHE_BACKEND = "default" +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#task-serializer +CELERY_TASK_SERIALIZER = "pickle" +# https://docs.celeryq.dev/en/stable/userguide/configuration.html#std-setting-accept_content +CELERY_ACCEPT_CONTENT = ["application/json", "application/x-python-serialize"] + # https://docs.celeryq.dev/en/stable/userguide/configuration.html#beat-schedule CELERY_BEAT_SCHEDULE = _parse_beat_schedule() @@ -693,6 +739,12 @@ CONSUMER_BARCODE_STRING: Final[str] = os.getenv( "PATCHT", ) +consumer_barcode_scanner_tmp: Final[str] = os.getenv( + "PAPERLESS_CONSUMER_BARCODE_SCANNER", + "PYZBAR", +) +CONSUMER_BARCODE_SCANNER = consumer_barcode_scanner_tmp.upper() + CONSUMER_ENABLE_ASN_BARCODE: Final[bool] = __get_boolean( "PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE", ) @@ -715,6 +767,8 @@ OCR_OUTPUT_TYPE = os.getenv("PAPERLESS_OCR_OUTPUT_TYPE", "pdfa") # skip. redo, force OCR_MODE = os.getenv("PAPERLESS_OCR_MODE", "skip") +OCR_SKIP_ARCHIVE_FILE = os.getenv("PAPERLESS_OCR_SKIP_ARCHIVE_FILE", "never") + OCR_IMAGE_DPI = os.getenv("PAPERLESS_OCR_IMAGE_DPI") OCR_CLEAN = os.getenv("PAPERLESS_OCR_CLEAN", "clean") diff --git a/src/paperless/signals.py b/src/paperless/signals.py new file mode 100644 index 000000000..40e2682dd --- /dev/null +++ b/src/paperless/signals.py @@ -0,0 +1,32 @@ +import logging + +from django.conf import settings +from ipware import get_client_ip + +logger = logging.getLogger("paperless.auth") + + +# https://docs.djangoproject.com/en/4.1/ref/contrib/auth/#django.contrib.auth.signals.user_login_failed +def handle_failed_login(sender, credentials, request, **kwargs): + client_ip, is_routable = get_client_ip( + request, + proxy_trusted_ips=settings.TRUSTED_PROXIES, + ) + if client_ip is None: + logger.info( + f"Login failed for user `{credentials['username']}`." + " Unable to determine IP address.", + ) + else: + if is_routable: + # We got the client's IP address + logger.info( + f"Login failed for user `{credentials['username']}`" + f" from IP `{client_ip}.`", + ) + else: + # The client's IP address is private + logger.info( + f"Login failed for user `{credentials['username']}`" + f" from private IP `{client_ip}.`", + ) diff --git a/src/paperless/tests/__init__.py b/src/paperless/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/paperless/tests/test_checks.py b/src/paperless/tests/test_checks.py index b2d8b5810..7c233de23 100644 --- a/src/paperless/tests/test_checks.py +++ b/src/paperless/tests/test_checks.py @@ -105,6 +105,42 @@ class TestSettingsChecks(DirectoriesMixin, TestCase): self.assertIn('OCR output mode "makeitso"', msg.msg) + @override_settings(OCR_MODE="skip_noarchive") + def test_deprecated_ocr_type(self): + """ + GIVEN: + - Default settings + - OCR type is deprecated + WHEN: + - Settings are validated + THEN: + - deprecation warning reported for OCR type + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn("deprecated", msg.msg) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="invalid") + def test_invalid_ocr_skip_archive_file(self): + """ + GIVEN: + - Default settings + - OCR_SKIP_ARCHIVE_FILE is invalid + WHEN: + - Settings are validated + THEN: + - system check error reported for OCR_SKIP_ARCHIVE_FILE + """ + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('OCR_SKIP_ARCHIVE_FILE setting "invalid"', msg.msg) + @override_settings(OCR_CLEAN="cleanme") def test_invalid_ocr_clean(self): """ @@ -140,3 +176,26 @@ class TestSettingsChecks(DirectoriesMixin, TestCase): msg = msgs[0] self.assertIn('Timezone "TheMoon\\MyCrater"', msg.msg) + + @override_settings(CONSUMER_BARCODE_SCANNER="Invalid") + def test_barcode_scanner_invalid(self): + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('Invalid Barcode Scanner "Invalid"', msg.msg) + + @override_settings(CONSUMER_BARCODE_SCANNER="") + def test_barcode_scanner_empty(self): + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 1) + + msg = msgs[0] + + self.assertIn('Invalid Barcode Scanner ""', msg.msg) + + @override_settings(CONSUMER_BARCODE_SCANNER="PYZBAR") + def test_barcode_scanner_valid(self): + msgs = settings_values_check(None) + self.assertEqual(len(msgs), 0) diff --git a/src/paperless/tests/test_signals.py b/src/paperless/tests/test_signals.py new file mode 100644 index 000000000..1a4d7892f --- /dev/null +++ b/src/paperless/tests/test_signals.py @@ -0,0 +1,80 @@ +from django.http import HttpRequest +from django.test import TestCase +from paperless.signals import handle_failed_login + + +class TestFailedLoginLogging(TestCase): + def setUp(self): + super().setUp() + + self.creds = { + "username": "john lennon", + } + + def test_none(self): + """ + GIVEN: + - Request with no IP possible + WHEN: + - Request provided to signal handler + THEN: + - Unable to determine logged + """ + request = HttpRequest() + request.META = {} + with self.assertLogs("paperless.auth") as logs: + handle_failed_login(None, self.creds, request) + + self.assertEqual( + logs.output, + [ + "INFO:paperless.auth:Login failed for user `john lennon`. Unable to determine IP address.", + ], + ) + + def test_public(self): + """ + GIVEN: + - Request with publicly routeable IP + WHEN: + - Request provided to signal handler + THEN: + - Expected IP is logged + """ + request = HttpRequest() + request.META = { + "HTTP_X_FORWARDED_FOR": "177.139.233.139", + } + with self.assertLogs("paperless.auth") as logs: + handle_failed_login(None, self.creds, request) + + self.assertEqual( + logs.output, + [ + "INFO:paperless.auth:Login failed for user `john lennon` from IP `177.139.233.139.`", + ], + ) + + def test_private(self): + """ + GIVEN: + - Request with private range IP + WHEN: + - Request provided to signal handler + THEN: + - Expected IP is logged + - IP is noted to be a private IP + """ + request = HttpRequest() + request.META = { + "HTTP_X_FORWARDED_FOR": "10.0.0.1", + } + with self.assertLogs("paperless.auth") as logs: + handle_failed_login(None, self.creds, request) + + self.assertEqual( + logs.output, + [ + "INFO:paperless.auth:Login failed for user `john lennon` from private IP `10.0.0.1.`", + ], + ) diff --git a/src/paperless/urls.py b/src/paperless/urls.py index 490be525a..217268508 100644 --- a/src/paperless/urls.py +++ b/src/paperless/urls.py @@ -27,6 +27,9 @@ from documents.views import UiSettingsView from documents.views import UnifiedSearchViewSet from paperless.consumers import StatusConsumer from paperless.views import FaviconView +from paperless.views import GroupViewSet +from paperless.views import UserViewSet +from paperless_mail.views import MailAccountTestView from paperless_mail.views import MailAccountViewSet from paperless_mail.views import MailRuleViewSet from rest_framework.authtoken import views @@ -41,6 +44,8 @@ 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") +api_router.register(r"users", UserViewSet, basename="users") +api_router.register(r"groups", GroupViewSet, basename="groups") api_router.register(r"mail_accounts", MailAccountViewSet) api_router.register(r"mail_rules", MailRuleViewSet) @@ -51,56 +56,57 @@ urlpatterns = [ include( [ re_path( - r"^auth/", + "^auth/", include( ("rest_framework.urls", "rest_framework"), namespace="rest_framework", ), ), re_path( - r"^search/autocomplete/", + "^search/autocomplete/", SearchAutoCompleteView.as_view(), name="autocomplete", ), - re_path(r"^statistics/", StatisticsView.as_view(), name="statistics"), + re_path("^statistics/", StatisticsView.as_view(), name="statistics"), re_path( - r"^documents/post_document/", + "^documents/post_document/", PostDocumentView.as_view(), name="post_document", ), re_path( - r"^documents/bulk_edit/", + "^documents/bulk_edit/", BulkEditView.as_view(), name="bulk_edit", ), re_path( - r"^documents/selection_data/", + "^documents/selection_data/", SelectionDataView.as_view(), name="selection_data", ), re_path( - r"^documents/bulk_download/", + "^documents/bulk_download/", BulkDownloadView.as_view(), name="bulk_download", ), re_path( - r"^remote_version/", + "^remote_version/", RemoteVersionView.as_view(), name="remoteversion", ), + re_path("^ui_settings/", UiSettingsView.as_view(), name="ui_settings"), re_path( - r"^ui_settings/", - UiSettingsView.as_view(), - name="ui_settings", - ), - re_path( - r"^acknowledge_tasks/", + "^acknowledge_tasks/", AcknowledgeTasksView.as_view(), name="acknowledge_tasks", ), + re_path( + "^mail_accounts/test/", + MailAccountTestView.as_view(), + name="mail_accounts_test", + ), path("token/", views.obtain_auth_token), - ] - + api_router.urls, + *api_router.urls, + ], ), ), re_path(r"^favicon.ico$", FaviconView.as_view(), name="favicon"), diff --git a/src/paperless/version.py b/src/paperless/version.py index fe7ecab4d..818ba11eb 100644 --- a/src/paperless/version.py +++ b/src/paperless/version.py @@ -1,7 +1,7 @@ from typing import Final from typing import Tuple -__version__: Final[Tuple[int, int, int]] = (1, 13, 0) +__version__: Final[Tuple[int, int, int]] = (1, 14, 0) # Version string like X.Y.Z __full_version_str__: Final[str] = ".".join(map(str, __version__)) # Version string like X.Y diff --git a/src/paperless/views.py b/src/paperless/views.py index 975df6601..00945e5fb 100644 --- a/src/paperless/views.py +++ b/src/paperless/views.py @@ -1,8 +1,20 @@ import os +from django.contrib.auth.models import Group +from django.contrib.auth.models import User +from django.db.models.functions import Lower from django.http import HttpResponse from django.views.generic import View +from django_filters.rest_framework import DjangoFilterBackend +from documents.permissions import PaperlessObjectPermissions +from paperless.filters import GroupFilterSet +from paperless.filters import UserFilterSet +from paperless.serialisers import GroupSerializer +from paperless.serialisers import UserSerializer +from rest_framework.filters import OrderingFilter from rest_framework.pagination import PageNumberPagination +from rest_framework.permissions import IsAuthenticated +from rest_framework.viewsets import ModelViewSet class StandardPagination(PageNumberPagination): @@ -22,3 +34,31 @@ class FaviconView(View): ) with open(favicon, "rb") as f: return HttpResponse(f, content_type="image/x-icon") + + +class UserViewSet(ModelViewSet): + model = User + + queryset = User.objects.exclude( + username__in=["consumer", "AnonymousUser"], + ).order_by(Lower("username")) + + serializer_class = UserSerializer + pagination_class = StandardPagination + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = (DjangoFilterBackend, OrderingFilter) + filterset_class = UserFilterSet + ordering_fields = ("username",) + + +class GroupViewSet(ModelViewSet): + model = Group + + queryset = Group.objects.order_by(Lower("name")) + + serializer_class = GroupSerializer + pagination_class = StandardPagination + permission_classes = (IsAuthenticated, PaperlessObjectPermissions) + filter_backends = (DjangoFilterBackend, OrderingFilter) + filterset_class = GroupFilterSet + ordering_fields = ("name",) diff --git a/src/paperless_mail/admin.py b/src/paperless_mail/admin.py index ce5341e4e..07582cc0f 100644 --- a/src/paperless_mail/admin.py +++ b/src/paperless_mail/admin.py @@ -3,6 +3,7 @@ from django.contrib import admin from django.utils.translation import gettext_lazy as _ from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_mail.models import ProcessedMail class MailAccountAdminForm(forms.ModelForm): @@ -17,7 +18,16 @@ class MailAccountAdminForm(forms.ModelForm): widgets = { "password": forms.PasswordInput(), } - fields = "__all__" + fields = [ + "name", + "imap_server", + "username", + "imap_security", + "username", + "password", + "is_token", + "character_set", + ] class MailAccountAdmin(admin.ModelAdmin): @@ -26,7 +36,10 @@ class MailAccountAdmin(admin.ModelAdmin): fieldsets = [ (None, {"fields": ["name", "imap_server", "imap_port"]}), - (_("Authentication"), {"fields": ["imap_security", "username", "password"]}), + ( + _("Authentication"), + {"fields": ["imap_security", "username", "password", "is_token"]}, + ), (_("Advanced settings"), {"fields": ["character_set"]}), ] form = MailAccountAdminForm @@ -52,6 +65,7 @@ class MailRuleAdmin(admin.ModelAdmin): ), "fields": ( "filter_from", + "filter_to", "filter_subject", "filter_body", "filter_attachment_filename", @@ -105,5 +119,33 @@ class MailRuleAdmin(admin.ModelAdmin): ordering = ["order"] +class ProcessedMailAdmin(admin.ModelAdmin): + class Meta: + + model = ProcessedMail + fields = "__all__" + + list_display = ("subject", "status", "processed", "received", "rule") + + ordering = ["-processed"] + + readonly_fields = [ + "owner", + "rule", + "folder", + "uid", + "subject", + "received", + "processed", + "status", + "error", + ] + + list_display_links = ["subject"] + + list_filter = ("status", "rule") + + admin.site.register(MailAccount, MailAccountAdmin) admin.site.register(MailRule, MailRuleAdmin) +admin.site.register(ProcessedMail, ProcessedMailAdmin) diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 04caca63c..d792b5a97 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -1,16 +1,29 @@ +import datetime import itertools +import logging import os import re import tempfile +import traceback from datetime import date from datetime import timedelta from fnmatch import fnmatch from typing import Dict +from typing import List +from typing import Union import magic import pathvalidate +from celery import chord +from celery import shared_task +from celery.canvas import Signature from django.conf import settings from django.db import DatabaseError +from django.utils.timezone import is_naive +from django.utils.timezone import make_aware +from documents.data_models import ConsumableDocument +from documents.data_models import DocumentMetadataOverrides +from documents.data_models import DocumentSource from documents.loggers import LoggingMixin from documents.models import Correspondent from documents.parsers import is_mime_type_supported @@ -23,8 +36,10 @@ from imap_tools import MailMessage from imap_tools import MailMessageFlags from imap_tools import NOT from imap_tools.mailbox import MailBoxTls +from imap_tools.query import LogicOperator from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_mail.models import ProcessedMail # Apple Mail sets multiple IMAP KEYWORD and the general "\Flagged" FLAG # imaplib => conn.fetch(b"<message_id>", "FLAGS") @@ -54,40 +69,81 @@ class MailError(Exception): class BaseMailAction: - def get_criteria(self) -> Dict: + """ + Base class for mail actions. A mail action is performed on a mail after + consumption of the document is complete and is used to signal to the user + that this mail was processed by paperless via the mail client. + + Furthermore, mail actions reduce the amount of mails to be analyzed by + excluding mails on which the action was already performed (i.e., excluding + read mails when the action is to mark mails as read). + """ + + def get_criteria(self) -> Union[Dict, LogicOperator]: + """ + Returns filtering criteria/query for this mail action. + """ return {} - def post_consume(self, M, message_uids, parameter): - pass # pragma: nocover + def post_consume( + self, + M: MailBox, + message_uid: str, + parameter: str, + ): # pragma: nocover + """ + Perform mail action on the given mail uid in the mailbox. + """ + raise NotImplementedError class DeleteMailAction(BaseMailAction): - def post_consume(self, M, message_uids, parameter): - M.delete(message_uids) + """ + A mail action that deletes mails after processing. + """ + + def post_consume(self, M: MailBox, message_uid: str, parameter: str): + M.delete(message_uid) class MarkReadMailAction(BaseMailAction): + """ + A mail action that marks mails as read after processing. + """ + def get_criteria(self): return {"seen": False} - def post_consume(self, M, message_uids, parameter): - M.flag(message_uids, [MailMessageFlags.SEEN], True) + def post_consume(self, M: MailBox, message_uid: str, parameter: str): + M.flag(message_uid, [MailMessageFlags.SEEN], True) class MoveMailAction(BaseMailAction): - def post_consume(self, M, message_uids, parameter): - M.move(message_uids, parameter) + """ + A mail action that moves mails to a different folder after processing. + """ + + def post_consume(self, M, message_uid, parameter): + M.move(message_uid, parameter) class FlagMailAction(BaseMailAction): + """ + A mail action that marks mails as important ("star") after processing. + """ + def get_criteria(self): return {"flagged": False} - def post_consume(self, M, message_uids, parameter): - M.flag(message_uids, [MailMessageFlags.FLAGGED], True) + def post_consume(self, M: MailBox, message_uid: str, parameter: str): + M.flag(message_uid, [MailMessageFlags.FLAGGED], True) class TagMailAction(BaseMailAction): + """ + A mail action that tags mails after processing. + """ + def __init__(self, parameter): # The custom tag should look like "apple:<color>" @@ -96,7 +152,7 @@ class TagMailAction(BaseMailAction): _, self.color = parameter.split(":") self.color = self.color.strip() - if not self.color.lower() in APPLE_MAIL_TAG_COLORS.keys(): + if self.color.lower() not in APPLE_MAIL_TAG_COLORS.keys(): raise MailError("Not a valid AppleMail tag color.") self.keyword = None @@ -110,40 +166,187 @@ class TagMailAction(BaseMailAction): # AppleMail: We only need to check if mails are \Flagged if self.color: return {"flagged": False} + elif self.keyword: + return AND(NOT(gmail_label=self.keyword), no_keyword=self.keyword) + else: # pragma: nocover + raise ValueError("This should never happen.") - return {"no_keyword": self.keyword, "gmail_label": self.keyword} - - def post_consume(self, M: MailBox, message_uids, parameter): + def post_consume(self, M: MailBox, message_uid: str, parameter: str): if re.search(r"gmail\.com$|googlemail\.com$", M._host): - for uid in message_uids: - M.client.uid("STORE", uid, "X-GM-LABELS", self.keyword) + M.client.uid("STORE", message_uid, "+X-GM-LABELS", self.keyword) # AppleMail elif self.color: # Remove all existing $MailFlagBits M.flag( - message_uids, + message_uid, set(itertools.chain(*APPLE_MAIL_TAG_COLORS.values())), False, ) # Set new $MailFlagBits - M.flag(message_uids, APPLE_MAIL_TAG_COLORS.get(self.color), True) + M.flag(message_uid, APPLE_MAIL_TAG_COLORS.get(self.color), True) # Set the general \Flagged # This defaults to the "red" flag in AppleMail and # "stars" in Thunderbird or GMail - M.flag(message_uids, [MailMessageFlags.FLAGGED], True) + M.flag(message_uid, [MailMessageFlags.FLAGGED], True) elif self.keyword: - M.flag(message_uids, [self.keyword], True) + M.flag(message_uid, [self.keyword], True) else: raise MailError("No keyword specified.") +def mailbox_login(mailbox: MailBox, account: MailAccount): + logger = logging.getLogger("paperless_mail") + + try: + + if account.is_token: + mailbox.xoauth2(account.username, account.password) + else: + try: + _ = account.password.encode("ascii") + use_ascii_login = True + except UnicodeEncodeError: + use_ascii_login = False + + if use_ascii_login: + mailbox.login(account.username, account.password) + else: + logger.debug("Falling back to AUTH=PLAIN") + mailbox.login_utf8(account.username, account.password) + + except Exception as e: + logger.error( + f"Error while authenticating account {account}: {e}", + exc_info=False, + ) + raise MailError( + f"Error while authenticating account {account}", + ) from e + + +@shared_task +def apply_mail_action( + result: List[str], + rule_id: int, + message_uid: str, + message_subject: str, + message_date: datetime.datetime, +): + """ + This shared task applies the mail action of a particular mail rule to the + given mail. Creates a ProcessedMail object, so that the mail won't be + processed in the future. + """ + + rule = MailRule.objects.get(pk=rule_id) + account = MailAccount.objects.get(pk=rule.account.pk) + + # Ensure the date is properly timezone aware + if is_naive(message_date): + message_date = make_aware(message_date) + + try: + + action = get_rule_action(rule) + + with get_mailbox( + server=account.imap_server, + port=account.imap_port, + security=account.imap_security, + ) as M: + mailbox_login(M, account) + M.folder.set(rule.folder) + action.post_consume(M, message_uid, rule.action_parameter) + + ProcessedMail.objects.create( + owner=rule.owner, + rule=rule, + folder=rule.folder, + uid=message_uid, + subject=message_subject, + received=message_date, + status="SUCCESS", + ) + + except Exception: + ProcessedMail.objects.create( + owner=rule.owner, + rule=rule, + folder=rule.folder, + uid=message_uid, + subject=message_subject, + received=message_date, + status="FAILED", + error=traceback.format_exc(), + ) + raise + + +@shared_task +def error_callback( + request, + exc, + tb, + rule_id: int, + message_uid: str, + message_subject: str, + message_date: datetime.datetime, +): + """ + A shared task that is called whenever something goes wrong during + consumption of a file. See queue_consumption_tasks. + """ + rule = MailRule.objects.get(pk=rule_id) + + ProcessedMail.objects.create( + rule=rule, + folder=rule.folder, + uid=message_uid, + subject=message_subject, + received=message_date, + status="FAILED", + error=traceback.format_exc(), + ) + + +def queue_consumption_tasks( + *, + consume_tasks: List[Signature], + rule: MailRule, + message: MailMessage, +): + """ + Queue a list of consumption tasks (Signatures for the consume_file shared + task) with celery. + """ + + mail_action_task = apply_mail_action.s( + rule_id=rule.pk, + message_uid=message.uid, + message_subject=message.subject, + message_date=message.date, + ) + chord(header=consume_tasks, body=mail_action_task).on_error( + error_callback.s( + rule_id=rule.pk, + message_uid=message.uid, + message_subject=message.subject, + message_date=message.date, + ), + ).delay() + + def get_rule_action(rule) -> BaseMailAction: + """ + Returns a BaseMailAction instance for the given rule. + """ + if rule.action == MailRule.MailAction.FLAG: return FlagMailAction() elif rule.action == MailRule.MailAction.DELETE: @@ -159,21 +362,35 @@ def get_rule_action(rule) -> BaseMailAction: def make_criterias(rule): + """ + Returns criteria to be applied to MailBox.fetch for the given rule. + """ + maximum_age = date.today() - timedelta(days=rule.maximum_age) criterias = {} if rule.maximum_age > 0: criterias["date_gte"] = maximum_age if rule.filter_from: criterias["from_"] = rule.filter_from + if rule.filter_to: + criterias["to"] = rule.filter_to if rule.filter_subject: criterias["subject"] = rule.filter_subject if rule.filter_body: criterias["body"] = rule.filter_body - return {**criterias, **get_rule_action(rule).get_criteria()} + rule_query = get_rule_action(rule).get_criteria() + if isinstance(rule_query, dict): + return AND(**rule_query, **criterias) + else: + return AND(rule_query, **criterias) def get_mailbox(server, port, security) -> MailBox: + """ + Returns the correct MailBox instance for the given configuration. + """ + if security == MailAccount.ImapSecurity.NONE: mailbox = MailBoxUnencrypted(server, port) elif security == MailAccount.ImapSecurity.STARTTLS: @@ -186,6 +403,16 @@ def get_mailbox(server, port, security) -> MailBox: class MailAccountHandler(LoggingMixin): + """ + The main class that handles mail accounts. + + * processes all rules for a given mail account + * for each mail rule, fetches relevant mails, and queues documents from + matching mails for consumption + * marks processed mails in the database, so that they won't be processed + again + * runs mail actions on the mail server, when consumption is completed + """ logging_name = "paperless_mail" @@ -196,7 +423,7 @@ class MailAccountHandler(LoggingMixin): self.log("error", f"Error while retrieving correspondent {name}: {e}") return None - def get_title(self, message, att, rule): + def _get_title(self, message, att, rule): if rule.assign_title_from == MailRule.TitleSource.FROM_SUBJECT: return message.subject @@ -208,7 +435,7 @@ class MailAccountHandler(LoggingMixin): "Unknown title selector.", ) # pragma: nocover - def get_correspondent(self, message: MailMessage, rule): + def _get_correspondent(self, message: MailMessage, rule): c_from = rule.assign_correspondent_from if c_from == MailRule.CorrespondentSource.FROM_NOTHING: @@ -233,6 +460,9 @@ class MailAccountHandler(LoggingMixin): ) # pragma: nocover def handle_mail_account(self, account: MailAccount): + """ + Main entry method to handle a specific mail account. + """ self.renew_logging_group() @@ -252,32 +482,7 @@ class MailAccountHandler(LoggingMixin): self.log("debug", f"GMAIL Label Support: {supports_gmail_labels}") self.log("debug", f"AUTH=PLAIN Support: {supports_auth_plain}") - try: - - M.login(account.username, account.password) - - except UnicodeEncodeError: - self.log("debug", "Falling back to AUTH=PLAIN") - - try: - M.login_utf8(account.username, account.password) - except Exception as e: - self.log( - "error", - "Unable to authenticate with mail server using AUTH=PLAIN", - ) - raise MailError( - f"Error while authenticating account {account}", - ) from e - except Exception as e: - self.log( - "error", - f"Error while authenticating account {account}: {e}", - exc_info=False, - ) - raise MailError( - f"Error while authenticating account {account}", - ) from e + mailbox_login(M, account) self.log( "debug", @@ -287,10 +492,9 @@ class MailAccountHandler(LoggingMixin): for rule in account.rules.order_by("order"): try: - total_processed_files += self.handle_mail_rule( + total_processed_files += self._handle_mail_rule( M, rule, - supports_gmail_labels, ) except Exception as e: self.log( @@ -309,11 +513,10 @@ class MailAccountHandler(LoggingMixin): return total_processed_files - def handle_mail_rule( + def _handle_mail_rule( self, M: MailBox, rule: MailRule, - supports_gmail_labels: bool = False, ): self.log("debug", f"Rule {rule}: Selecting folder {rule.folder}") @@ -343,27 +546,14 @@ class MailAccountHandler(LoggingMixin): criterias = make_criterias(rule) - # Deal with the Gmail label extension - if "gmail_label" in criterias: - - gmail_label = criterias["gmail_label"] - del criterias["gmail_label"] - - if not supports_gmail_labels: - criterias_imap = AND(**criterias) - else: - criterias_imap = AND(NOT(gmail_label=gmail_label), **criterias) - else: - criterias_imap = AND(**criterias) - self.log( "debug", - f"Rule {rule}: Searching folder with criteria " f"{str(criterias_imap)}", + f"Rule {rule}: Searching folder with criteria {str(criterias)}", ) try: messages = M.fetch( - criteria=criterias_imap, + criteria=criterias, mark_seen=False, charset=rule.account.character_set, ) @@ -372,49 +562,35 @@ class MailAccountHandler(LoggingMixin): f"Rule {rule}: Error while fetching folder {rule.folder}", ) from err - post_consume_messages = [] - mails_processed = 0 total_processed_files = 0 for message in messages: + if ProcessedMail.objects.filter( + rule=rule, + uid=message.uid, + folder=rule.folder, + ).exists(): + self.log("debug", f"Skipping mail {message}, already processed.") + continue + try: - processed_files = self.handle_message(message, rule) - if processed_files > 0: - post_consume_messages.append(message.uid) + processed_files = self._handle_message(message, rule) total_processed_files += processed_files mails_processed += 1 except Exception as e: self.log( "error", - f"Rule {rule}: Error while processing mail " f"{message.uid}: {e}", + f"Rule {rule}: Error while processing mail {message.uid}: {e}", exc_info=True, ) self.log("debug", f"Rule {rule}: Processed {mails_processed} matching mail(s)") - self.log( - "debug", - f"Rule {rule}: Running mail actions on " - f"{len(post_consume_messages)} mails", - ) - - try: - get_rule_action(rule).post_consume( - M, - post_consume_messages, - rule.action_parameter, - ) - - except Exception as e: - raise MailError( - f"Rule {rule}: Error while processing post-consume actions: " f"{e}", - ) from e - return total_processed_files - def handle_message(self, message, rule: MailRule) -> int: + def _handle_message(self, message, rule: MailRule) -> int: processed_elements = 0 # Skip Message handling when only attachments are to be processed but @@ -432,7 +608,7 @@ class MailAccountHandler(LoggingMixin): f"{len(message.attachments)} attachment(s)", ) - correspondent = self.get_correspondent(message, rule) + correspondent = self._get_correspondent(message, rule) tag_ids = [tag.id for tag in rule.assign_tags.all()] doc_type = rule.assign_document_type @@ -440,7 +616,7 @@ class MailAccountHandler(LoggingMixin): rule.consumption_scope == MailRule.ConsumptionScope.EML_ONLY or rule.consumption_scope == MailRule.ConsumptionScope.EVERYTHING ): - processed_elements += self.process_eml( + processed_elements += self._process_eml( message, rule, correspondent, @@ -452,7 +628,7 @@ class MailAccountHandler(LoggingMixin): rule.consumption_scope == MailRule.ConsumptionScope.ATTACHMENTS_ONLY or rule.consumption_scope == MailRule.ConsumptionScope.EVERYTHING ): - processed_elements += self.process_attachments( + processed_elements += self._process_attachments( message, rule, correspondent, @@ -462,7 +638,7 @@ class MailAccountHandler(LoggingMixin): return processed_elements - def process_attachments( + def _process_attachments( self, message: MailMessage, rule: MailRule, @@ -471,10 +647,13 @@ class MailAccountHandler(LoggingMixin): doc_type, ): processed_attachments = 0 + + consume_tasks = list() + for att in message.attachments: if ( - not att.content_disposition == "attachment" + att.content_disposition != "attachment" and rule.attachment_type == MailRule.AttachmentProcessing.ATTACHMENTS_ONLY ): @@ -486,16 +665,15 @@ class MailAccountHandler(LoggingMixin): ) continue - if rule.filter_attachment_filename: + if rule.filter_attachment_filename and not fnmatch( + att.filename.lower(), + rule.filter_attachment_filename.lower(), + ): # Force the filename and pattern to the lowercase # as this is system dependent otherwise - if not fnmatch( - att.filename.lower(), - rule.filter_attachment_filename.lower(), - ): - continue + continue - title = self.get_title(message, att, rule) + title = self._get_title(message, att, rule) # don't trust the content type of the attachment. Could be # generic application/octet-stream. @@ -518,18 +696,25 @@ class MailAccountHandler(LoggingMixin): f"{message.subject} from {message.from_}", ) - consume_file.delay( - path=temp_filename, - override_filename=pathvalidate.sanitize_filename( - att.filename, - ), - override_title=title, - override_correspondent_id=correspondent.id - if correspondent - else None, - override_document_type_id=doc_type.id if doc_type else None, - override_tag_ids=tag_ids, + input_doc = ConsumableDocument( + source=DocumentSource.MailFetch, + original_file=temp_filename, ) + doc_overrides = DocumentMetadataOverrides( + title=title, + filename=pathvalidate.sanitize_filename(att.filename), + correspondent_id=correspondent.id if correspondent else None, + document_type_id=doc_type.id if doc_type else None, + tag_ids=tag_ids, + owner_id=rule.owner.id if rule.owner else None, + ) + + consume_task = consume_file.s( + input_doc, + doc_overrides, + ) + + consume_tasks.append(consume_task) processed_attachments += 1 else: @@ -540,9 +725,16 @@ class MailAccountHandler(LoggingMixin): f"since guessed mime type {mime_type} is not supported " f"by paperless", ) + + queue_consumption_tasks( + consume_tasks=consume_tasks, + rule=rule, + message=message, + ) + return processed_attachments - def process_eml( + def _process_eml( self, message: MailMessage, rule: MailRule, @@ -584,15 +776,29 @@ class MailAccountHandler(LoggingMixin): f"{message.subject} from {message.from_}", ) - consume_file.delay( - path=temp_filename, - override_filename=pathvalidate.sanitize_filename( - message.subject + ".eml", - ), - override_title=message.subject, - override_correspondent_id=correspondent.id if correspondent else None, - override_document_type_id=doc_type.id if doc_type else None, - override_tag_ids=tag_ids, + input_doc = ConsumableDocument( + source=DocumentSource.MailFetch, + original_file=temp_filename, ) + doc_overrides = DocumentMetadataOverrides( + title=message.subject, + filename=pathvalidate.sanitize_filename(f"{message.subject}.eml"), + correspondent_id=correspondent.id if correspondent else None, + document_type_id=doc_type.id if doc_type else None, + tag_ids=tag_ids, + owner_id=rule.owner.id if rule.owner else None, + ) + + consume_task = consume_file.s( + input_doc, + doc_overrides, + ) + + queue_consumption_tasks( + consume_tasks=[consume_task], + rule=rule, + message=message, + ) + processed_elements = 1 return processed_elements diff --git a/src/paperless_mail/migrations/0005_help_texts.py b/src/paperless_mail/migrations/0005_help_texts.py index ba1ab397c..2d7a543b3 100644 --- a/src/paperless_mail/migrations/0005_help_texts.py +++ b/src/paperless_mail/migrations/0005_help_texts.py @@ -27,7 +27,8 @@ class Migration(migrations.Migration): model_name="mailrule", name="maximum_age", field=models.PositiveIntegerField( - default=30, help_text="Specified in days." + default=30, + help_text="Specified in days.", ), ), ] diff --git a/src/paperless_mail/migrations/0006_auto_20210101_2340.py b/src/paperless_mail/migrations/0006_auto_20210101_2340.py index 1776ce4d0..90d768842 100644 --- a/src/paperless_mail/migrations/0006_auto_20210101_2340.py +++ b/src/paperless_mail/migrations/0006_auto_20210101_2340.py @@ -160,35 +160,48 @@ class Migration(migrations.Migration): model_name="mailrule", name="filter_body", field=models.CharField( - blank=True, max_length=256, null=True, verbose_name="filter body" + blank=True, + max_length=256, + null=True, + verbose_name="filter body", ), ), migrations.AlterField( model_name="mailrule", name="filter_from", field=models.CharField( - blank=True, max_length=256, null=True, verbose_name="filter from" + blank=True, + max_length=256, + null=True, + verbose_name="filter from", ), ), migrations.AlterField( model_name="mailrule", name="filter_subject", field=models.CharField( - blank=True, max_length=256, null=True, verbose_name="filter subject" + blank=True, + max_length=256, + null=True, + verbose_name="filter subject", ), ), migrations.AlterField( model_name="mailrule", name="folder", field=models.CharField( - default="INBOX", max_length=256, verbose_name="folder" + default="INBOX", + max_length=256, + verbose_name="folder", ), ), migrations.AlterField( model_name="mailrule", name="maximum_age", field=models.PositiveIntegerField( - default=30, help_text="Specified in days.", verbose_name="maximum age" + default=30, + help_text="Specified in days.", + verbose_name="maximum age", ), ), migrations.AlterField( diff --git a/src/paperless_mail/migrations/0012_alter_mailrule_assign_tags.py b/src/paperless_mail/migrations/0012_alter_mailrule_assign_tags.py index 811c7d90a..610237f3b 100644 --- a/src/paperless_mail/migrations/0012_alter_mailrule_assign_tags.py +++ b/src/paperless_mail/migrations/0012_alter_mailrule_assign_tags.py @@ -14,7 +14,9 @@ class Migration(migrations.Migration): model_name="mailrule", name="assign_tags", field=models.ManyToManyField( - blank=True, to="documents.Tag", verbose_name="assign this tag" + blank=True, + to="documents.Tag", + verbose_name="assign this tag", ), ), ] diff --git a/src/paperless_mail/migrations/0017_mailaccount_owner_mailrule_owner.py b/src/paperless_mail/migrations/0017_mailaccount_owner_mailrule_owner.py new file mode 100644 index 000000000..5eeccf440 --- /dev/null +++ b/src/paperless_mail/migrations/0017_mailaccount_owner_mailrule_owner.py @@ -0,0 +1,38 @@ +# Generated by Django 4.1.3 on 2022-12-06 04:48 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("paperless_mail", "0016_mailrule_consumption_scope"), + ] + + operations = [ + migrations.AddField( + model_name="mailaccount", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + migrations.AddField( + model_name="mailrule", + name="owner", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + ] diff --git a/src/paperless_mail/migrations/0018_processedmail.py b/src/paperless_mail/migrations/0018_processedmail.py new file mode 100644 index 000000000..93ca64dda --- /dev/null +++ b/src/paperless_mail/migrations/0018_processedmail.py @@ -0,0 +1,105 @@ +# Generated by Django 4.1.5 on 2023-03-03 18:38 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ("paperless_mail", "0017_mailaccount_owner_mailrule_owner"), + ] + + operations = [ + migrations.CreateModel( + name="ProcessedMail", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "folder", + models.CharField( + editable=False, + max_length=256, + verbose_name="folder", + ), + ), + ( + "uid", + models.CharField( + editable=False, + max_length=256, + verbose_name="uid", + ), + ), + ( + "subject", + models.CharField( + editable=False, + max_length=256, + verbose_name="subject", + ), + ), + ( + "received", + models.DateTimeField(editable=False, verbose_name="received"), + ), + ( + "processed", + models.DateTimeField( + default=django.utils.timezone.now, + editable=False, + verbose_name="processed", + ), + ), + ( + "status", + models.CharField( + editable=False, + max_length=256, + verbose_name="status", + ), + ), + ( + "error", + models.TextField( + blank=True, + editable=False, + null=True, + verbose_name="error", + ), + ), + ( + "owner", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + to=settings.AUTH_USER_MODEL, + verbose_name="owner", + ), + ), + ( + "rule", + models.ForeignKey( + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="paperless_mail.mailrule", + ), + ), + ], + options={ + "abstract": False, + }, + ), + ] diff --git a/src/paperless_mail/migrations/0019_mailrule_filter_to.py b/src/paperless_mail/migrations/0019_mailrule_filter_to.py new file mode 100644 index 000000000..5089670b0 --- /dev/null +++ b/src/paperless_mail/migrations/0019_mailrule_filter_to.py @@ -0,0 +1,22 @@ +# Generated by Django 4.1.7 on 2023-03-11 21:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("paperless_mail", "0018_processedmail"), + ] + + operations = [ + migrations.AddField( + model_name="mailrule", + name="filter_to", + field=models.CharField( + blank=True, + max_length=256, + null=True, + verbose_name="filter to", + ), + ), + ] diff --git a/src/paperless_mail/migrations/0020_mailaccount_is_token.py b/src/paperless_mail/migrations/0020_mailaccount_is_token.py new file mode 100644 index 000000000..98a48ec51 --- /dev/null +++ b/src/paperless_mail/migrations/0020_mailaccount_is_token.py @@ -0,0 +1,20 @@ +# Generated by Django 4.1.7 on 2023-03-22 17:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("paperless_mail", "0019_mailrule_filter_to"), + ] + + operations = [ + migrations.AddField( + model_name="mailaccount", + name="is_token", + field=models.BooleanField( + default=False, + verbose_name="Is token authentication", + ), + ), + ] diff --git a/src/paperless_mail/migrations/0021_alter_mailaccount_password.py b/src/paperless_mail/migrations/0021_alter_mailaccount_password.py new file mode 100644 index 000000000..2c0f68065 --- /dev/null +++ b/src/paperless_mail/migrations/0021_alter_mailaccount_password.py @@ -0,0 +1,17 @@ +# Generated by Django 4.1.7 on 2023-04-20 15:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("paperless_mail", "0020_mailaccount_is_token"), + ] + + operations = [ + migrations.AlterField( + model_name="mailaccount", + name="password", + field=models.CharField(max_length=2048, verbose_name="password"), + ), + ] diff --git a/src/paperless_mail/models.py b/src/paperless_mail/models.py index a7267cc06..a9165b248 100644 --- a/src/paperless_mail/models.py +++ b/src/paperless_mail/models.py @@ -1,9 +1,10 @@ import documents.models as document_models from django.db import models +from django.utils import timezone from django.utils.translation import gettext_lazy as _ -class MailAccount(models.Model): +class MailAccount(document_models.ModelWithOwner): class Meta: verbose_name = _("mail account") verbose_name_plural = _("mail accounts") @@ -35,7 +36,9 @@ class MailAccount(models.Model): username = models.CharField(_("username"), max_length=256) - password = models.CharField(_("password"), max_length=256) + password = models.CharField(_("password"), max_length=2048) + + is_token = models.BooleanField(_("Is token authentication"), default=False) character_set = models.CharField( _("character set"), @@ -51,7 +54,7 @@ class MailAccount(models.Model): return self.name -class MailRule(models.Model): +class MailRule(document_models.ModelWithOwner): class Meta: verbose_name = _("mail rule") verbose_name_plural = _("mail rules") @@ -66,7 +69,7 @@ class MailRule(models.Model): class AttachmentProcessing(models.IntegerChoices): ATTACHMENTS_ONLY = 1, _("Only process attachments.") - EVERYTHING = 2, _("Process all files, including 'inline' " "attachments.") + EVERYTHING = 2, _("Process all files, including 'inline' attachments.") class MailAction(models.IntegerChoices): DELETE = 1, _("Delete") @@ -112,12 +115,21 @@ class MailRule(models.Model): null=True, blank=True, ) + + filter_to = models.CharField( + _("filter to"), + max_length=256, + null=True, + blank=True, + ) + filter_subject = models.CharField( _("filter subject"), max_length=256, null=True, blank=True, ) + filter_body = models.CharField( _("filter body"), max_length=256, @@ -214,3 +226,66 @@ class MailRule(models.Model): def __str__(self): return f"{self.account.name}.{self.name}" + + +class ProcessedMail(document_models.ModelWithOwner): + + rule = models.ForeignKey( + MailRule, + null=False, + blank=False, + on_delete=models.CASCADE, + editable=False, + ) + + folder = models.CharField( + _("folder"), + null=False, + blank=False, + max_length=256, + editable=False, + ) + + uid = models.CharField( + _("uid"), + null=False, + blank=False, + max_length=256, + editable=False, + ) + + subject = models.CharField( + _("subject"), + null=False, + blank=False, + max_length=256, + editable=False, + ) + + received = models.DateTimeField( + _("received"), + null=False, + blank=False, + editable=False, + ) + + processed = models.DateTimeField( + _("processed"), + default=timezone.now, + editable=False, + ) + + status = models.CharField( + _("status"), + null=False, + blank=False, + max_length=256, + editable=False, + ) + + error = models.TextField( + _("error"), + null=True, + blank=True, + editable=False, + ) diff --git a/src/paperless_mail/parsers.py b/src/paperless_mail/parsers.py index f1ee263aa..4ce8a6019 100644 --- a/src/paperless_mail/parsers.py +++ b/src/paperless_mail/parsers.py @@ -38,7 +38,7 @@ class MailDocumentParser(DocumentParser): except Exception as err: raise ParseError( f"Could not parse {document_path}: {err}", - ) + ) from err if not self._parsed.from_values: self._parsed = None raise ParseError( @@ -65,7 +65,7 @@ class MailDocumentParser(DocumentParser): except ParseError as e: self.log( "warning", - f"Error while fetching document metadata for " f"{document_path}: {e}", + f"Error while fetching document metadata for {document_path}: {e}", ) return result @@ -132,7 +132,7 @@ class MailDocumentParser(DocumentParser): self.text += f"Attachments: {', '.join(att)}\n\n" - if mail.html != "": + if mail.html: self.text += "HTML content: " + strip_text(self.tika_parse(mail.html)) self.text += f"\n\n{strip_text(mail.text)}" @@ -153,7 +153,7 @@ class MailDocumentParser(DocumentParser): raise ParseError( f"Could not parse content with tika server at " f"{self.tika_server}: {err}", - ) + ) from err if parsed["content"]: return parsed["content"] else: @@ -167,7 +167,7 @@ class MailDocumentParser(DocumentParser): pdf_collection.append(("1_mail.pdf", self.generate_pdf_from_mail(mail))) - if mail.html == "": + if not mail.html: with open(pdf_path, "wb") as file: file.write(pdf_collection[0][1]) file.close() @@ -188,7 +188,7 @@ class MailDocumentParser(DocumentParser): response = requests.post(url_merge, files=files, headers=headers) response.raise_for_status() # ensure we notice bad responses except Exception as err: - raise ParseError(f"Error while converting document to PDF: {err}") + raise ParseError(f"Error while converting document to PDF: {err}") from err with open(pdf_path, "wb") as file: file.write(response.content) @@ -212,26 +212,26 @@ class MailDocumentParser(DocumentParser): return text data["subject"] = clean_html(mail.subject) - if data["subject"] != "": + if data["subject"]: data["subject_label"] = "Subject" data["from"] = clean_html(mail.from_values.full) - if data["from"] != "": + if data["from"]: data["from_label"] = "From" data["to"] = clean_html(", ".join(address.full for address in mail.to_values)) - if data["to"] != "": + if data["to"]: data["to_label"] = "To" data["cc"] = clean_html(", ".join(address.full for address in mail.cc_values)) - if data["cc"] != "": + if data["cc"]: data["cc_label"] = "CC" data["bcc"] = clean_html(", ".join(address.full for address in mail.bcc_values)) - if data["bcc"] != "": + if data["bcc"]: data["bcc_label"] = "BCC" att = [] for a in mail.attachments: att.append(f"{a.filename} ({format_size(a.size, binary=True)})") data["attachments"] = clean_html(", ".join(att)) - if data["attachments"] != "": + if data["attachments"]: data["attachments_label"] = "Attachments" data["date"] = clean_html(mail.date.astimezone().strftime("%Y-%m-%d %H:%M")) @@ -290,7 +290,9 @@ class MailDocumentParser(DocumentParser): ) response.raise_for_status() # ensure we notice bad responses except Exception as err: - raise ParseError(f"Error while converting document to PDF: {err}") + raise ParseError( + f"Error while converting document to PDF: {err}", + ) from err return response.content @@ -344,6 +346,6 @@ class MailDocumentParser(DocumentParser): ) response.raise_for_status() # ensure we notice bad responses except Exception as err: - raise ParseError(f"Error while converting document to PDF: {err}") + raise ParseError(f"Error while converting document to PDF: {err}") from err return response.content diff --git a/src/paperless_mail/serialisers.py b/src/paperless_mail/serialisers.py index 0d15f617c..e04a5c066 100644 --- a/src/paperless_mail/serialisers.py +++ b/src/paperless_mail/serialisers.py @@ -1,5 +1,6 @@ from documents.serialisers import CorrespondentField from documents.serialisers import DocumentTypeField +from documents.serialisers import OwnedObjectSerializer from documents.serialisers import TagsField from paperless_mail.models import MailAccount from paperless_mail.models import MailRule @@ -18,7 +19,7 @@ class ObfuscatedPasswordField(serializers.Field): return data -class MailAccountSerializer(serializers.ModelSerializer): +class MailAccountSerializer(OwnedObjectSerializer): password = ObfuscatedPasswordField() class Meta: @@ -33,26 +34,25 @@ class MailAccountSerializer(serializers.ModelSerializer): "username", "password", "character_set", + "is_token", ] def update(self, instance, validated_data): - if "password" in validated_data: - if len(validated_data.get("password").replace("*", "")) == 0: - validated_data.pop("password") + if ( + "password" in validated_data + and len(validated_data.get("password").replace("*", "")) == 0 + ): + validated_data.pop("password") super().update(instance, validated_data) return instance - def create(self, validated_data): - mail_account = MailAccount.objects.create(**validated_data) - return mail_account - class AccountField(serializers.PrimaryKeyRelatedField): def get_queryset(self): return MailAccount.objects.all().order_by("-id") -class MailRuleSerializer(serializers.ModelSerializer): +class MailRuleSerializer(OwnedObjectSerializer): account = AccountField(required=True) action_parameter = serializers.CharField( allow_null=True, @@ -73,6 +73,7 @@ class MailRuleSerializer(serializers.ModelSerializer): "account", "folder", "filter_from", + "filter_to", "filter_subject", "filter_body", "filter_attachment_filename", @@ -96,7 +97,7 @@ class MailRuleSerializer(serializers.ModelSerializer): def create(self, validated_data): if "assign_tags" in validated_data: assign_tags = validated_data.pop("assign_tags") - mail_rule = MailRule.objects.create(**validated_data) + mail_rule = super().create(validated_data) if assign_tags: mail_rule.assign_tags.set(assign_tags) return mail_rule diff --git a/src/paperless_mail/tests/test_api.py b/src/paperless_mail/tests/test_api.py index 056c4df90..64b651970 100644 --- a/src/paperless_mail/tests/test_api.py +++ b/src/paperless_mail/tests/test_api.py @@ -1,3 +1,6 @@ +import json +from unittest import mock + from django.contrib.auth.models import User from documents.models import Correspondent from documents.models import DocumentType @@ -5,6 +8,8 @@ from documents.models import Tag from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_mail.tests.test_mail import BogusMailBox +from rest_framework import status from rest_framework.test import APITestCase @@ -12,6 +17,13 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): ENDPOINT = "/api/mail_accounts/" def setUp(self): + self.bogus_mailbox = BogusMailBox() + + patcher = mock.patch("paperless_mail.mail.MailBox") + m = patcher.start() + m.return_value = self.bogus_mailbox + self.addCleanup(patcher.stop) + super().setUp() self.user = User.objects.create_superuser(username="temp_admin") @@ -39,7 +51,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) returned_account1 = response.data["results"][0] @@ -77,7 +89,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): data=account1, ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) returned_account1 = MailAccount.objects.get(name="Email1") @@ -113,7 +125,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): f"{self.ENDPOINT}{account1.pk}/", ) - self.assertEqual(response.status_code, 204) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(len(MailAccount.objects.all()), 0) @@ -145,7 +157,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): }, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) returned_account1 = MailAccount.objects.get(pk=account1.pk) self.assertEqual(returned_account1.name, "Updated Name 1") @@ -159,12 +171,100 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): }, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) returned_account2 = MailAccount.objects.get(pk=account1.pk) self.assertEqual(returned_account2.name, "Updated Name 2") self.assertEqual(returned_account2.password, "123xyz") + def test_mail_account_test_fail(self): + """ + GIVEN: + - Errnoeous mail account details + WHEN: + - API call is made to test account + THEN: + - API returns 400 bad request + """ + + response = self.client.post( + f"{self.ENDPOINT}test/", + json.dumps( + { + "imap_server": "server.example.com", + "imap_port": 443, + "imap_security": MailAccount.ImapSecurity.SSL, + "username": "admin", + "password": "notcorrect", + }, + ), + content_type="application/json", + ) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + + def test_mail_account_test_success(self): + """ + GIVEN: + - Working mail account details + WHEN: + - API call is made to test account + THEN: + - API returns success + """ + + response = self.client.post( + f"{self.ENDPOINT}test/", + json.dumps( + { + "imap_server": "server.example.com", + "imap_port": 443, + "imap_security": MailAccount.ImapSecurity.SSL, + "username": "admin", + "password": "secret", + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["success"], True) + + def test_mail_account_test_existing(self): + """ + GIVEN: + - Testing server details for an existing account with obfuscated password (***) + WHEN: + - API call is made to test account + THEN: + - API returns success + """ + account = MailAccount.objects.create( + name="Email1", + username="admin", + password="secret", + imap_server="server.example.com", + imap_port=443, + imap_security=MailAccount.ImapSecurity.SSL, + character_set="UTF-8", + ) + + response = self.client.post( + f"{self.ENDPOINT}test/", + json.dumps( + { + "id": account.pk, + "imap_server": "server.example.com", + "imap_port": 443, + "imap_security": MailAccount.ImapSecurity.SSL, + "username": "admin", + "password": "******", + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["success"], True) + class TestAPIMailRules(DirectoriesMixin, APITestCase): ENDPOINT = "/api/mail_rules/" @@ -200,6 +300,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): account=account1, folder="INBOX", filter_from="from@example.com", + filter_to="someone@somewhere.com", filter_subject="subject", filter_body="body", filter_attachment_filename="file.pdf", @@ -213,7 +314,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) returned_rule1 = response.data["results"][0] @@ -221,6 +322,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): self.assertEqual(returned_rule1["account"], account1.pk) self.assertEqual(returned_rule1["folder"], rule1.folder) self.assertEqual(returned_rule1["filter_from"], rule1.filter_from) + self.assertEqual(returned_rule1["filter_to"], rule1.filter_to) self.assertEqual(returned_rule1["filter_subject"], rule1.filter_subject) self.assertEqual(returned_rule1["filter_body"], rule1.filter_body) self.assertEqual( @@ -274,6 +376,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): "account": account1.pk, "folder": "INBOX", "filter_from": "from@example.com", + "filter_to": "aperson@aplace.com", "filter_subject": "subject", "filter_body": "body", "filter_attachment_filename": "file.pdf", @@ -294,11 +397,11 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): data=rule1, ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.get(self.ENDPOINT) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data["count"], 1) returned_rule1 = response.data["results"][0] @@ -306,6 +409,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): self.assertEqual(returned_rule1["account"], account1.pk) self.assertEqual(returned_rule1["folder"], rule1["folder"]) self.assertEqual(returned_rule1["filter_from"], rule1["filter_from"]) + self.assertEqual(returned_rule1["filter_to"], rule1["filter_to"]) self.assertEqual(returned_rule1["filter_subject"], rule1["filter_subject"]) self.assertEqual(returned_rule1["filter_body"], rule1["filter_body"]) self.assertEqual( @@ -375,7 +479,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): f"{self.ENDPOINT}{rule1.pk}/", ) - self.assertEqual(response.status_code, 204) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertEqual(len(MailRule.objects.all()), 0) @@ -423,7 +527,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): }, ) - self.assertEqual(response.status_code, 200) + self.assertEqual(response.status_code, status.HTTP_200_OK) returned_rule1 = MailRule.objects.get(pk=rule1.pk) self.assertEqual(returned_rule1.name, "Updated Name 1") diff --git a/src/paperless_mail/tests/test_live_mail.py b/src/paperless_mail/tests/test_live_mail.py index 1af870156..757bc5f4f 100644 --- a/src/paperless_mail/tests/test_live_mail.py +++ b/src/paperless_mail/tests/test_live_mail.py @@ -47,7 +47,7 @@ class TestMailLiveServer(TestCase): except MailError as e: self.fail(f"Failure: {e}") - except Exception as e: + except Exception: pass def test_process_non_gmail_server_tag(self): @@ -66,5 +66,5 @@ class TestMailLiveServer(TestCase): except MailError as e: self.fail(f"Failure: {e}") - except Exception as e: + except Exception: pass diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index cd1001861..1f482f336 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -1,11 +1,11 @@ import dataclasses import email.contentmanager -import os import random import uuid from collections import namedtuple from typing import ContextManager from typing import List +from typing import Optional from typing import Union from unittest import mock @@ -14,6 +14,7 @@ from django.db import DatabaseError from django.test import TestCase from documents.models import Correspondent from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from imap_tools import EmailAddress from imap_tools import FolderInfo from imap_tools import MailboxFolderSelectError @@ -22,6 +23,7 @@ from imap_tools import MailMessage from imap_tools import MailMessageFlags from imap_tools import NOT from paperless_mail import tasks +from paperless_mail.mail import apply_mail_action from paperless_mail.mail import MailAccountHandler from paperless_mail.mail import MailError from paperless_mail.mail import TagMailAction @@ -81,6 +83,8 @@ class BogusMailBox(ContextManager): ASCII_PASSWORD: str = "secret" # Note the non-ascii characters here UTF_PASSWORD: str = "w57äöüw4b6huwb6nhu" + # A dummy access token + ACCESS_TOKEN = "ea7e075cd3acf2c54c48e600398d5d5a" def __init__(self): self.messages: List[MailMessage] = [] @@ -110,6 +114,10 @@ class BogusMailBox(ContextManager): if username != self.USERNAME or password != self.UTF_PASSWORD: raise MailboxLoginError("BAD", "OK") + def xoauth2(self, username: str, access_token: str): + if username != self.USERNAME or access_token != self.ACCESS_TOKEN: + raise MailboxLoginError("BAD", "OK") + def fetch(self, criteria, mark_seen, charset=""): msg = self.messages @@ -130,12 +138,20 @@ class BogusMailBox(ContextManager): from_ = criteria[criteria.index("FROM") + 1].strip('"') msg = filter(lambda m: from_ in m.from_, msg) + if "TO" in criteria: + to_ = criteria[criteria.index("TO") + 1].strip('"') + msg = [] + for m in self.messages: + for to_addrs in m.to: + if to_ in to_addrs: + msg.append(m) + 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) + msg = filter(lambda m: tag not in m.flags, msg) if "(X-GM-LABELS" in criteria: # ['NOT', '(X-GM-LABELS', '"processed"'] msg = filter(lambda m: "processed" not in m.flags, msg) @@ -164,70 +180,7 @@ class BogusMailBox(ContextManager): ) self.messages = list(filter(lambda m: m.uid not in uid_list, self.messages)) else: - raise Exception() - - -_used_uids = set() - - -def create_message( - attachments: Union[int, List[_AttachmentDef]] = 1, - body: str = "", - subject: str = "the suject", - 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 - email_msg["Message-ID"] = str(uuid.uuid4()) - email_msg["Subject"] = subject - email_msg["From"] = from_ - email_msg.set_content(body) - - # Either add some default number of attachments - # or the provided attachments - if isinstance(attachments, int): - for i in range(attachments): - attachment = _AttachmentDef(filename=f"file_{i}.pdf") - email_msg.add_attachment( - attachment.content, - maintype=attachment.maintype, - subtype=attachment.subtype, - disposition=attachment.disposition, - filename=attachment.filename, - ) - else: - for attachment in attachments: - email_msg.add_attachment( - attachment.content, - maintype=attachment.maintype, - subtype=attachment.subtype, - disposition=attachment.disposition, - filename=attachment.filename, - ) - - # Convert the EmailMessage to an imap_tools MailMessage - imap_msg = MailMessage.from_bytes(email_msg.as_bytes()) - - # TODO: Unsure how to add a uid to the actual EmailMessage. This hacks it in, - # based on how imap_tools uses regex to extract it. - # This should be a large enough pool - uid = random.randint(1, 10000) - while uid in _used_uids: - uid = random.randint(1, 10000) - _used_uids.add(uid) - - imap_msg._raw_uid_data = f"UID {uid}".encode() - - imap_msg.seen = seen - imap_msg.flagged = flagged - if processed: - imap_msg._raw_flag_data.append(b"+FLAGS (processed)") - MailMessage.flags.fget.cache_clear() - - return imap_msg + raise Exception def fake_magic_from_buffer(buffer, mime=False): @@ -241,16 +194,23 @@ def fake_magic_from_buffer(buffer, mime=False): @mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer) -class TestMail(DirectoriesMixin, TestCase): +class TestMail( + DirectoriesMixin, + FileSystemAssertsMixin, + TestCase, +): def setUp(self): + self._used_uids = set() + + self.bogus_mailbox = BogusMailBox() + patcher = mock.patch("paperless_mail.mail.MailBox") m = patcher.start() - self.bogus_mailbox = BogusMailBox() m.return_value = self.bogus_mailbox self.addCleanup(patcher.stop) - patcher = mock.patch("paperless_mail.mail.consume_file.delay") - self.async_task = patcher.start() + patcher = mock.patch("paperless_mail.mail.queue_consumption_tasks") + self._queue_consumption_tasks_mock = patcher.start() self.addCleanup(patcher.stop) self.reset_bogus_mailbox() @@ -258,13 +218,80 @@ class TestMail(DirectoriesMixin, TestCase): self.mail_account_handler = MailAccountHandler() super().setUp() + def create_message( + self, + attachments: Union[int, List[_AttachmentDef]] = 1, + body: str = "", + subject: str = "the suject", + from_: str = "noone@mail.com", + to: Optional[List[str]] = None, + seen: bool = False, + flagged: bool = False, + processed: bool = False, + ) -> MailMessage: + + if to is None: + to = ["tosomeone@somewhere.com"] + + email_msg = email.message.EmailMessage() + # TODO: This does NOT set the UID + email_msg["Message-ID"] = str(uuid.uuid4()) + email_msg["Subject"] = subject + email_msg["From"] = from_ + email_msg["To"] = str(" ,".join(to)) + email_msg.set_content(body) + + # Either add some default number of attachments + # or the provided attachments + if isinstance(attachments, int): + for i in range(attachments): + attachment = _AttachmentDef(filename=f"file_{i}.pdf") + email_msg.add_attachment( + attachment.content, + maintype=attachment.maintype, + subtype=attachment.subtype, + disposition=attachment.disposition, + filename=attachment.filename, + ) + else: + for attachment in attachments: + email_msg.add_attachment( + attachment.content, + maintype=attachment.maintype, + subtype=attachment.subtype, + disposition=attachment.disposition, + filename=attachment.filename, + ) + + # Convert the EmailMessage to an imap_tools MailMessage + imap_msg = MailMessage.from_bytes(email_msg.as_bytes()) + + # TODO: Unsure how to add a uid to the actual EmailMessage. This hacks it in, + # based on how imap_tools uses regex to extract it. + # This should be a large enough pool + uid = random.randint(1, 10000) + while uid in self._used_uids: + uid = random.randint(1, 10000) + self._used_uids.add(uid) + + imap_msg._raw_uid_data = f"UID {uid}".encode() + + imap_msg.seen = seen + imap_msg.flagged = flagged + if processed: + imap_msg._raw_flag_data.append(b"+FLAGS (processed)") + MailMessage.flags.fget.cache_clear() + + return imap_msg + def reset_bogus_mailbox(self): self.bogus_mailbox.messages = [] self.bogus_mailbox.messages_spam = [] self.bogus_mailbox.messages.append( - create_message( + self.create_message( subject="Invoice 1", from_="amazon@amazon.de", + to=["me@myselfandi.com", "helpdesk@mydomain.com"], body="cables", seen=True, flagged=False, @@ -272,18 +299,20 @@ class TestMail(DirectoriesMixin, TestCase): ), ) self.bogus_mailbox.messages.append( - create_message( + self.create_message( subject="Invoice 2", body="from my favorite electronic store", + to=["invoices@mycompany.com"], seen=False, flagged=True, processed=True, ), ) self.bogus_mailbox.messages.append( - create_message( + self.create_message( subject="Claim your $10M price now!", from_="amazon@amazon-some-indian-site.org", + to="special@me.me", seen=False, ), ) @@ -313,16 +342,16 @@ class TestMail(DirectoriesMixin, TestCase): name="a", assign_correspondent_from=MailRule.CorrespondentSource.FROM_NOTHING, ) - self.assertIsNone(handler.get_correspondent(message, rule)) + self.assertIsNone(handler._get_correspondent(message, rule)) rule = MailRule( name="b", assign_correspondent_from=MailRule.CorrespondentSource.FROM_EMAIL, ) - c = handler.get_correspondent(message, rule) + c = handler._get_correspondent(message, rule) self.assertIsNotNone(c) self.assertEqual(c.name, "someone@somewhere.com") - c = handler.get_correspondent(message2, rule) + c = handler._get_correspondent(message2, rule) self.assertIsNotNone(c) self.assertEqual(c.name, "me@localhost.com") self.assertEqual(c.id, me_localhost.id) @@ -331,10 +360,10 @@ class TestMail(DirectoriesMixin, TestCase): name="c", assign_correspondent_from=MailRule.CorrespondentSource.FROM_NAME, ) - c = handler.get_correspondent(message, rule) + c = handler._get_correspondent(message, rule) self.assertIsNotNone(c) self.assertEqual(c.name, "Someone!") - c = handler.get_correspondent(message2, rule) + c = handler._get_correspondent(message2, rule) self.assertIsNotNone(c) self.assertEqual(c.id, me_localhost.id) @@ -343,7 +372,7 @@ class TestMail(DirectoriesMixin, TestCase): assign_correspondent_from=MailRule.CorrespondentSource.FROM_CUSTOM, assign_correspondent=someone_else, ) - c = handler.get_correspondent(message, rule) + c = handler._get_correspondent(message, rule) self.assertEqual(c, someone_else) def test_get_title(self): @@ -358,15 +387,15 @@ class TestMail(DirectoriesMixin, TestCase): name="a", assign_title_from=MailRule.TitleSource.FROM_FILENAME, ) - self.assertEqual(handler.get_title(message, att, rule), "this_is_the_file") + self.assertEqual(handler._get_title(message, att, rule), "this_is_the_file") rule = MailRule( name="b", assign_title_from=MailRule.TitleSource.FROM_SUBJECT, ) - self.assertEqual(handler.get_title(message, att, rule), "the message title") + self.assertEqual(handler._get_title(message, att, rule), "the message title") def test_handle_message(self): - message = create_message( + message = self.create_message( subject="the message title", from_="Myself", attachments=2, @@ -380,24 +409,20 @@ class TestMail(DirectoriesMixin, TestCase): ) rule.save() - result = self.mail_account_handler.handle_message(message, rule) + result = self.mail_account_handler._handle_message(message, rule) self.assertEqual(result, 2) - self.assertEqual(len(self.async_task.call_args_list), 2) + self._queue_consumption_tasks_mock.assert_called() - args1, kwargs1 = self.async_task.call_args_list[0] - args2, kwargs2 = self.async_task.call_args_list[1] - - self.assertTrue(os.path.isfile(kwargs1["path"]), kwargs1["path"]) - - self.assertEqual(kwargs1["override_title"], "file_0") - self.assertEqual(kwargs1["override_filename"], "file_0.pdf") - - self.assertTrue(os.path.isfile(kwargs2["path"]), kwargs1["path"]) - - self.assertEqual(kwargs2["override_title"], "file_1") - self.assertEqual(kwargs2["override_filename"], "file_1.pdf") + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_title": "file_0", "override_filename": "file_0.pdf"}, + {"override_title": "file_1", "override_filename": "file_1.pdf"}, + ], + ], + ) def test_handle_empty_message(self): message = namedtuple("MailMessage", []) @@ -405,13 +430,13 @@ class TestMail(DirectoriesMixin, TestCase): message.attachments = [] rule = MailRule() - result = self.mail_account_handler.handle_message(message, rule) + result = self.mail_account_handler._handle_message(message, rule) - self.assertFalse(self.async_task.called) + self._queue_consumption_tasks_mock.assert_not_called() self.assertEqual(result, 0) def test_handle_unknown_mime_type(self): - message = create_message( + message = self.create_message( attachments=[ _AttachmentDef(filename="f1.pdf"), _AttachmentDef( @@ -429,17 +454,19 @@ class TestMail(DirectoriesMixin, TestCase): ) rule.save() - result = self.mail_account_handler.handle_message(message, rule) + result = self.mail_account_handler._handle_message(message, rule) self.assertEqual(result, 1) - self.assertEqual(self.async_task.call_count, 1) - - args, kwargs = self.async_task.call_args - self.assertTrue(os.path.isfile(kwargs["path"]), kwargs["path"]) - self.assertEqual(kwargs["override_filename"], "f1.pdf") + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_filename": "f1.pdf"}, + ], + ], + ) def test_handle_disposition(self): - message = create_message( + message = self.create_message( attachments=[ _AttachmentDef( filename="f1.pdf", @@ -457,16 +484,18 @@ class TestMail(DirectoriesMixin, TestCase): ) rule.save() - result = self.mail_account_handler.handle_message(message, rule) - + result = self.mail_account_handler._handle_message(message, rule) self.assertEqual(result, 1) - self.assertEqual(self.async_task.call_count, 1) - - args, kwargs = self.async_task.call_args - self.assertEqual(kwargs["override_filename"], "f2.pdf") + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_filename": "f2.pdf"}, + ], + ], + ) def test_handle_inline_files(self): - message = create_message( + message = self.create_message( attachments=[ _AttachmentDef( filename="f1.pdf", @@ -485,13 +514,19 @@ class TestMail(DirectoriesMixin, TestCase): ) rule.save() - result = self.mail_account_handler.handle_message(message, rule) - + result = self.mail_account_handler._handle_message(message, rule) self.assertEqual(result, 2) - self.assertEqual(self.async_task.call_count, 2) + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_filename": "f1.pdf"}, + {"override_filename": "f2.pdf"}, + ], + ], + ) def test_filename_filter(self): - message = create_message( + message = self.create_message( attachments=[ _AttachmentDef(filename="f1.pdf"), _AttachmentDef(filename="f2.pdf"), @@ -503,33 +538,32 @@ class TestMail(DirectoriesMixin, TestCase): ) tests = [ - ("*.pdf", ["f1.pdf", "f1.Pdf", "f2.pdf", "f3.pdf", "file.PDf"]), + ("*.pdf", ["f1.pdf", "f2.pdf", "f3.pdf", "file.PDf", "f1.Pdf"]), ("f1.pdf", ["f1.pdf", "f1.Pdf"]), ("f1", []), - ("*", ["f1.pdf", "f2.pdf", "f3.pdf", "f2.png", "f1.Pdf", "file.PDf"]), + ("*", ["f1.pdf", "f2.pdf", "f3.pdf", "f2.png", "file.PDf", "f1.Pdf"]), ("*.png", ["f2.png"]), ] for (pattern, matches) in tests: - matches.sort() - self.async_task.reset_mock() - account = MailAccount(name=str(uuid.uuid4())) - account.save() - rule = MailRule( - name=str(uuid.uuid4()), - assign_title_from=MailRule.TitleSource.FROM_FILENAME, - account=account, - filter_attachment_filename=pattern, - ) - rule.save() + with self.subTest(msg=pattern): + self._queue_consumption_tasks_mock.reset_mock() + account = MailAccount(name=str(uuid.uuid4())) + account.save() + rule = MailRule( + name=str(uuid.uuid4()), + assign_title_from=MailRule.TitleSource.FROM_FILENAME, + account=account, + filter_attachment_filename=pattern, + ) + rule.save() - result = self.mail_account_handler.handle_message(message, rule) - - self.assertEqual(result, len(matches), f"Error with pattern: {pattern}") - filenames = sorted( - a[1]["override_filename"] for a in self.async_task.call_args_list - ) - self.assertListEqual(filenames, matches) + self.mail_account_handler._handle_message(message, rule) + self.assert_queue_consumption_tasks_call_args( + [ + [{"override_filename": m} for m in matches], + ], + ) def test_handle_mail_account_mark_read(self): @@ -547,10 +581,11 @@ class TestMail(DirectoriesMixin, TestCase): ) self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.assertEqual(self.async_task.call_count, 0) self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 2) + self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 2) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) @@ -570,10 +605,11 @@ class TestMail(DirectoriesMixin, TestCase): filter_subject="Invoice", ) - self.assertEqual(self.async_task.call_count, 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) + self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 2) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.messages), 1) def test_handle_mail_account_flag(self): @@ -592,10 +628,11 @@ class TestMail(DirectoriesMixin, TestCase): ) self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.assertEqual(self.async_task.call_count, 0) self.assertEqual(len(self.bogus_mailbox.fetch("UNFLAGGED", False)), 2) + self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 1) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.fetch("UNFLAGGED", False)), 1) self.assertEqual(len(self.bogus_mailbox.messages), 3) @@ -615,13 +652,12 @@ class TestMail(DirectoriesMixin, TestCase): filter_subject="Claim", ) - self.assertEqual(self.async_task.call_count, 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) self.assertEqual(len(self.bogus_mailbox.messages_spam), 0) self.mail_account_handler.handle_mail_account(account) + self.apply_mail_actions() - self.assertEqual(self.async_task.call_count, 1) self.assertEqual(len(self.bogus_mailbox.messages), 2) self.assertEqual(len(self.bogus_mailbox.messages_spam), 1) @@ -641,12 +677,13 @@ class TestMail(DirectoriesMixin, TestCase): ) 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.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.messages), 3) + self.assertEqual(len(self.bogus_mailbox.fetch("UNKEYWORD processed", False)), 0) def test_handle_mail_account_tag_gmail(self): self.bogus_mailbox._host = "imap.gmail.com" @@ -667,11 +704,12 @@ class TestMail(DirectoriesMixin, TestCase): ) self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.assertEqual(self.async_task.call_count, 0) criteria = NOT(gmail_label="processed") self.assertEqual(len(self.bogus_mailbox.fetch(criteria, False)), 2) + self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 2) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.fetch(criteria, False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) @@ -701,14 +739,23 @@ class TestMail(DirectoriesMixin, TestCase): ) self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.assertEqual(self.async_task.call_count, 0) self.assertEqual(len(self.bogus_mailbox.fetch("UNFLAGGED", False)), 2) + self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 2) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.fetch("UNFLAGGED", False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) def test_error_login(self): + """ + GIVEN: + - Account configured with incorrect password + WHEN: + - Account tried to login + THEN: + - MailError with correct message raised + """ account = MailAccount.objects.create( name="test", imap_server="", @@ -716,11 +763,11 @@ class TestMail(DirectoriesMixin, TestCase): password="wrong", ) - with self.assertRaises(MailError) as context: + with self.assertRaisesRegex( + MailError, + "Error while authenticating account", + ): self.mail_account_handler.handle_mail_account(account) - self.assertTrue( - str(context).startswith("Error while authenticating account"), - ) def test_error_skip_account(self): _ = MailAccount.objects.create( @@ -745,7 +792,8 @@ class TestMail(DirectoriesMixin, TestCase): ) tasks.process_mail_accounts() - self.assertEqual(self.async_task.call_count, 1) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.messages), 2) self.assertEqual(len(self.bogus_mailbox.messages_spam), 1) @@ -776,7 +824,8 @@ class TestMail(DirectoriesMixin, TestCase): ) self.mail_account_handler.handle_mail_account(account) - self.assertEqual(self.async_task.call_count, 1) + self.apply_mail_actions() + self.assertEqual(len(self.bogus_mailbox.messages), 2) self.assertEqual(len(self.bogus_mailbox.messages_spam), 1) @@ -811,7 +860,7 @@ class TestMail(DirectoriesMixin, TestCase): self.mail_account_handler.handle_mail_account(account) self.bogus_mailbox.folder.list.assert_called_once() - self.assertEqual(self.async_task.call_count, 0) + self._queue_consumption_tasks_mock.assert_not_called() def test_error_folder_set_error_listing(self): """ @@ -844,9 +893,9 @@ class TestMail(DirectoriesMixin, TestCase): self.mail_account_handler.handle_mail_account(account) self.bogus_mailbox.folder.list.assert_called_once() - self.assertEqual(self.async_task.call_count, 0) + self._queue_consumption_tasks_mock.assert_not_called() - @mock.patch("paperless_mail.mail.MailAccountHandler.get_correspondent") + @mock.patch("paperless_mail.mail.MailAccountHandler._get_correspondent") def test_error_skip_mail(self, m): def get_correspondent_fake(message, rule): if message.from_ == "amazon@amazon.de": @@ -870,9 +919,10 @@ class TestMail(DirectoriesMixin, TestCase): ) self.mail_account_handler.handle_mail_account(account) + self.apply_mail_actions() # test that we still consume mail even if some mails throw errors. - self.assertEqual(self.async_task.call_count, 2) + self.assertEqual(self._queue_consumption_tasks_mock.call_count, 2) # faulty mail still in inbox, untouched self.assertEqual(len(self.bogus_mailbox.messages), 1) @@ -897,14 +947,18 @@ class TestMail(DirectoriesMixin, TestCase): self.mail_account_handler.handle_mail_account(account) - self.async_task.assert_called_once() - args, kwargs = self.async_task.call_args + self._queue_consumption_tasks_mock.assert_called_once() c = Correspondent.objects.get(name="amazon@amazon.de") - # should work - self.assertEqual(kwargs["override_correspondent_id"], c.id) + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_correspondent_id": c.id}, + ], + ], + ) - self.async_task.reset_mock() + self._queue_consumption_tasks_mock.reset_mock() self.reset_bogus_mailbox() with mock.patch("paperless_mail.mail.Correspondent.objects.get_or_create") as m: @@ -912,9 +966,13 @@ class TestMail(DirectoriesMixin, TestCase): self.mail_account_handler.handle_mail_account(account) - args, kwargs = self.async_task.call_args - self.async_task.assert_called_once() - self.assertEqual(kwargs["override_correspondent_id"], None) + self.assert_queue_consumption_tasks_call_args( + [ + [ + {"override_correspondent_id": None}, + ], + ], + ) def test_filters(self): @@ -924,55 +982,52 @@ class TestMail(DirectoriesMixin, TestCase): username="admin", password="secret", ) - rule = MailRule.objects.create( - name="testrule3", - account=account, - action=MailRule.MailAction.DELETE, - filter_subject="Claim", - ) - self.assertEqual(self.async_task.call_count, 0) + for (f_body, f_from, f_to, f_subject, expected_mail_count) in [ + (None, None, None, "Claim", 1), + ("electronic", None, None, None, 1), + (None, "amazon", None, None, 2), + ("cables", "amazon", None, "Invoice", 1), + (None, None, "test@email.com", None, 0), + (None, None, "invoices@mycompany.com", None, 1), + ("electronic", None, "invoices@mycompany.com", None, 1), + (None, "amazon", "me@myselfandi.com", None, 1), + ]: + with self.subTest(f_body=f_body, f_from=f_from, f_subject=f_subject): + MailRule.objects.all().delete() + _ = MailRule.objects.create( + name="testrule3", + account=account, + action=MailRule.MailAction.DELETE, + filter_subject=f_subject, + filter_body=f_body, + filter_from=f_from, + filter_to=f_to, + ) + self.reset_bogus_mailbox() + self._queue_consumption_tasks_mock.reset_mock() - self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.mail_account_handler.handle_mail_account(account) - self.assertEqual(len(self.bogus_mailbox.messages), 2) - self.assertEqual(self.async_task.call_count, 1) + self._queue_consumption_tasks_mock.assert_not_called() + self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.reset_bogus_mailbox() + self.mail_account_handler.handle_mail_account(account) + self.apply_mail_actions() - rule.filter_subject = None - rule.filter_body = "electronic" - rule.save() - self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.mail_account_handler.handle_mail_account(account) - self.assertEqual(len(self.bogus_mailbox.messages), 2) - self.assertEqual(self.async_task.call_count, 2) - - self.reset_bogus_mailbox() - - rule.filter_from = "amazon" - rule.filter_body = None - rule.save() - self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.mail_account_handler.handle_mail_account(account) - self.assertEqual(len(self.bogus_mailbox.messages), 1) - self.assertEqual(self.async_task.call_count, 4) - - self.reset_bogus_mailbox() - - rule.filter_from = "amazon" - rule.filter_body = "cables" - rule.filter_subject = "Invoice" - rule.save() - self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.mail_account_handler.handle_mail_account(account) - self.assertEqual(len(self.bogus_mailbox.messages), 2) - self.assertEqual(self.async_task.call_count, 5) + self.assertEqual( + len(self.bogus_mailbox.messages), + 3 - expected_mail_count, + ) + self.assertEqual( + self._queue_consumption_tasks_mock.call_count, + expected_mail_count, + ) def test_auth_plain_fallback(self): """ GIVEN: - Mail account with password containing non-ASCII characters + WHEN: + - Mail account is handled THEN: - Should still authenticate to the mail account """ @@ -991,12 +1046,13 @@ class TestMail(DirectoriesMixin, TestCase): ) self.assertEqual(len(self.bogus_mailbox.messages), 3) - self.assertEqual(self.async_task.call_count, 0) + self._queue_consumption_tasks_mock.assert_not_called() self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 2) self.mail_account_handler.handle_mail_account(account) + self.apply_mail_actions() - self.assertEqual(self.async_task.call_count, 2) + self.assertEqual(self._queue_consumption_tasks_mock.call_count, 2) self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 0) self.assertEqual(len(self.bogus_mailbox.messages), 3) @@ -1005,6 +1061,8 @@ class TestMail(DirectoriesMixin, TestCase): GIVEN: - Mail account with password containing non-ASCII characters - Incorrect password value + WHEN: + - Mail account is handled THEN: - Should raise a MailError for the account """ @@ -1029,6 +1087,97 @@ class TestMail(DirectoriesMixin, TestCase): account, ) + def test_auth_with_valid_token(self): + """ + GIVEN: + - Mail account configured with access token + WHEN: + - Mail account is handled + THEN: + - Should still authenticate to the mail account + """ + account = MailAccount.objects.create( + name="test", + imap_server="", + username=BogusMailBox.USERNAME, + # Note the non-ascii characters here + password=BogusMailBox.ACCESS_TOKEN, + is_token=True, + ) + + _ = MailRule.objects.create( + name="testrule", + account=account, + action=MailRule.MailAction.MARK_READ, + ) + + self.assertEqual(len(self.bogus_mailbox.messages), 3) + self.assertEqual(self._queue_consumption_tasks_mock.call_count, 0) + self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 2) + + self.mail_account_handler.handle_mail_account(account) + self.apply_mail_actions() + + self.assertEqual(self._queue_consumption_tasks_mock.call_count, 2) + self.assertEqual(len(self.bogus_mailbox.fetch("UNSEEN", False)), 0) + self.assertEqual(len(self.bogus_mailbox.messages), 3) + + def assert_queue_consumption_tasks_call_args(self, expected_call_args: List): + """ + Verifies that queue_consumption_tasks has been called with the expected arguments. + + expected_call_args is the following format: + + * List of calls to queue_consumption_tasks, called once per mail, where each element is: + * List of signatures for the consume_file task, where each element is: + * dictionary containing arguments that need to be present in the consume_file signature. + + """ + + # assert number of calls to queue_consumption_tasks mathc + self.assertEqual( + len(self._queue_consumption_tasks_mock.call_args_list), + len(expected_call_args), + ) + + for (mock_args, mock_kwargs), expected_signatures in zip( + self._queue_consumption_tasks_mock.call_args_list, + expected_call_args, + ): + consume_tasks = mock_kwargs["consume_tasks"] + + # assert number of consume_file tasks match + self.assertEqual(len(consume_tasks), len(expected_signatures)) + + for consume_task, expected_signature in zip( + consume_tasks, + expected_signatures, + ): + input_doc, overrides = consume_task.args + + # assert the file exists + self.assertIsFile(input_doc.original_file) + + # assert all expected arguments are present in the signature + for key, value in expected_signature.items(): + if key == "override_correspondent_id": + self.assertEqual(overrides.correspondent_id, value) + elif key == "override_filename": + self.assertEqual(overrides.filename, value) + elif key == "override_title": + self.assertEqual(overrides.title, value) + else: + self.fail("No match for expected arg") + + def apply_mail_actions(self): + """ + Applies pending actions to mails by inspecting calls to the queue_consumption_tasks method. + """ + for args, kwargs in self._queue_consumption_tasks_mock.call_args_list: + message = kwargs["message"] + rule = kwargs["rule"] + apply_mail_action([], rule.pk, message.uid, message.subject, message.date) + class TestManagementCommand(TestCase): @mock.patch( diff --git a/src/paperless_mail/tests/test_parsers.py b/src/paperless_mail/tests/test_parsers.py index 809a1192f..3515cfbf4 100644 --- a/src/paperless_mail/tests/test_parsers.py +++ b/src/paperless_mail/tests/test_parsers.py @@ -4,10 +4,11 @@ from unittest import mock from django.test import TestCase from documents.parsers import ParseError +from documents.tests.utils import FileSystemAssertsMixin from paperless_mail.parsers import MailDocumentParser -class TestParser(TestCase): +class TestParser(FileSystemAssertsMixin, TestCase): SAMPLE_FILES = os.path.join(os.path.dirname(__file__), "samples") def setUp(self) -> None: @@ -331,7 +332,7 @@ class TestParser(TestCase): ) @mock.patch("paperless_mail.parsers.MailDocumentParser.generate_pdf") - def test_parse_simple_eml(self, n): + def test_parse_simple_eml(self, m: mock.MagicMock): """ GIVEN: - Fresh start @@ -361,8 +362,8 @@ class TestParser(TestCase): self.parser.date, ) - # Just check if file exists, the unittest for generate_pdf() goes deeper. - self.assertTrue(os.path.isfile(self.parser.archive_path)) + # Just check if tried to generate archive, the unittest for generate_pdf() goes deeper. + m.assert_called() @mock.patch("paperless_mail.parsers.parser.from_buffer") def test_tika_parse_unsuccessful(self, mock_from_buffer: mock.MagicMock): @@ -494,7 +495,7 @@ class TestParser(TestCase): mock_response.content = b"Content" mock_post.return_value = mock_response pdf_path = self.parser.generate_pdf(os.path.join(self.SAMPLE_FILES, "html.eml")) - self.assertTrue(os.path.isfile(pdf_path)) + self.assertIsFile(pdf_path) mock_generate_pdf_from_mail.assert_called_once_with( self.parser.get_parsed(None), diff --git a/src/paperless_mail/tests/test_parsers_live.py b/src/paperless_mail/tests/test_parsers_live.py index 90c172d07..1ff42b6dd 100644 --- a/src/paperless_mail/tests/test_parsers_live.py +++ b/src/paperless_mail/tests/test_parsers_live.py @@ -7,13 +7,14 @@ from urllib.request import urlopen import pytest from django.test import TestCase from documents.parsers import run_convert +from documents.tests.utils import FileSystemAssertsMixin from imagehash import average_hash from paperless_mail.parsers import MailDocumentParser from pdfminer.high_level import extract_text from PIL import Image -class TestParserLive(TestCase): +class TestParserLive(FileSystemAssertsMixin, TestCase): SAMPLE_FILES = os.path.join(os.path.dirname(__file__), "samples") def setUp(self) -> None: @@ -85,7 +86,7 @@ class TestParserLive(TestCase): os.path.join(self.SAMPLE_FILES, "simple_text.eml"), "message/rfc822", ) - self.assertTrue(os.path.isfile(thumb)) + self.assertIsFile(thumb) expected = os.path.join(self.SAMPLE_FILES, "simple_text.eml.pdf.webp") @@ -161,7 +162,7 @@ class TestParserLive(TestCase): self.parser.generate_pdf, [os.path.join(self.SAMPLE_FILES, "html.eml")], ) - self.assertTrue(os.path.isfile(pdf_path)) + self.assertIsFile(pdf_path) extracted = extract_text(pdf_path) expected = ( @@ -232,7 +233,7 @@ class TestParserLive(TestCase): output_file=converted, logging_group=None, ) - self.assertTrue(os.path.isfile(converted)) + self.assertIsFile(converted) thumb_hash = self.imagehash(converted) # The created pdf is not reproducible. But the converted image should always look the same. @@ -337,7 +338,7 @@ class TestParserLive(TestCase): output_file=converted, logging_group=None, ) - self.assertTrue(os.path.isfile(converted)) + self.assertIsFile(converted) thumb_hash = self.imagehash(converted) # The created pdf is not reproducible. But the converted image should always look the same. diff --git a/src/paperless_mail/views.py b/src/paperless_mail/views.py index 45fc4197e..e2bee34ff 100644 --- a/src/paperless_mail/views.py +++ b/src/paperless_mail/views.py @@ -1,13 +1,23 @@ +import datetime +import logging + +from django.http import HttpResponseBadRequest +from documents.views import PassUserMixin from paperless.views import StandardPagination +from paperless_mail.mail import get_mailbox +from paperless_mail.mail import mailbox_login +from paperless_mail.mail import MailError from paperless_mail.models import MailAccount from paperless_mail.models import MailRule from paperless_mail.serialisers import MailAccountSerializer from paperless_mail.serialisers import MailRuleSerializer +from rest_framework.generics import GenericAPIView from rest_framework.permissions import IsAuthenticated +from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet -class MailAccountViewSet(ModelViewSet): +class MailAccountViewSet(ModelViewSet, PassUserMixin): model = MailAccount queryset = MailAccount.objects.all().order_by("pk") @@ -15,16 +25,8 @@ class MailAccountViewSet(ModelViewSet): pagination_class = StandardPagination permission_classes = (IsAuthenticated,) - # TODO: user-scoped - # def get_queryset(self): - # user = self.request.user - # return MailAccount.objects.filter(user=user) - # def perform_create(self, serializer): - # serializer.save(user=self.request.user) - - -class MailRuleViewSet(ModelViewSet): +class MailRuleViewSet(ModelViewSet, PassUserMixin): model = MailRule queryset = MailRule.objects.all().order_by("order") @@ -32,10 +34,39 @@ class MailRuleViewSet(ModelViewSet): pagination_class = StandardPagination permission_classes = (IsAuthenticated,) - # TODO: user-scoped - # def get_queryset(self): - # user = self.request.user - # return MailRule.objects.filter(user=user) - # def perform_create(self, serializer): - # serializer.save(user=self.request.user) +class MailAccountTestView(GenericAPIView): + + permission_classes = (IsAuthenticated,) + serializer_class = MailAccountSerializer + + def post(self, request, *args, **kwargs): + logger = logging.getLogger("paperless_mail") + request.data["name"] = datetime.datetime.now().isoformat() + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + + # account exists, use the password from there instead of *** + if ( + len(serializer.validated_data.get("password").replace("*", "")) == 0 + and request.data["id"] is not None + ): + serializer.validated_data["password"] = MailAccount.objects.get( + pk=request.data["id"], + ).password + + account = MailAccount(**serializer.validated_data) + + with get_mailbox( + account.imap_server, + account.imap_port, + account.imap_security, + ) as M: + try: + mailbox_login(M, account) + return Response({"success": True}) + except MailError: + logger.error( + f"Mail account {account} test failed", + ) + return HttpResponseBadRequest("Unable to connect to server") diff --git a/src/paperless_tesseract/parsers.py b/src/paperless_tesseract/parsers.py index 4227583f8..f3e8e21fd 100644 --- a/src/paperless_tesseract/parsers.py +++ b/src/paperless_tesseract/parsers.py @@ -56,7 +56,7 @@ class RasterisedDocumentParser(DocumentParser): except Exception as e: self.log( "warning", - f"Error while reading metadata {key}: {value}. Error: " f"{e}", + f"Error while reading metadata {key}: {value}. Error: {e}", ) return result @@ -160,11 +160,10 @@ class RasterisedDocumentParser(DocumentParser): return post_process_text(text) except Exception: - # TODO catch all for various issues with PDFminer.six. # If pdftotext fails, fall back to OCR. self.log( "warning", - "Error while getting text from PDF document with " "pdfminer.six", + "Error while getting text from PDF document with pdftotext", exc_info=True, ) # probably not a PDF file. @@ -284,17 +283,24 @@ class RasterisedDocumentParser(DocumentParser): def parse(self, document_path: Path, mime_type, file_name=None): # This forces tesseract to use one core per page. os.environ["OMP_THREAD_LIMIT"] = "1" + VALID_TEXT_LENGTH = 50 if mime_type == "application/pdf": text_original = self.extract_text(None, document_path) - original_has_text = text_original is not None and len(text_original) > 50 + original_has_text = ( + text_original is not None and len(text_original) > VALID_TEXT_LENGTH + ) else: text_original = None original_has_text = False # If the original has text, and the user doesn't want an archive, # we're done here - if settings.OCR_MODE == "skip_noarchive" and original_has_text: + skip_archive_for_text = ( + settings.OCR_MODE == "skip_noarchive" + or settings.OCR_SKIP_ARCHIVE_FILE in ["with_text", "always"] + ) + if skip_archive_for_text and original_has_text: self.log("debug", "Document has text, skipping OCRmyPDF entirely.") self.text = text_original return @@ -320,7 +326,8 @@ class RasterisedDocumentParser(DocumentParser): self.log("debug", f"Calling OCRmyPDF with args: {args}") ocrmypdf.ocr(**args) - self.archive_path = archive_path + if settings.OCR_SKIP_ARCHIVE_FILE != "always": + self.archive_path = archive_path self.text = self.extract_text(sidecar_file, archive_path) diff --git a/src/paperless_tesseract/tests/test_checks.py b/src/paperless_tesseract/tests/test_checks.py index 4d46ad9a3..fdcbf7656 100644 --- a/src/paperless_tesseract/tests/test_checks.py +++ b/src/paperless_tesseract/tests/test_checks.py @@ -8,7 +8,7 @@ from paperless_tesseract import check_default_language_available class TestChecks(TestCase): def test_default_language(self): - msgs = check_default_language_available(None) + check_default_language_available(None) @override_settings(OCR_LANGUAGE="") def test_no_language(self): diff --git a/src/paperless_tesseract/tests/test_parser.py b/src/paperless_tesseract/tests/test_parser.py index d22ce26a7..5cbbc4d55 100644 --- a/src/paperless_tesseract/tests/test_parser.py +++ b/src/paperless_tesseract/tests/test_parser.py @@ -10,6 +10,7 @@ from django.test import TestCase from documents.parsers import ParseError from documents.parsers import run_convert from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from paperless_tesseract.parsers import post_process_text from paperless_tesseract.parsers import RasterisedDocumentParser @@ -36,7 +37,7 @@ class FakeImageFile(ContextManager): return os.path.basename(self.fname) -class TestParser(DirectoriesMixin, TestCase): +class TestParser(DirectoriesMixin, FileSystemAssertsMixin, TestCase): SAMPLE_FILES = os.path.join(os.path.dirname(__file__), "samples") @@ -88,7 +89,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "simple-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(thumb)) + self.assertIsFile(thumb) @mock.patch("documents.parsers.run_convert") def test_thumbnail_fallback(self, m): @@ -105,7 +106,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "simple-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(thumb)) + self.assertIsFile(thumb) def test_thumbnail_encrypted(self): parser = RasterisedDocumentParser(uuid.uuid4()) @@ -113,7 +114,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "encrypted.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(thumb)) + self.assertIsFile(thumb) def test_get_dpi(self): parser = RasterisedDocumentParser(None) @@ -132,7 +133,7 @@ class TestParser(DirectoriesMixin, TestCase): "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings(parser.get_text(), ["This is a test document."]) @@ -144,7 +145,7 @@ class TestParser(DirectoriesMixin, TestCase): "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text(), @@ -225,7 +226,7 @@ class TestParser(DirectoriesMixin, TestCase): parser.parse(os.path.join(self.SAMPLE_FILES, "simple.png"), "image/png") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings(parser.get_text(), ["This is a test document."]) @@ -241,7 +242,7 @@ class TestParser(DirectoriesMixin, TestCase): parser.parse(dest_file, "image/png") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings(parser.get_text(), ["This is a test document."]) @@ -273,7 +274,7 @@ class TestParser(DirectoriesMixin, TestCase): parser.parse(os.path.join(self.SAMPLE_FILES, "simple-no-dpi.png"), "image/png") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), @@ -286,7 +287,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -299,7 +300,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -312,7 +313,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -325,20 +326,20 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], ) - @override_settings(OOCR_MODE="skip") + @override_settings(OCR_MODE="skip") def test_multi_page_analog_pages_skip(self): parser = RasterisedDocumentParser(None) parser.parse( os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -362,7 +363,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings(parser.get_text().lower(), ["page 1", "page 2"]) self.assertNotIn("page 3", parser.get_text().lower()) @@ -384,7 +385,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), "application/pdf", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings(parser.get_text().lower(), ["page 1"]) self.assertNotIn("page 2", parser.get_text().lower()) self.assertNotIn("page 3", parser.get_text().lower()) @@ -437,6 +438,144 @@ class TestParser(DirectoriesMixin, TestCase): self.assertIsNotNone(parser.archive_path) + @override_settings(OCR_SKIP_ARCHIVE_FILE="never") + def test_skip_archive_never_withtext(self): + """ + GIVEN: + - File with existing text layer + - OCR_SKIP_ARCHIVE_FILE set to never + WHEN: + - Document is parsed + THEN: + - Text from text layer is extracted + - Archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), + "application/pdf", + ) + self.assertIsNotNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="never") + def test_skip_archive_never_withimages(self): + """ + GIVEN: + - File with text contained in images but no text layer + - OCR_SKIP_ARCHIVE_FILE set to never + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - Archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), + "application/pdf", + ) + self.assertIsNotNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="with_text") + def test_skip_archive_withtext_withtext(self): + """ + GIVEN: + - File with existing text layer + - OCR_SKIP_ARCHIVE_FILE set to with_text + WHEN: + - Document is parsed + THEN: + - Text from text layer is extracted + - No archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), + "application/pdf", + ) + self.assertIsNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="with_text") + def test_skip_archive_withtext_withimages(self): + """ + GIVEN: + - File with text contained in images but no text layer + - OCR_SKIP_ARCHIVE_FILE set to with_text + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - Archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), + "application/pdf", + ) + self.assertIsNotNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="always") + def test_skip_archive_always_withtext(self): + """ + GIVEN: + - File with existing text layer + - OCR_SKIP_ARCHIVE_FILE set to always + WHEN: + - Document is parsed + THEN: + - Text from text layer is extracted + - No archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-digital.pdf"), + "application/pdf", + ) + self.assertIsNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + + @override_settings(OCR_SKIP_ARCHIVE_FILE="always") + def test_skip_archive_always_withimages(self): + """ + GIVEN: + - File with text contained in images but no text layer + - OCR_SKIP_ARCHIVE_FILE set to always + WHEN: + - Document is parsed + THEN: + - Text from images is extracted + - No archive file is created + """ + parser = RasterisedDocumentParser(None) + parser.parse( + os.path.join(self.SAMPLE_FILES, "multi-page-images.pdf"), + "application/pdf", + ) + self.assertIsNone(parser.archive_path) + self.assertContainsStrings( + parser.get_text().lower(), + ["page 1", "page 2", "page 3"], + ) + @override_settings(OCR_MODE="skip") def test_multi_page_mixed(self): """ @@ -455,7 +594,7 @@ class TestParser(DirectoriesMixin, TestCase): "application/pdf", ) self.assertIsNotNone(parser.archive_path) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3", "page 4", "page 5", "page 6"], @@ -486,7 +625,7 @@ class TestParser(DirectoriesMixin, TestCase): "application/pdf", ) self.assertIsNotNone(parser.archive_path) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), [ @@ -556,7 +695,7 @@ class TestParser(DirectoriesMixin, TestCase): os.path.join(self.SAMPLE_FILES, "multi-page-images.tiff"), "image/tiff", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -580,7 +719,7 @@ class TestParser(DirectoriesMixin, TestCase): tmp_file.name, "image/tiff", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -608,7 +747,7 @@ class TestParser(DirectoriesMixin, TestCase): tmp_file.name, "image/tiff", ) - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertContainsStrings( parser.get_text().lower(), ["page 1", "page 2", "page 3"], @@ -689,40 +828,40 @@ class TestParser(DirectoriesMixin, TestCase): self.assertIn("ةﯾﻠﺧﺎدﻻ ةرازو", parser.get_text()) -class TestParserFileTypes(DirectoriesMixin, TestCase): +class TestParserFileTypes(DirectoriesMixin, FileSystemAssertsMixin, TestCase): SAMPLE_FILES = os.path.join(os.path.dirname(__file__), "samples") def test_bmp(self): parser = RasterisedDocumentParser(None) parser.parse(os.path.join(self.SAMPLE_FILES, "simple.bmp"), "image/bmp") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertIn("this is a test document", parser.get_text().lower()) def test_jpg(self): parser = RasterisedDocumentParser(None) parser.parse(os.path.join(self.SAMPLE_FILES, "simple.jpg"), "image/jpeg") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertIn("this is a test document", parser.get_text().lower()) @override_settings(OCR_IMAGE_DPI=200) def test_gif(self): parser = RasterisedDocumentParser(None) parser.parse(os.path.join(self.SAMPLE_FILES, "simple.gif"), "image/gif") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertIn("this is a test document", parser.get_text().lower()) def test_tiff(self): parser = RasterisedDocumentParser(None) parser.parse(os.path.join(self.SAMPLE_FILES, "simple.tif"), "image/tiff") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) self.assertIn("this is a test document", parser.get_text().lower()) @override_settings(OCR_IMAGE_DPI=72) def test_webp(self): parser = RasterisedDocumentParser(None) parser.parse(os.path.join(self.SAMPLE_FILES, "document.webp"), "image/webp") - self.assertTrue(os.path.isfile(parser.archive_path)) + self.assertIsFile(parser.archive_path) # OCR consistent mangles this space, oh well self.assertIn( "this is awebp document, created 11/14/2022.", diff --git a/src/paperless_text/tests/__init__.py b/src/paperless_text/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/paperless_text/tests/test_parser.py b/src/paperless_text/tests/test_parser.py index d952ceb9a..76a8b8498 100644 --- a/src/paperless_text/tests/test_parser.py +++ b/src/paperless_text/tests/test_parser.py @@ -2,10 +2,11 @@ import os from django.test import TestCase from documents.tests.utils import DirectoriesMixin +from documents.tests.utils import FileSystemAssertsMixin from paperless_text.parsers import TextDocumentParser -class TestTextParser(DirectoriesMixin, TestCase): +class TestTextParser(DirectoriesMixin, FileSystemAssertsMixin, TestCase): def test_thumbnail(self): parser = TextDocumentParser(None) @@ -15,7 +16,7 @@ class TestTextParser(DirectoriesMixin, TestCase): os.path.join(os.path.dirname(__file__), "samples", "test.txt"), "text/plain", ) - self.assertTrue(os.path.isfile(f)) + self.assertIsFile(f) def test_parse(self): diff --git a/src/paperless_tika/parsers.py b/src/paperless_tika/parsers.py index 39ab75d79..ea6a83f6c 100644 --- a/src/paperless_tika/parsers.py +++ b/src/paperless_tika/parsers.py @@ -39,7 +39,7 @@ class TikaDocumentParser(DocumentParser): except Exception as e: self.log( "warning", - f"Error while fetching document metadata for " f"{document_path}: {e}", + f"Error while fetching document metadata for {document_path}: {e}", ) return [] @@ -76,7 +76,7 @@ class TikaDocumentParser(DocumentParser): except Exception as e: self.log( "warning", - f"Unable to extract date for document " f"{document_path}: {e}", + f"Unable to extract date for document {document_path}: {e}", ) self.archive_path = self.convert_to_pdf(document_path, file_name) diff --git a/src/paperless_tika/tests/__init__.py b/src/paperless_tika/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/paperless_tika/tests/test_tika_parser.py b/src/paperless_tika/tests/test_tika_parser.py index 058196581..20e846850 100644 --- a/src/paperless_tika/tests/test_tika_parser.py +++ b/src/paperless_tika/tests/test_tika_parser.py @@ -8,6 +8,7 @@ from django.test import TestCase from documents.parsers import ParseError from paperless_tika.parsers import TikaDocumentParser from requests import Response +from rest_framework import status class TestTikaParser(TestCase): @@ -26,7 +27,7 @@ class TestTikaParser(TestCase): } response = Response() response._content = b"PDF document" - response.status_code = 200 + response.status_code = status.HTTP_200_OK post.return_value = response file = os.path.join(self.parser.tempdir, "input.odt") @@ -74,7 +75,7 @@ class TestTikaParser(TestCase): } response = Response() response._content = b"PDF document" - response.status_code = 500 + response.status_code = status.HTTP_500_INTERNAL_SERVER_ERROR post.return_value = response file = os.path.join(self.parser.tempdir, "input.odt") @@ -98,7 +99,7 @@ class TestTikaParser(TestCase): response = Response() response._content = b"PDF document" - response.status_code = 200 + response.status_code = status.HTTP_200_OK post.return_value = response for setting, expected_key in [ diff --git a/src/setup.cfg b/src/setup.cfg index dde4642eb..185ac6f55 100644 --- a/src/setup.cfg +++ b/src/setup.cfg @@ -20,3 +20,15 @@ omit = paperless/workers.py paperless/wsgi.py paperless/auth.py + +[mypy] +plugins = mypy_django_plugin.main, mypy_drf_plugin.main, numpy.typing.mypy_plugin +check_untyped_defs = true +disallow_any_generics = true +disallow_incomplete_defs = true +disallow_untyped_defs = true +warn_redundant_casts = true +warn_unused_ignores = true + +[mypy.plugins.django-stubs] +django_settings_module = "paperless.settings"